diff --git a/src/components/SubmissionTable.tsx b/src/components/SubmissionTable.tsx index d16a3d7..1593c9d 100644 --- a/src/components/SubmissionTable.tsx +++ b/src/components/SubmissionTable.tsx @@ -93,7 +93,11 @@ export default function SubmissionTable(props: SubmissionTableProps) { pageIndex: 0, pageSize: 10, }); - const { data: info, isFetching } = useListQuery({ + const { + data: info, + isFetching, + refetch, + } = useListQuery({ pid: props.pid || 0, uid: props.uid || 0, offset: paging.pageIndex * paging.pageSize, @@ -110,6 +114,7 @@ export default function SubmissionTable(props: SubmissionTableProps) { paging={paging} setPaging={setPaging} isLoading={isFetching} + refetch={refetch} /> ); diff --git a/src/components/Table.tsx b/src/components/Table.tsx index 15b8157..28bdcf9 100644 --- a/src/components/Table.tsx +++ b/src/components/Table.tsx @@ -18,7 +18,13 @@ import { } from "@chakra-ui/react"; import type { ColumnDef, PaginationState } from "@tanstack/react-table"; import { flexRender, getCoreRowModel, getFilteredRowModel, useReactTable } from "@tanstack/react-table"; -import { HiChevronDoubleLeft, HiChevronDoubleRight, HiChevronLeft, HiChevronRight } from "react-icons/hi"; +import { + HiChevronDoubleLeft, + HiChevronDoubleRight, + HiChevronLeft, + HiChevronRight, + HiOutlineRefresh, +} from "react-icons/hi"; interface TableProps { header?: React.ReactNode; @@ -28,6 +34,7 @@ interface TableProps { paging: PaginationState; setPaging: (state: PaginationState | ((old: PaginationState) => PaginationState)) => void; isLoading: boolean; + refetch?: () => unknown; } export default function Table(props: TableProps) { @@ -117,13 +124,28 @@ export default function Table(props: TableProps) { Page {pageIndex + 1} of {pageCount} - table.setPageSize(Number(e.target.value))} + > {[5, 10, 15, 20].map((pageSize) => ( ))} + {props.refetch && ( + } + onClick={props.refetch} + /> + )}