"use client"; import { useState, useEffect } from "react"; import { getPublicClients, PublicClient } from "@/service/client/public-clients"; type CategoryTabsProps = { selectedCategory: string; onCategoryChange: (category: string) => void; }; export default function CategoryTabs({ selectedCategory, onCategoryChange, }: CategoryTabsProps) { const [clients, setClients] = useState([]); const [loading, setLoading] = useState(true); // Fetch public clients useEffect(() => { async function fetchClients() { try { const response = await getPublicClients(); if (response?.data?.success && response.data.data) { setClients(response.data.data); } } catch (error) { console.error("Error fetching public clients:", error); // Fallback to empty array if API fails setClients([]); } finally { setLoading(false); } } fetchClients(); }, []); // Create categories array with "SEMUA" first, then client names const categories = ["SEMUA", ...clients.map(client => client.name)]; if (loading) { return (
{Array.from({ length: 6 }).map((_, idx) => (
))}
); } return (
{categories.map((cat, idx) => ( ))}
); }