import { FC, memo, useMemo, useState } from 'react' import { InnerWrapper } from '../../list-wrapper' import { Button } from '../../../buttons' import { PagesList } from './pages-list' import type { Analytic, Pages } from '@app/types' import { GrFormNextLink, GrFormPreviousLink } from 'react-icons/gr' import { usePagesData } from '@app/data/external/pages/pages' type PagesPagingProps = { pageUrl?: string liveData?: Analytic[] open?: boolean handleMainClick?(): any // modal } // paging issues for website dashboard cell const RenderInnerPagesWrapper: FC = ({ liveData, pageUrl, open: defaultOpen, handleMainClick, }) => { const [issueIndex, setIndex] = useState(0) const { data, loading, onLoadMorePages: onLoadMore, } = usePagesData(pageUrl, false) const issueSource = useMemo( () => (liveData?.length ? (liveData as Pages[]) : data) || [], [liveData, data] ) const [issueList, stats] = useMemo(() => { const items: Pages[] = [] let totalTTL = 0 if (issueSource) { const base = (issueIndex + 1) * 10 for (let i = base - 10; i < base; i++) { const item = issueSource[i] if (!item) { break } if ( item.pageLoadTime && typeof item.pageLoadTime.duration === 'number' ) { totalTTL += item.pageLoadTime.duration } items.push(item) } } return [items, { totalTTL }] }, [issueIndex, issueSource]) const onPrevSelect = () => { if (issueIndex) { setIndex((x: number) => x - 1) } } const idx = (issueIndex + 1) * 10 const blocked = issueSource.length < idx const onLoadEvent = async () => { // get the next set of data if (idx === issueSource.length) { onLoadMore && (await onLoadMore()) } setIndex((x: number) => x + 1) } return ( <>
    {issueList.map((page) => ( ))}
1 ? '' : 'hidden' } text-right flex place-items-center place-content-end p-2 gap-x-2`} >
) } export const RenderInnerPagesPaging = memo(RenderInnerPagesWrapper)