'use client'; import { Display } from '@/components/display'; import { querySubscribeGroupList, querySubscribeList } from '@/services/user/subscribe'; import { Icon } from '@iconify/react'; import { useQuery } from '@tanstack/react-query'; import { Button } from '@workspace/ui/components/button'; import { Card, CardContent, CardFooter, CardHeader } from '@workspace/ui/components/card'; import { Separator } from '@workspace/ui/components/separator'; import { Tabs, TabsList, TabsTrigger } from '@workspace/ui/components/tabs'; import { cn } from '@workspace/ui/lib/utils'; import { useTranslations } from 'next-intl'; import { useState } from 'react'; import { Empty } from '@/components/empty'; import { SubscribeDetail } from '@/components/subscribe/detail'; import Purchase from '@/components/subscribe/purchase'; export default function Page() { const t = useTranslations('subscribe'); const [subscribe, setSubscribe] = useState(); const [group, setGroup] = useState(''); const { data: groups } = useQuery({ queryKey: ['querySubscribeGroupList'], queryFn: async () => { const { data } = await querySubscribeGroupList(); return data.data?.list || []; }, }); const { data } = useQuery({ queryKey: ['querySubscribeList'], queryFn: async () => { const { data } = await querySubscribeList(); return data.data?.list || []; }, }); return ( <> {groups && groups.length > 0 && ( <>

{t('category')}

{t('all')} {groups.map((group) => ( {group.name} ))}

{t('products')}

)}
{data ?.filter((item) => (group ? item.group_id === Number(group) : true)) ?.map((item) => ( {item.name} {/*
{t('productDescription')}
*/}
    {(() => { let parsedDescription; try { parsedDescription = JSON.parse(item.description); } catch { parsedDescription = { description: '', features: [] }; } const { description, features } = parsedDescription; return ( <> {description &&
  • {description}
  • } {features.map( ( feature: { icon: string; label: string; type: 'default' | 'success' | 'destructive'; }, index: number, ) => (
  • {feature.icon && ( )} {feature.label}
  • ), )} ); })()}

/{t(item.unit_time || 'Month')}

))}
{data?.length === 0 && }
); }