import { DetailCardSkeleton } from '@/components/detail-card-skeleton'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@/components/ui/card'; import { DetailEmptyView } from '@/components/ui/detail-empty-view'; import { Label } from '@/components/ui/label'; import { QueryErrorView } from '@/components/ui/query-error-view'; import { Separator } from '@/components/ui/separator'; import { GET_CREDENTIAL_3RD_DETAIL } from '@/domains/recorder/schema/credential3rd'; import type { GetCredential3rdDetailQuery } from '@/infra/graphql/gql/graphql'; import type { RouteStateDataOption } from '@/infra/routes/traits'; import { useQuery } from '@apollo/client'; import { createFileRoute, useNavigate } from '@tanstack/react-router'; import { format } from 'date-fns/format'; import { ArrowLeft, Edit, Eye, EyeOff } from 'lucide-react'; import { useState } from 'react'; export const Route = createFileRoute('/_app/credential3rd/detail/$id')({ component: Credential3rdDetailRouteComponent, staticData: { breadcrumb: { label: 'Detail' }, } satisfies RouteStateDataOption, }); function Credential3rdDetailRouteComponent() { const { id } = Route.useParams(); const navigate = useNavigate(); const [showPassword, setShowPassword] = useState(false); const { loading, error, data } = useQuery( GET_CREDENTIAL_3RD_DETAIL, { variables: { id: Number.parseInt(id), }, fetchPolicy: 'cache-and-network', } ); const handleBack = () => { navigate({ to: '/credential3rd/manage', }); }; const handleEnterEditMode = () => { navigate({ to: '/credential3rd/edit/$id', params: { id, }, }); }; const togglePasswordVisibility = () => { setShowPassword((prev) => !prev); }; const credential = data?.credential3rd?.nodes?.[0]; if (loading) { return ; } if (error) { return ; } if (!credential) { return ; } return (

Credential detail

View credential #{credential.id}

Credential information View credential detail
{credential.credentialType}
{credential.id}
{credential.credentialType}
{credential.username || 'Not set'}
{showPassword ? credential.password || '-' : '••••••••'} {credential.password && ( )}
{credential.userAgent || '-'}
{format( new Date(credential.createdAt), 'yyyy-MM-dd HH:mm:ss' )}
{format( new Date(credential.updatedAt), 'yyyy-MM-dd HH:mm:ss' )}
); }