import React, { useState } from 'react'
import { Table } from 'react-icecream'
import originalRecords from './shared-records'
export default function Demo() {
const { records, loading, currentPage, pageSize, total, setPageInfo } = useData()
return (
)
}
function useData() {
const [{ currentPage, pageSize }, setPageInfo] = useState({ pageSize: 10, currentPage: 0 })
const [loading, setLoading] = useState(false)
async function handleSetPageInfo(nextCurrentPage: number, nextPageSize: number) {
setLoading(true)
await new Promise(r => setTimeout(r, 1000))
setLoading(false)
setPageInfo({ pageSize: nextPageSize, currentPage: nextCurrentPage })
}
return {
records: originalRecords.slice(currentPage * pageSize, (currentPage + 1) * pageSize),
currentPage,
pageSize,
setPageInfo: handleSetPageInfo,
total: originalRecords.length,
loading
}
}