diff --git a/components/home/chartDokumenHome.tsx b/components/home/chartDokumenHome.tsx index 60ac76c..fa87790 100644 --- a/components/home/chartDokumenHome.tsx +++ b/components/home/chartDokumenHome.tsx @@ -21,16 +21,24 @@ export default function ChartDokumenHome({ refreshing }: { refreshing: boolean } const width = Dimensions.get("window").width; // TanStack Query for Document Chart data - const { data: chartData = [], isLoading } = useQuery({ + const { data: chartData = [], isLoading, isFetching } = useQuery({ queryKey: ['homeData', 'dokumen'], queryFn: async () => { const hasil = await decryptToken(String(token?.current)) const response = await apiGetDataHome({ cat: "dokumen", user: hasil }) - return response.data.map((item: { color: any; label: any; value: any; }) => ({ - frontColor: item.color, - label: item.label, - value: Number(item.value) - })) as Props + return response.data.map((item: { color: any; label: any; value: any; }) => { + const val = Number(item.value) || 0; + return { + frontColor: val > 0 ? (item.color || '#fac858') : 'transparent', + label: item.label, + value: val, + topLabelComponent: () => ( + + {val > 0 ? val : ""} + + ) + } + }) as Props }, enabled: !!token?.current, staleTime: 0, @@ -39,19 +47,23 @@ export default function ChartDokumenHome({ refreshing }: { refreshing: boolean } // Derived state for maxValue const maxValue = useMemo(() => { const maxVal = chartData.reduce((max: number, obj: { value: number; }) => Math.max(max, obj.value), 0); - return maxVal > 0 ? Math.ceil(maxVal / 10) * 10 : 10; + // Adjust maxValue and intervals based on the data + if (maxVal === 0) return 10; + if (maxVal < 5) return 5; + return Math.ceil(maxVal / 10) * 10; }, [chartData]); return ( JUMLAH DOKUMEN { - isLoading ? + isLoading || (refreshing && isFetching) ? : { - return ( - - {item.value} - - ); - }} /> }