@@ -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.
0 commit comments