@vigilio/react-native-paginator 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,438 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
2
+ import { renderHook, act } from "@testing-library/react";
3
+ import { usePaginator } from "../usePaginator.js";
4
+ describe("usePaginator", function () {
5
+ beforeEach(function () {
6
+ vi.useFakeTimers();
7
+ });
8
+ afterEach(function () {
9
+ vi.useRealTimers();
10
+ });
11
+ // ─── Valores por defecto ─────────────────────────────────────
12
+ describe("valores por defecto", function () {
13
+ it("inicializa con limit=10, offset=0, page=1", function () {
14
+ var result = renderHook(function () { return usePaginator(); }).result;
15
+ expect(result.current.pagination.value.limit).toBe(10);
16
+ expect(result.current.pagination.value.offset).toBe(0);
17
+ expect(result.current.pagination.page).toBe(1);
18
+ expect(result.current.pagination.value.maxPagesShown).toBe(5);
19
+ expect(result.current.pagination.value.total).toBeNull();
20
+ expect(result.current.pagination.value.cursor).toBeNull();
21
+ });
22
+ it("acepta props personalizados", function () {
23
+ var result = renderHook(function () {
24
+ return usePaginator({ limit: 20, page: 3, maxPagesShown: 7 });
25
+ }).result;
26
+ expect(result.current.pagination.value.limit).toBe(20);
27
+ expect(result.current.pagination.page).toBe(3);
28
+ expect(result.current.pagination.value.maxPagesShown).toBe(7);
29
+ // offset = (3-1) * 20 = 40
30
+ expect(result.current.pagination.value.offset).toBe(40);
31
+ });
32
+ });
33
+ // ─── updateData ──────────────────────────────────────────────
34
+ describe("updateData", function () {
35
+ it("actualiza el total de items", function () {
36
+ var result = renderHook(function () { return usePaginator(); }).result;
37
+ act(function () {
38
+ result.current.updateData({ total: 100 });
39
+ });
40
+ expect(result.current.pagination.value.total).toBe(100);
41
+ });
42
+ it("actualiza múltiples campos", function () {
43
+ var result = renderHook(function () { return usePaginator(); }).result;
44
+ act(function () {
45
+ result.current.updateData({ total: 50, limit: 25 });
46
+ });
47
+ expect(result.current.pagination.value.total).toBe(50);
48
+ expect(result.current.pagination.value.limit).toBe(25);
49
+ });
50
+ });
51
+ // ─── Navegación ──────────────────────────────────────────────
52
+ describe("navegación de páginas", function () {
53
+ it("onNextPage avanza a la siguiente página", function () {
54
+ var result = renderHook(function () { return usePaginator(); }).result;
55
+ act(function () {
56
+ result.current.updateData({ total: 100 });
57
+ });
58
+ act(function () {
59
+ result.current.pagination.onNextPage();
60
+ });
61
+ expect(result.current.pagination.page).toBe(2);
62
+ expect(result.current.pagination.value.offset).toBe(10);
63
+ });
64
+ it("onBackPage retrocede a la página anterior", function () {
65
+ var result = renderHook(function () {
66
+ return usePaginator({ page: 3 });
67
+ }).result;
68
+ act(function () {
69
+ result.current.updateData({ total: 100 });
70
+ });
71
+ act(function () {
72
+ result.current.pagination.onBackPage();
73
+ });
74
+ expect(result.current.pagination.page).toBe(2);
75
+ });
76
+ it("onNextPage no avanza más allá de la última página", function () {
77
+ var result = renderHook(function () {
78
+ return usePaginator({ limit: 10 });
79
+ }).result;
80
+ act(function () {
81
+ result.current.updateData({ total: 20 });
82
+ });
83
+ // Ir a la página 2 (última)
84
+ act(function () {
85
+ result.current.pagination.onNextPage();
86
+ });
87
+ expect(result.current.pagination.page).toBe(2);
88
+ // Intentar ir más allá
89
+ act(function () {
90
+ result.current.pagination.onNextPage();
91
+ });
92
+ expect(result.current.pagination.page).toBe(2);
93
+ });
94
+ it("onBackPage no retrocede más allá de la página 1", function () {
95
+ var result = renderHook(function () { return usePaginator(); }).result;
96
+ act(function () {
97
+ result.current.pagination.onBackPage();
98
+ });
99
+ expect(result.current.pagination.page).toBe(1);
100
+ });
101
+ it("onChangePage navega a una página específica", function () {
102
+ var result = renderHook(function () { return usePaginator(); }).result;
103
+ act(function () {
104
+ result.current.updateData({ total: 100 });
105
+ });
106
+ act(function () {
107
+ result.current.pagination.onChangePage(5);
108
+ });
109
+ expect(result.current.pagination.page).toBe(5);
110
+ expect(result.current.pagination.value.offset).toBe(40);
111
+ });
112
+ it("onFinalPage navega a la última página", function () {
113
+ var result = renderHook(function () {
114
+ return usePaginator({ limit: 10 });
115
+ }).result;
116
+ act(function () {
117
+ result.current.updateData({ total: 45 });
118
+ });
119
+ act(function () {
120
+ result.current.pagination.onFinalPage();
121
+ });
122
+ // totalPages = ceil(45/10) = 5
123
+ expect(result.current.pagination.page).toBe(5);
124
+ expect(result.current.pagination.value.offset).toBe(40);
125
+ });
126
+ it("backInitialPage vuelve a la primera página", function () {
127
+ var result = renderHook(function () {
128
+ return usePaginator({ page: 5 });
129
+ }).result;
130
+ act(function () {
131
+ result.current.pagination.backInitialPage();
132
+ });
133
+ expect(result.current.pagination.page).toBe(1);
134
+ expect(result.current.pagination.value.offset).toBe(0);
135
+ });
136
+ });
137
+ // ─── Cambio de limit ─────────────────────────────────────────
138
+ describe("onchangeLimit", function () {
139
+ it("cambia el límite de items por página", function () {
140
+ var result = renderHook(function () { return usePaginator(); }).result;
141
+ act(function () {
142
+ result.current.pagination.onchangeLimit(25);
143
+ });
144
+ expect(result.current.pagination.value.limit).toBe(25);
145
+ });
146
+ it("resetea a página 1 si está en otra página", function () {
147
+ var result = renderHook(function () {
148
+ return usePaginator({ page: 3 });
149
+ }).result;
150
+ act(function () {
151
+ result.current.updateData({ total: 100 });
152
+ });
153
+ act(function () {
154
+ result.current.pagination.onchangeLimit(20);
155
+ });
156
+ expect(result.current.pagination.page).toBe(1);
157
+ });
158
+ });
159
+ // ─── Computed: currentPage y totalPages ──────────────────────
160
+ describe("currentPage y totalPages", function () {
161
+ it("calcula currentPage correctamente", function () {
162
+ var result = renderHook(function () {
163
+ return usePaginator({ limit: 10 });
164
+ }).result;
165
+ act(function () {
166
+ result.current.updateData({ total: 100 });
167
+ });
168
+ expect(result.current.pagination.currentPage).toBe(1);
169
+ act(function () {
170
+ result.current.pagination.onChangePage(3);
171
+ });
172
+ expect(result.current.pagination.currentPage).toBe(3);
173
+ });
174
+ it("calcula totalPages correctamente", function () {
175
+ var result = renderHook(function () {
176
+ return usePaginator({ limit: 10 });
177
+ }).result;
178
+ act(function () {
179
+ result.current.updateData({ total: 55 });
180
+ });
181
+ expect(result.current.pagination.totalPages).toBe(6);
182
+ });
183
+ it("totalPages=0 cuando total=0", function () {
184
+ var result = renderHook(function () { return usePaginator(); }).result;
185
+ act(function () {
186
+ result.current.updateData({ total: 0 });
187
+ });
188
+ expect(result.current.pagination.totalPages).toBe(0);
189
+ });
190
+ });
191
+ // ─── Paginator calculation ───────────────────────────────────
192
+ describe("paginator", function () {
193
+ it("genera array de páginas correctamente cuando totalPages <= maxPagesShown", function () {
194
+ var result = renderHook(function () {
195
+ return usePaginator({ limit: 10, maxPagesShown: 5 });
196
+ }).result;
197
+ act(function () {
198
+ result.current.updateData({ total: 30 });
199
+ });
200
+ expect(result.current.pagination.paginator.pages).toEqual([
201
+ 1, 2, 3,
202
+ ]);
203
+ expect(result.current.pagination.paginator.startPage).toBe(1);
204
+ expect(result.current.pagination.paginator.endPage).toBe(3);
205
+ });
206
+ it("genera array de páginas cuando totalPages > maxPagesShown", function () {
207
+ var result = renderHook(function () {
208
+ return usePaginator({ limit: 10, maxPagesShown: 5 });
209
+ }).result;
210
+ act(function () {
211
+ result.current.updateData({ total: 200 });
212
+ });
213
+ // En página 1, debería mostrar [1,2,3,4,5]
214
+ expect(result.current.pagination.paginator.pages).toEqual([
215
+ 1, 2, 3, 4, 5,
216
+ ]);
217
+ });
218
+ it("centra las páginas alrededor de la página actual", function () {
219
+ var result = renderHook(function () {
220
+ return usePaginator({ limit: 10, maxPagesShown: 5 });
221
+ }).result;
222
+ act(function () {
223
+ result.current.updateData({ total: 200 });
224
+ });
225
+ act(function () {
226
+ result.current.pagination.onChangePage(10);
227
+ });
228
+ // Página 10, maxPagesShown=5 → [8,9,10,11,12]
229
+ expect(result.current.pagination.paginator.pages).toEqual([
230
+ 8, 9, 10, 11, 12,
231
+ ]);
232
+ });
233
+ it("totalItems refleja el total", function () {
234
+ var result = renderHook(function () { return usePaginator(); }).result;
235
+ act(function () {
236
+ result.current.updateData({ total: 150 });
237
+ });
238
+ expect(result.current.pagination.paginator.totalItems).toBe(150);
239
+ });
240
+ });
241
+ // ─── Breakpoints ─────────────────────────────────────────────
242
+ describe("breakpoints", function () {
243
+ it("startingBreakPointButtonIfCondition es false cuando startPage < 3", function () {
244
+ var result = renderHook(function () {
245
+ return usePaginator({ limit: 10, maxPagesShown: 5 });
246
+ }).result;
247
+ act(function () {
248
+ result.current.updateData({ total: 200 });
249
+ });
250
+ // En página 1, pages empieza en 1
251
+ expect(result.current.pagination.startingBreakPointButtonIfCondition).toBe(false);
252
+ });
253
+ it("startingBreakPointButtonIfCondition es true cuando startPage >= 3", function () {
254
+ var result = renderHook(function () {
255
+ return usePaginator({ limit: 10, maxPagesShown: 5 });
256
+ }).result;
257
+ act(function () {
258
+ result.current.updateData({ total: 200 });
259
+ });
260
+ act(function () {
261
+ result.current.pagination.onChangePage(10);
262
+ });
263
+ // Páginas [8,9,10,11,12], primera página >= 3
264
+ expect(result.current.pagination.startingBreakPointButtonIfCondition).toBe(true);
265
+ });
266
+ it("endingBreakPointButtonIfCondition es true cuando no estamos cerca del final", function () {
267
+ var result = renderHook(function () {
268
+ return usePaginator({ limit: 10, maxPagesShown: 5 });
269
+ }).result;
270
+ act(function () {
271
+ result.current.updateData({ total: 200 });
272
+ });
273
+ // En página 1, última página visible es 5, totalPages=20
274
+ expect(result.current.pagination.endingBreakPointButtonIfCondition).toBe(true);
275
+ });
276
+ });
277
+ // ─── Sorting ─────────────────────────────────────────────────
278
+ describe("sorting", function () {
279
+ it("alterna entre ASC y DESC", function () {
280
+ var result = renderHook(function () { return usePaginator(); }).result;
281
+ act(function () {
282
+ result.current.sort.sorting("price");
283
+ });
284
+ expect(result.current.sort.value).toEqual({ price: "ASC" });
285
+ act(function () {
286
+ result.current.sort.sorting("price");
287
+ });
288
+ expect(result.current.sort.value).toEqual({ price: "DESC" });
289
+ });
290
+ it("reemplaza el sort anterior con una nueva key", function () {
291
+ var result = renderHook(function () { return usePaginator(); }).result;
292
+ act(function () {
293
+ result.current.sort.sorting("price");
294
+ });
295
+ act(function () {
296
+ result.current.sort.sorting("name");
297
+ });
298
+ expect(result.current.sort.value).toEqual({ name: "ASC" });
299
+ expect(result.current.sort.value).not.toHaveProperty("price");
300
+ });
301
+ it("valor inicial del sort es un objeto vacío", function () {
302
+ var result = renderHook(function () { return usePaginator(); }).result;
303
+ expect(result.current.sort.value).toEqual({});
304
+ });
305
+ });
306
+ // ─── Filters ─────────────────────────────────────────────────
307
+ describe("filters", function () {
308
+ it("update agrega un filtro", function () {
309
+ var result = renderHook(function () { return usePaginator(); }).result;
310
+ act(function () {
311
+ result.current.filters.update("category", "shoes");
312
+ });
313
+ expect(result.current.filters.value).toEqual({
314
+ category: "shoes",
315
+ });
316
+ });
317
+ it("update agrega múltiples filtros", function () {
318
+ var result = renderHook(function () { return usePaginator(); }).result;
319
+ act(function () {
320
+ result.current.filters.update("category", "shoes");
321
+ });
322
+ act(function () {
323
+ result.current.filters.update("size", 42);
324
+ });
325
+ expect(result.current.filters.value).toEqual({
326
+ category: "shoes",
327
+ size: 42,
328
+ });
329
+ });
330
+ it("set reemplaza todos los filtros", function () {
331
+ var result = renderHook(function () { return usePaginator(); }).result;
332
+ act(function () {
333
+ result.current.filters.update("old", "value");
334
+ });
335
+ act(function () {
336
+ result.current.filters.set({ new: "filter" });
337
+ });
338
+ expect(result.current.filters.value).toEqual({ new: "filter" });
339
+ expect(result.current.filters.value).not.toHaveProperty("old");
340
+ });
341
+ it("clear limpia todos los filtros", function () {
342
+ var result = renderHook(function () { return usePaginator(); }).result;
343
+ act(function () {
344
+ result.current.filters.update("a", 1);
345
+ result.current.filters.update("b", 2);
346
+ });
347
+ act(function () {
348
+ result.current.filters.clear();
349
+ });
350
+ expect(result.current.filters.value).toEqual({});
351
+ });
352
+ it("acepta filtros iniciales", function () {
353
+ var result = renderHook(function () {
354
+ return usePaginator({ filters: { status: "active" } });
355
+ }).result;
356
+ expect(result.current.filters.value).toEqual({
357
+ status: "active",
358
+ });
359
+ });
360
+ it("soporta valores boolean y null", function () {
361
+ var result = renderHook(function () { return usePaginator(); }).result;
362
+ act(function () {
363
+ result.current.filters.update("active", true);
364
+ });
365
+ act(function () {
366
+ result.current.filters.update("deleted", null);
367
+ });
368
+ expect(result.current.filters.value).toEqual({
369
+ active: true,
370
+ deleted: null,
371
+ });
372
+ });
373
+ });
374
+ // ─── Search ──────────────────────────────────────────────────
375
+ describe("search", function () {
376
+ it("valor inicial de búsqueda es string vacío", function () {
377
+ var result = renderHook(function () { return usePaginator(); }).result;
378
+ expect(result.current.search.value).toBe("");
379
+ });
380
+ it("onSearchByName actualiza el valor de búsqueda", function () {
381
+ var result = renderHook(function () { return usePaginator(); }).result;
382
+ act(function () {
383
+ result.current.search.onSearchByName("zapatos");
384
+ });
385
+ expect(result.current.search.value).toBe("zapatos");
386
+ });
387
+ it("debounceTerm se actualiza después del delay", function () {
388
+ var result = renderHook(function () { return usePaginator(); }).result;
389
+ act(function () {
390
+ result.current.search.onSearchByName("test");
391
+ });
392
+ // Antes del debounce (1000ms default)
393
+ expect(result.current.search.debounceTerm).toBe("");
394
+ act(function () {
395
+ vi.advanceTimersByTime(1000);
396
+ });
397
+ expect(result.current.search.debounceTerm).toBe("test");
398
+ });
399
+ });
400
+ // ─── Integración: acciones resetean a página 1 ───────────────
401
+ describe("acciones resetean a página 1", function () {
402
+ it("sorting resetea a página 1", function () {
403
+ var result = renderHook(function () {
404
+ return usePaginator({ page: 1, limit: 10 });
405
+ }).result;
406
+ act(function () {
407
+ result.current.updateData({ total: 100 });
408
+ });
409
+ // Navegar a página 3
410
+ act(function () {
411
+ result.current.pagination.onChangePage(3);
412
+ });
413
+ expect(result.current.pagination.page).toBe(3);
414
+ // Sorting debe resetear a 1
415
+ act(function () {
416
+ result.current.sort.sorting("name");
417
+ });
418
+ expect(result.current.pagination.page).toBe(1);
419
+ });
420
+ it("onSearchByName resetea a página 1", function () {
421
+ var result = renderHook(function () {
422
+ return usePaginator({ page: 1, limit: 10 });
423
+ }).result;
424
+ act(function () {
425
+ result.current.updateData({ total: 100 });
426
+ });
427
+ act(function () {
428
+ result.current.pagination.onChangePage(3);
429
+ });
430
+ expect(result.current.pagination.page).toBe(3);
431
+ act(function () {
432
+ result.current.search.onSearchByName("test");
433
+ });
434
+ expect(result.current.pagination.page).toBe(1);
435
+ });
436
+ });
437
+ });
438
+ //# sourceMappingURL=usePaginator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePaginator.test.js","sourceRoot":"","sources":["../../../src/__tests__/usePaginator.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type Pagination, type UpdateDate, usePaginator, type UsePaginator } from "./usePaginator.js";
2
+ import { useDebounce } from "./useDebounce.js";
3
+ export { type Pagination, type UpdateDate, type UsePaginator };
4
+ export { useDebounce };
5
+ export default usePaginator;
@@ -0,0 +1,5 @@
1
+ import { usePaginator, } from "./usePaginator.js";
2
+ import { useDebounce } from "./useDebounce.js";
3
+ export { useDebounce };
4
+ export default usePaginator;
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,YAAY,GAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,eAAe,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function useDebounce<T>(value: T, delay?: number): T;
@@ -0,0 +1,14 @@
1
+ import { useState, useEffect } from "react";
2
+ export function useDebounce(value, delay) {
3
+ var _a = useState(value), debounceValue = _a[0], setDebounceValue = _a[1];
4
+ useEffect(function () {
5
+ var timer = setTimeout(function () {
6
+ setDebounceValue(value);
7
+ }, delay || 1000);
8
+ return function () {
9
+ clearTimeout(timer);
10
+ };
11
+ }, [value, delay]);
12
+ return debounceValue;
13
+ }
14
+ //# sourceMappingURL=useDebounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebounce.js","sourceRoot":"","sources":["../../src/useDebounce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAK5C,MAAM,UAAU,WAAW,CAAI,KAAQ,EAAE,KAAc;IAC7C,IAAA,KAAoC,QAAQ,CAAI,KAAK,CAAC,EAArD,aAAa,QAAA,EAAE,gBAAgB,QAAsB,CAAC;IAE7D,SAAS,CAAC;QACN,IAAM,KAAK,GAAG,UAAU,CAAC;YACrB,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;QAElB,OAAO;YACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnB,OAAO,aAAa,CAAC;AACzB,CAAC"}
@@ -0,0 +1,56 @@
1
+ export interface Pagination {
2
+ limit?: number;
3
+ offset?: number;
4
+ maxPagesShown?: number;
5
+ page?: number;
6
+ cursor?: string | number | null;
7
+ filters?: Record<string, string | number | boolean | null>;
8
+ }
9
+ export type UpdateDate = Pagination & {
10
+ total: number | null;
11
+ };
12
+ export type UsePaginator = {
13
+ updateData: (paginate?: UpdateDate) => void;
14
+ pagination: {
15
+ value: Required<Omit<Pagination, "page" | "filters">> & {
16
+ total: number | null;
17
+ };
18
+ page: number;
19
+ paginator: {
20
+ totalItems: number | null;
21
+ currentPage: number;
22
+ totalPages: number;
23
+ startPage: number;
24
+ endPage: number;
25
+ pages: number[];
26
+ };
27
+ startingBreakPointButtonIfCondition: boolean;
28
+ endingBreakPointButtonIfCondition: boolean;
29
+ currentPage: number;
30
+ totalPages: number;
31
+ onNextPage: (pemittion?: boolean) => void;
32
+ onBackPage: (pemittion?: boolean) => void;
33
+ onchangeLimit: (limit?: number) => void;
34
+ onChangePage: (pag: number) => void;
35
+ onFinalPage: () => void;
36
+ backInitialPage: () => void;
37
+ };
38
+ search: {
39
+ value: string;
40
+ debounceTerm: string;
41
+ onSearchByName: (term: string) => void;
42
+ };
43
+ sort: {
44
+ value: {
45
+ [x: string]: string;
46
+ };
47
+ sorting: (key: string) => void;
48
+ };
49
+ filters: {
50
+ value: Record<string, string | number | boolean | null>;
51
+ update: (name: string, value: string | number | boolean | null) => void;
52
+ set: (values: Record<string, string | number | boolean | null>) => void;
53
+ clear: () => void;
54
+ };
55
+ };
56
+ export declare function usePaginator(props?: Pagination): UsePaginator;