gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/entity-table/stories/fetch-entities.ts · v0.5.2
Source
1 4cebd65 Mardin 2y ago import { FetchEntityReturn } from "../hooks";
2 4cebd65 Mardin 2y ago
3 4cebd65 Mardin 2y ago interface Entity {
4 4cebd65 Mardin 2y ago id: number;
5 4cebd65 Mardin 2y ago name: string;
6 4cebd65 Mardin 2y ago createdAt: string;
7 4cebd65 Mardin 2y ago }
8 4cebd65 Mardin 2y ago
9 4cebd65 Mardin 2y ago const massDataEntities = [
10 4cebd65 Mardin 2y ago { id: 1, name: "Azad Ahmed", createdAt: "2023-01-01" },
11 4cebd65 Mardin 2y ago { id: 2, name: "Bahman Karim", createdAt: "2024-02-05" },
12 4cebd65 Mardin 2y ago { id: 3, name: "Chnar Zana", createdAt: "2022-03-08" },
13 4cebd65 Mardin 2y ago { id: 4, name: "Dilshad Hassan", createdAt: "2024-04-11" },
14 4cebd65 Mardin 2y ago { id: 5, name: "Evin Rojan", createdAt: "2023-05-06" },
15 4cebd65 Mardin 2y ago { id: 6, name: "Farhad Hama", createdAt: "2025-06-08" },
16 4cebd65 Mardin 2y ago { id: 7, name: "Goran Rebwar", createdAt: "2027-07-10" },
17 4cebd65 Mardin 2y ago { id: 8, name: "Havin Ahmed", createdAt: "2025-08-09" },
18 4cebd65 Mardin 2y ago { id: 9, name: "Jiyan Qasim", createdAt: "2025-06-08" },
19 4cebd65 Mardin 2y ago { id: 10, name: "Kawa Sherwan", createdAt: "2027-07-10" },
20 4cebd65 Mardin 2y ago { id: 11, name: "Lawan Barzan", createdAt: "2025-08-09" },
21 4cebd65 Mardin 2y ago { id: 12, name: "Nazdar Rizgar", createdAt: "2025-08-09" },
22 4cebd65 Mardin 2y ago { id: 13, name: "Rojan Shamal", createdAt: "2023-09-12" },
23 4cebd65 Mardin 2y ago { id: 14, name: "Sherin Jalal", createdAt: "2024-10-23" },
24 4cebd65 Mardin 2y ago { id: 15, name: "Tahir Walat", createdAt: "2022-11-29" },
25 4cebd65 Mardin 2y ago { id: 16, name: "Viyan Bave", createdAt: "2023-12-17" },
26 4cebd65 Mardin 2y ago { id: 17, name: "Yousif Farhad", createdAt: "2025-01-05" },
27 4cebd65 Mardin 2y ago { id: 18, name: "Zahra Kamal", createdAt: "2026-02-14" },
28 4cebd65 Mardin 2y ago { id: 19, name: "Bakhtiar Shwan", createdAt: "2025-03-21" },
29 4cebd65 Mardin 2y ago { id: 20, name: "Diyar Latif", createdAt: "2026-04-13" },
30 4cebd65 Mardin 2y ago { id: 21, name: "Azad Ahmed", createdAt: "2023-01-01" },
31 4cebd65 Mardin 2y ago { id: 22, name: "Bahman Karim", createdAt: "2024-02-05" },
32 4cebd65 Mardin 2y ago { id: 23, name: "Chnar Zana", createdAt: "2022-03-08" },
33 4cebd65 Mardin 2y ago { id: 24, name: "Dilshad Hassan", createdAt: "2024-04-11" },
34 4cebd65 Mardin 2y ago { id: 25, name: "Evin Rojan", createdAt: "2023-05-06" },
35 4cebd65 Mardin 2y ago { id: 26, name: "Farhad Hama", createdAt: "2025-06-08" },
36 4cebd65 Mardin 2y ago { id: 27, name: "Goran Rebwar", createdAt: "2027-07-10" },
37 4cebd65 Mardin 2y ago { id: 28, name: "Havin Ahmed", createdAt: "2025-08-09" },
38 4cebd65 Mardin 2y ago { id: 29, name: "Jiyan Qasim", createdAt: "2025-06-08" },
39 4cebd65 Mardin 2y ago { id: 30, name: "Kawa Sherwan", createdAt: "2027-07-10" },
40 4cebd65 Mardin 2y ago { id: 31, name: "Lawan Barzan", createdAt: "2025-08-09" },
41 4cebd65 Mardin 2y ago { id: 32, name: "Nazdar Rizgar", createdAt: "2025-08-09" },
42 4cebd65 Mardin 2y ago { id: 33, name: "Rojan Shamal", createdAt: "2023-09-12" },
43 4cebd65 Mardin 2y ago { id: 34, name: "Sherin Jalal", createdAt: "2024-10-23" },
44 4cebd65 Mardin 2y ago { id: 35, name: "Tahir Walat", createdAt: "2022-11-29" },
45 4cebd65 Mardin 2y ago { id: 36, name: "Viyan Bave", createdAt: "2023-12-17" },
46 4cebd65 Mardin 2y ago { id: 37, name: "Yousif Farhad", createdAt: "2025-01-05" },
47 4cebd65 Mardin 2y ago { id: 38, name: "Zahra Kamal", createdAt: "2026-02-14" },
48 4cebd65 Mardin 2y ago { id: 39, name: "Bakhtiar Shwan", createdAt: "2025-03-21" },
49 4cebd65 Mardin 2y ago { id: 40, name: "Diyar Latif", createdAt: "2026-04-13" },
50 4cebd65 Mardin 2y ago ];
51 4cebd65 Mardin 2y ago
52 4cebd65 Mardin 2y ago export const fetchEntity = async ({ queryKey }: { queryKey: any }) => {
53 4cebd65 Mardin 2y ago const [, pageIndex, pageSize, search, ,] = queryKey;
54 4cebd65 Mardin 2y ago
55 4cebd65 Mardin 2y ago const filteredEntities = search
56 4cebd65 Mardin 2y ago ? massDataEntities.filter(entity =>
57 4cebd65 Mardin 2y ago entity.name.toLowerCase().includes(search.toLowerCase())
58 4cebd65 Mardin 2y ago )
59 4cebd65 Mardin 2y ago : massDataEntities;
60 4cebd65 Mardin 2y ago
61 4cebd65 Mardin 2y ago const startIndex = (pageIndex - 1) * pageSize;
62 4cebd65 Mardin 2y ago const endIndex = startIndex + pageSize;
63 4cebd65 Mardin 2y ago
64 4cebd65 Mardin 2y ago const paginatedEntities = filteredEntities.slice(startIndex, endIndex);
65 4cebd65 Mardin 2y ago
66 4cebd65 Mardin 2y ago return {
67 4cebd65 Mardin 2y ago entity: paginatedEntities,
68 4cebd65 Mardin 2y ago pageCount: Math.ceil(filteredEntities.length / pageSize),
69 4cebd65 Mardin 2y ago };
70 4cebd65 Mardin 2y ago }
71 4cebd65 Mardin 2y ago
72 4cebd65 Mardin 2y ago export const fetchEntityLoading = async (): FetchEntityReturn<Entity> => {
73 4cebd65 Mardin 2y ago return new Promise((resolve) => {
74 4cebd65 Mardin 2y ago setTimeout(() => {
75 4cebd65 Mardin 2y ago resolve({
76 4cebd65 Mardin 2y ago entity: [{ id: 40, name: "Diyar Latif", createdAt: "2026-04-13" }],
77 4cebd65 Mardin 2y ago pageCount: 1,
78 4cebd65 Mardin 2y ago });
79 4cebd65 Mardin 2y ago }, 24 * 60 * 60 * 1000);
80 4cebd65 Mardin 2y ago });
81 4cebd65 Mardin 2y ago }