/* eslint-disable react-hooks/exhaustive-deps */ import { BadgeCustom, CenterCustom, Grid, SearchInput, StackCustom, TextCustom, } from "@/components"; import AdminBasicBox from "@/components/_ShareComponent/Admin/AdminBasicBox"; import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage"; import NewWrapper from "@/components/_ShareComponent/NewWrapper"; import { MainColor } from "@/constants/color-palet"; import { PAGINATION_DEFAULT_TAKE } from "@/constants/constans-value"; import { createPaginationComponents } from "@/helpers/paginationHelpers"; import { usePagination } from "@/hooks/use-pagination"; import { apiAdminUserAccessGetAll } from "@/service/api-admin/api-admin-user-access"; import { router, useFocusEffect } from "expo-router"; import { useCallback, useState } from "react"; import { RefreshControl } from "react-native"; export function Admin_ScreenUserAccess() { const [search, setSearch] = useState(""); const pagination = usePagination({ fetchFunction: async (page, searchQuery) => { return await apiAdminUserAccessGetAll({ search: searchQuery || "", category: "only-user", page: String(page), }); // Pastikan mengembalikan struktur data yang sesuai dengan yang diharapkan oleh usePagination }, pageSize: PAGINATION_DEFAULT_TAKE, searchQuery: search, dependencies: [], onError: (error) => { console.log("Error fetching data user access", error); }, }); const { ListEmptyComponent, ListFooterComponent } = createPaginationComponents({ loading: pagination.loading, refreshing: pagination.refreshing, listData: pagination.listData, searchQuery: search, emptyMessage: "Tidak ada data pengguna", emptySearchMessage: "Tidak ada hasil pencarian", skeletonCount: PAGINATION_DEFAULT_TAKE, skeletonHeight: 100, isInitialLoad: pagination.isInitialLoad, }); useFocusEffect( useCallback(() => { pagination.onRefresh(); }, []), ); const rightComponent = () => { return ( <> setSearch(text)} /> ); }; const renderItem = ({ item, index }: { item: any; index: number }) => ( router.push(`/admin/user-access/${item?.id}`)} style={{ marginHorizontal: 10, marginVertical: 5 }} > {item?.username || "-"} {item?.nomor || "-"} {item?.active ? ( Aktif ) : ( Tidak Aktif )} ); return ( } refreshControl={ } renderItem={renderItem} listData={pagination.listData} onEndReached={pagination.loadMore} ListEmptyComponent={ListEmptyComponent} ListFooterComponent={ListFooterComponent} hideFooter /> ); }