"use client"; import React, { useEffect } from "react"; import { useLocal } from "@/lib/utils/use-local"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "../ui/tabs"; import TabSlider from "../ui/tabslider"; export const Tablist: React.FC = ({ name, column, onLabel, onValue, onLoad, take = 20, header, tabContent, disabledPagination, }) => { const sideRight = typeof header?.sideRight === "function" ? header.sideRight : null; const local = useLocal({ data: [] as any[], sort: {} as any, search: null as any, reload: async () => { const res: any = onLoad({ search: local.search, sort: local.sort, take, paging: 1, }); if (res instanceof Promise) { res.then((e) => { local.data = e; local.render(); }); } else { local.data = res; local.render(); } }, }); useEffect(() => { if (typeof onLoad === "function") { const res: any = onLoad({ search: local.search, sort: local.sort, take: 10, paging: 1, }); if (res instanceof Promise) { res.then((e) => { local.data = e; local.render(); }); } else { local.data = res; local.render(); } } else { local.data = onLoad; local.render(); } }, []); if (!local.data?.length) return <>; return (
{local.data.map((e, idx) => { return ( {onLabel(e)} ); })} {local.data.map((e) => { return (
{tabContent(e)}
); })}
); };