import { useMemo, useState } from 'react' import { useQuery } from '@tanstack/react-query' import { type SortingState, type VisibilityState, getCoreRowModel, getPaginationRowModel, getSortedRowModel, useReactTable, } from '@tanstack/react-table' import { useTranslation } from 'react-i18next' import { DataTablePage } from '@/components/data-table' import { getAdminPlans } from '../api' import { useSubscriptionsColumns } from './subscriptions-columns' import { useSubscriptions } from './subscriptions-provider' export function SubscriptionsTable() { const { t } = useTranslation() const columns = useSubscriptionsColumns() const { refreshTrigger } = useSubscriptions() const [sorting, setSorting] = useState([]) const [columnVisibility, setColumnVisibility] = useState({}) const { data, isLoading } = useQuery({ queryKey: ['admin-subscription-plans', refreshTrigger], queryFn: async () => { const result = await getAdminPlans() return result.data || [] }, placeholderData: (prev) => prev, }) const plans = useMemo(() => data || [], [data]) const table = useReactTable({ data: plans, columns, state: { sorting, columnVisibility }, onSortingChange: setSorting, onColumnVisibilityChange: setColumnVisibility, getCoreRowModel: getCoreRowModel(), getPaginationRowModel: getPaginationRowModel(), getSortedRowModel: getSortedRowModel(), }) return ( ) }