"use client"; import React from "react"; import Link from "next/link"; import { MainMapsetCard } from "./main-mapset-card"; import { useQuery } from "@tanstack/react-query"; import mapsetApi from "@/shared/services/mapset"; import { Button } from "@/shared/components/button/button"; import { MainMapsetCardSkeleton } from "./_components/main-mapset-card-skeleton"; import { ErrorState } from "@/shared/components/error-state"; export function CatalogSection() { const { data: mapsets, isLoading, isError, error, isSuccess, refetch, isFetching, } = useQuery({ queryKey: ["mapsets-catalog"], queryFn: () => mapsetApi .getMapsets( { limit: 5, filter: JSON.stringify([ "is_active=true", "status_validation=approved", ]), }, { skipAuth: true }, ) .then((res) => { return res.items; }), staleTime: 5000, retry: 1, }); const showSkeleton = isLoading || (isFetching && !isSuccess); return ( <>

Katalog Mapset

Koleksi lengkap peta dan data geospasial Jawa Timur

{(() => { if (showSkeleton) { return (
{[...Array(4)].map((_, i) => ( ))}
); } if (isError) { return ; } if (isSuccess && (!mapsets || mapsets.length === 0)) { return (
Belum ada mapset untuk ditampilkan.
); } if (isSuccess && mapsets && mapsets.length > 0) { return (
{mapsets.slice(0, 4).map((mapset) => ( ))}
); } })()}
); }