'use client'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; import { ConfirmationDialogWrapper } from '@/components/confirmation-dialog-wrapper'; import { deleteIdentityCredential } from '@/lib/action/identity'; import { Button } from '@/components/ui/button'; import { Trash } from 'lucide-react'; import { DeleteIdentityCredentialsTypeEnum, Identity } from '@ory/client'; import { toast } from 'sonner'; interface IdentityCredentialsProps { identity: Identity; } export function IdentityCredentials({ identity }: IdentityCredentialsProps) { return ( Type Value { Object.entries(identity.credentials!).map(([key, value]) => { return ( {key} {value.identifiers![0]} { Object.values(DeleteIdentityCredentialsTypeEnum).includes(key as DeleteIdentityCredentialsTypeEnum) && key !== 'password' && key !== 'code' && ( { deleteIdentityCredential({ id: identity.id, type: key as never }) .then(() => toast.success(`Credential ${key} deleted`)) .catch(() => toast.error(`Deleting credential ${key} failed`)); }} dialogTitle="Delete credential" dialogDescription={`Are you sure you want to remove the credential of type ${key} from this identity?`} dialogButtonSubmit={`Delete ${key}`} dialogButtonSubmitProps={{ variant: 'destructive' }}> ) } ); }) }
); }