"use client"; 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 Empty from "@workspace/ui/composed/empty"; import { Icon } from "@workspace/ui/composed/icon"; import { cn } from "@workspace/ui/lib/utils"; import { querySubscribeList } from "@workspace/ui/services/user/subscribe"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Display } from "@/components/display"; import { SubscribeDetail } from "./detail"; import Purchase from "./purchase"; export default function Subscribe() { const { t, i18n } = useTranslation("subscribe"); const unitTimeMap: Record = { Day: t("Day", "Day"), Hour: t("Hour", "Hour"), Minute: t("Minute", "Minute"), Month: t("Month", "Month"), NoLimit: t("NoLimit", "No Limit"), Year: t("Year", "Year"), }; const locale = i18n.language; const [subscribe, setSubscribe] = useState(); const { data } = useQuery({ queryKey: ["querySubscribeList", locale], queryFn: async () => { console.log("Fetching subscription list..."); const { data } = await querySubscribeList({ language: locale }); return data.data?.list || []; }, }); const filteredData = data?.filter((item) => item.show); return ( <>
{filteredData?.map((item) => ( {item.name} {/*
{t('productDescription')}
*/}
    {(() => { let parsedDescription: { description: string; features: Array<{ icon: string; label: string; type: "default" | "success" | "destructive"; }>; }; 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}
  • ) )} ); })()}

/ {unitTimeMap[item.unit_time!] || t(item.unit_time || "Month", item.unit_time || "Month")}

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