'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' }}>
)
}
);
})
}
);
}