'use client';
import { Display } from '@/components/display';
import { getUserDetail, getUserSubscribeById } from '@/services/admin/user';
import { useQuery } from '@tanstack/react-query';
import { Button } from '@workspace/ui/components/button';
import { HoverCard, HoverCardContent, HoverCardTrigger } from '@workspace/ui/components/hover-card';
import { formatBytes, formatDate } from '@workspace/ui/utils';
import { useTranslations } from 'next-intl';
import Link from 'next/link';
export function UserSubscribeDetail({ id, enabled }: { id: number; enabled: boolean }) {
const t = useTranslations('user');
const { data } = useQuery({
enabled: id !== 0 && enabled,
queryKey: ['getUserSubscribeById', id],
queryFn: async () => {
const { data } = await getUserSubscribeById({ id });
return data.data;
},
});
if (!id) return '--';
const usedTraffic = data ? data.upload + data.download : 0;
const totalTraffic = data?.traffic || 0;
return (
{t('subscriptionInfo')}
-
{t('subscriptionId')}
{data?.id || '--'}
-
{t('subscriptionName')}
{data?.subscribe?.name || '--'}
-
{t('token')}
{data?.token || '--'}
-
{t('trafficUsage')}
{data
? totalTraffic === 0
? `${formatBytes(usedTraffic)} / ${t('unlimited')}`
: `${formatBytes(usedTraffic)} / ${formatBytes(totalTraffic)}`
: '--'}
-
{t('startTime')}
{data?.start_time ? formatDate(data.start_time) : '--'}
-
{t('expireTime')}
{data?.expire_time ? formatDate(data.expire_time) : '--'}
{t('userInfo')}
{data?.user_id && (
)}
-
{t('userId')}
{data?.user_id}
-
{t('balance')}
-
{t('giftAmount')}
-
{t('commission')}
-
{t('createdAt')}
{data?.user?.created_at && formatDate(data?.user?.created_at)}
);
}
export function UserDetail({ id }: { id: number }) {
const t = useTranslations('user');
const { data } = useQuery({
enabled: id !== 0,
queryKey: ['getUserDetail', id],
queryFn: async () => {
const { data } = await getUserDetail({ id });
return data.data;
},
});
if (!id) return '--';
return (
-
ID
{data?.id}
-
{t('balance')}
-
{t('giftAmount')}
-
{t('commission')}
-
{t('createdAt')}
{data?.created_at && formatDate(data?.created_at)}
);
}