Skip to content

Commit c904633

Browse files
authored
Merge pull request #8 from TechFusionMasters/development
Removed server side pagination story and default pagination added
2 parents 1115e62 + dff9919 commit c904633

File tree

4 files changed

+10
-83
lines changed

4 files changed

+10
-83
lines changed

.storybook/preview.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ import "../stories/tailwind.css";
33

44
const preview: Preview = {
55
parameters: {
6+
docs: {
7+
source: {
8+
state: 'open',
9+
copyButton: true
10+
}
11+
},
612
controls: {
713
matchers: {
814
color: /(background|color)$/i,

src/hooks.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,9 @@ export function useServerSideData<TData extends object>(
304304
const [isLoading, setIsLoading] = useState(false);
305305
const [data, setData] = useState<TData[]>([]);
306306
const [pageCount, setPageCount] = useState(0);
307-
const [totalRowCount, setTotalRowCount] = useState(0);
307+
const [totalRowCount, setTotalRowCount] = useState<number | undefined>(
308+
undefined
309+
);
308310
const [error, setError] = useState<Error | null>(null);
309311

310312
const fetchData = useCallback(

stories/Pagination.stories.tsx

Lines changed: 0 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -174,88 +174,6 @@ export const CustomPageSizes: Story = {
174174
},
175175
};
176176

177-
/**
178-
* Example demonstrating server-side pagination with manual control.
179-
* Shows how to integrate with backend API for pagination.
180-
*/
181-
export const ServerSidePagination: Story = {
182-
render: (args) => {
183-
const [isLoading, setIsLoading] = React.useState(false);
184-
const [data, setData] = React.useState(args.data.slice(0, 10));
185-
const [pageCount, setPageCount] = React.useState(
186-
Math.ceil(args.data.length / 10)
187-
);
188-
const [totalRowCount, setTotalRowCount] = React.useState(args.data.length);
189-
190-
// Simulate server-side pagination
191-
const fetchData = React.useCallback(
192-
async <TData extends object>({
193-
pagination,
194-
sorting,
195-
filters,
196-
globalFilter,
197-
}: {
198-
pagination: PaginationState;
199-
sorting: SortingState;
200-
filters: ColumnFiltersState;
201-
globalFilter: string;
202-
}): Promise<{
203-
data: TData[];
204-
pageCount: number;
205-
totalRowCount: number;
206-
}> => {
207-
setIsLoading(true);
208-
209-
// Simulate API call
210-
await new Promise((resolve) => setTimeout(resolve, 500));
211-
212-
const { pageIndex, pageSize } = pagination;
213-
const start = pageIndex * pageSize;
214-
const end = start + pageSize;
215-
216-
// For demo, use args.data and cast to TData[]
217-
const pageData = args.data.slice(start, end) as TData[];
218-
219-
setData(pageData as Person[]); // For local state
220-
setIsLoading(false);
221-
setTotalRowCount(args.data.length);
222-
223-
return {
224-
data: pageData,
225-
pageCount: Math.ceil(args.data.length / pageSize),
226-
totalRowCount: args.data.length,
227-
};
228-
},
229-
[args.data]
230-
);
231-
232-
return (
233-
<TableAdapter
234-
{...args}
235-
data={data}
236-
loading={{
237-
isLoading: isLoading,
238-
isPaginationLoading: isLoading,
239-
}}
240-
server={{
241-
manualPagination: true,
242-
pageCount: pageCount,
243-
fetchData: fetchData,
244-
}}
245-
totalRowCount={totalRowCount}
246-
/>
247-
);
248-
},
249-
args: {
250-
data: largeDataSet,
251-
columns: columns as ColumnDef<Person>[],
252-
features: {
253-
pagination: true,
254-
},
255-
className: "w-full max-w-4xl",
256-
},
257-
};
258-
259177
/**
260178
* Shows pagination with loading states.
261179
* Demonstrates how loading indicators are displayed during pagination.

stories/TableAdapter.stories.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,7 @@ export const CustomStyling: Story = {
347347
args: {
348348
data: smallDataSet,
349349
columns: columns as ColumnDef<Person>[],
350+
pageSize: 4,
350351
styling: {
351352
className: "w-full max-w-4xl shadow-lg rounded-lg overflow-hidden",
352353
classNames: {

0 commit comments

Comments
 (0)