'use client'; import { Display } from '@/components/display'; import { SubscribeDetail } from '@/components/subscribe/detail'; import { getSubscription } from '@/services/common/common'; 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 { Icon } from '@workspace/ui/custom-components/icon'; import { cn } from '@workspace/ui/lib/utils'; import { motion } from 'framer-motion'; import { useTranslations } from 'next-intl'; import Link from 'next/link'; import { Key, ReactNode } from 'react'; export function ProductShowcase() { const t = useTranslations('index'); const { data } = useQuery({ queryKey: ['getSubscription'], queryFn: async () => { const { data } = await getSubscription({ skipErrorHandler: true, }); return data.data?.list || []; }, }); if (data?.length === 0) return null; return ( {t('product_showcase_title')} {t('product_showcase_description')}
{data?.map((item, index) => ( {item.name}
    {(() => { let parsedDescription; try { parsedDescription = JSON.parse(item.description); } catch { parsedDescription = { description: '', features: [] }; } const { description, features } = parsedDescription; return ( <> {description &&
  • {description}
  • } {features.map( ( feature: { type: string; icon: string; label: ReactNode; }, index: Key, ) => (
  • {feature.icon && ( )} {feature.label}
  • ), )} ); })()}
/{t(item.unit_time)}
))}
); }