"use client" import * as React from "react" import {Globe, Loader2, Mail, MapPin, ShieldCheck, Smartphone, Trash2, UserCheck,} from "lucide-react" import {Button} from "@/components/ui/button" import {Badge} from "@/components/ui/badge" import {Avatar, AvatarFallback, AvatarImage} from "@/components/ui/avatar" import {Sheet, SheetContent, SheetTitle} from "@/components/ui/sheet" import type {AdminUser} from "@/lib/services/admin" import {cn, formatDateTime} from "@/lib/utils" interface UserDetailSheetProps { selectedUser: AdminUser | null isOpen: boolean onOpenChange: (open: boolean) => void detailLoading: boolean onStatusToggle: (user: AdminUser) => Promise onDeleteTarget: (user: AdminUser) => void } export function UserDetailSheet({ selectedUser, isOpen, onOpenChange, detailLoading, onStatusToggle, onDeleteTarget, }: UserDetailSheetProps) { const displayValue = (value?: string) => value && value.trim() ? value : "-" return ( 用户档案 {selectedUser && ( <>
{selectedUser.username.substring(0, 2).toUpperCase()}

{selectedUser.nickname}

@{selectedUser.username} UID: {selectedUser.id} {selectedUser.is_admin && ( Admin )}
{detailLoading && (
正在刷新详情
)}
注册时间 {formatDateTime(selectedUser.created_at).split(' ')[0]}

个人资料

邮箱 {displayValue(selectedUser.email)}
手机 {displayValue(selectedUser.phone)}
⚧ 性别 {displayValue(selectedUser.gender)}
所在地 {displayValue(selectedUser.location)}
网站 {displayValue(selectedUser.website)}
简介 {displayValue(selectedUser.bio)}

系统记录

账户状态 {selectedUser.is_active ? "正常" : "禁用"}
管理员 {selectedUser.is_admin ? "是" : "否"}
最后登录 {formatDateTime(selectedUser.last_login_at)}
注册时间 {formatDateTime(selectedUser.created_at)}
最后更新 {formatDateTime(selectedUser.updated_at)}
{!selectedUser.is_admin && (
)}
)}
) }