From 894d85d059b75468d4f272044e21cff105d37969 Mon Sep 17 00:00:00 2001 From: Tianen Pang <32772271+tianenpang@users.noreply.github.com> Date: Wed, 9 Aug 2023 01:43:40 +0800 Subject: [PATCH] docs(table): use case example (#1326) --- .../docs/app/examples/table/use-case/page.tsx | 18 +++++---- .../docs/content/components/table/use-case.ts | 39 ++++++++++++------- 2 files changed, 35 insertions(+), 22 deletions(-) diff --git a/apps/docs/app/examples/table/use-case/page.tsx b/apps/docs/app/examples/table/use-case/page.tsx index 5e9dd7442..beddd6803 100644 --- a/apps/docs/app/examples/table/use-case/page.tsx +++ b/apps/docs/app/examples/table/use-case/page.tsx @@ -271,8 +271,6 @@ export default function Page() { const [page, setPage] = useState(1); - const pages = Math.ceil(users.length / rowsPerPage); - const hasSearchFilter = Boolean(filterValue); const headerColumns = useMemo(() => { @@ -298,6 +296,8 @@ export default function Page() { return filteredUsers; }, [users, filterValue, statusFilter]); + const pages = Math.ceil(filteredItems.length / rowsPerPage); + const items = useMemo(() => { const start = (page - 1) * rowsPerPage; const end = start + rowsPerPage; @@ -390,6 +390,11 @@ export default function Page() { } }, []); + const onClear = useCallback(() => { + setFilterValue(""); + setPage(1); + }, []); + const topContent = useMemo(() => { return (
@@ -400,7 +405,7 @@ export default function Page() { placeholder="Search by name..." startContent={} value={filterValue} - onClear={() => setFilterValue("")} + onClear={() => onClear()} onValueChange={onSearchChange} />
@@ -483,23 +488,22 @@ export default function Page() { {selectedKeys === "all" ? "All items selected" - : `${selectedKeys.size} of ${items.length} selected`} + : `${selectedKeys.size} of ${filteredItems.length} selected`}
- -
diff --git a/apps/docs/content/components/table/use-case.ts b/apps/docs/content/components/table/use-case.ts index b7aa7569e..e450b894d 100644 --- a/apps/docs/content/components/table/use-case.ts +++ b/apps/docs/content/components/table/use-case.ts @@ -360,8 +360,6 @@ export default function App() { }); const [page, setPage] = React.useState(1); - const pages = Math.ceil(users.length / rowsPerPage); - const hasSearchFilter = Boolean(filterValue); const headerColumns = React.useMemo(() => { @@ -387,6 +385,8 @@ export default function App() { return filteredUsers; }, [users, filterValue, statusFilter]); + const pages = Math.ceil(filteredItems.length / rowsPerPage); + const items = React.useMemo(() => { const start = (page - 1) * rowsPerPage; const end = start + rowsPerPage; @@ -452,7 +452,7 @@ export default function App() { return cellValue; } }, []); - + const onNextPage = React.useCallback(() => { if (page < pages) { setPage(page + 1); @@ -479,6 +479,11 @@ export default function App() { } }, []); + const onClear = useCallback(()=>{ + setFilterValue("") + setPage(1) + },[]) + const topContent = React.useMemo(() => { return (
@@ -489,7 +494,7 @@ export default function App() { placeholder="Search by name..." startContent={} value={filterValue} - onClear={() => setFilterValue("")} + onClear={() => onClear()} onValueChange={onSearchChange} />
@@ -572,23 +577,22 @@ export default function App() { {selectedKeys === "all" ? "All items selected" - : \`\${selectedKeys.size} of \${items.length} selected\`} + : \`\${selectedKeys.size} of \${filteredItems.length} selected\`}
- -
@@ -684,7 +688,6 @@ export default function App() { }); const [page, setPage] = useState(1); - const pages = Math.ceil(users.length / rowsPerPage); const hasSearchFilter = Boolean(filterValue); @@ -711,6 +714,8 @@ export default function App() { return filteredUsers; }, [users, filterValue, statusFilter]); + const pages = Math.ceil(filteredItems.length / rowsPerPage); + const items = React.useMemo(() => { const start = (page - 1) * rowsPerPage; const end = start + rowsPerPage; @@ -776,7 +781,7 @@ export default function App() { return cellValue; } }, []); - + const onNextPage = React.useCallback(() => { if (page < pages) { setPage(page + 1); @@ -803,6 +808,11 @@ export default function App() { } }, []); + const onClear = useCallback(()=>{ + setFilterValue("") + setPage(1) + },[]) + const topContent = React.useMemo(() => { return (
@@ -813,7 +823,7 @@ export default function App() { placeholder="Search by name..." startContent={} value={filterValue} - onClear={() => setFilterValue("")} + onClear={() => onClear()} onValueChange={onSearchChange} />
@@ -896,23 +906,22 @@ export default function App() { {selectedKeys === "all" ? "All items selected" - : \`\${selectedKeys.size} of \${items.length} selected\`} + : \`\${selectedKeys.size} of \${filteredItems.length} selected\`}
- -