import Page from '@/components/page' import Image from 'next/image' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' import { getProfile } from '@/actions/auth' import { format } from 'date-fns' import { CheckCircleIcon, CircleAlertIcon } from 'lucide-react' import { Button, buttonVariants } from '@/components/ui/button' import RechargeModal from '@/components/composites/recharge' import { merge } from '@/lib/utils' import banner from './_assets/banner.webp' import actionBill from './_assets/action-bill.webp' import actionBuy from './_assets/action-buy.webp' import actionLogout from './_assets/action-logout.webp' import Link from 'next/link' import { listAnnouncements } from '@/actions/announcement' import Charts from './_client/charts' import Pins from './_client/pins' export type DashboardPageProps = {} export default function DashboardPage(props: DashboardPageProps) { return ( {/* banner */}
{`banner

代理IP资源,先测后买

短效/长效/固定IP代理,一站式服务

{/* 磁贴集 */} {/* 图表 */} {/* 信息 */} {/* 通知 */}
) } async function UserCenter() { const resp = await getProfile() if (!resp.success) { return (
获取用户数据失败
) } const profile = resp.data return (

{profile.phone}

{`最后登录:${format(profile.last_login, 'yyyy-MM-dd HH:mm')}`}

{profile.id_token ? <>
已实名
{profile.name} {profile.id_no}
: <> 未实名 }

账户余额

¥{profile.balance}

快捷入口

{`bill 我的帐单 {`buy 购买产品 {`logout 个人中心
) } async function Announcements() { const resp = await listAnnouncements({ page: 1, size: 5, }) if (!resp.success) { return (
获取公告数据失败
) } const announcements = resp.data.list return (
公告 查看更多
{announcements.length === 0 ? (
{/* {`coming

暂无公告

*/}
) : announcements.map(item => (

{item.title}

{format(item.created_at, 'yyyy-MM-dd HH:mm')}

)) }
) }