fix: implement AI review feedback

This commit is contained in:
Nico 2026-04-28 19:54:32 +02:00 committed by Nicolas Meienberger
parent 98cff6709a
commit a0d5c5598f
No known key found for this signature in database
2 changed files with 51 additions and 27 deletions

View file

@ -84,38 +84,54 @@ export function PasskeysSection() {
return;
}
setIsRenaming(true);
const { error } = await authClient.$fetch("/passkey/update-passkey", {
method: "POST",
body: { id: renameTarget.id, name },
});
setIsRenaming(false);
if (error) {
logger.error(error);
toast.error("Failed to rename passkey", { description: error.message });
return;
try {
const { error } = await authClient.$fetch("/passkey/update-passkey", {
method: "POST",
body: { id: renameTarget.id, name },
});
if (error) {
logger.error(error);
toast.error("Failed to rename passkey", { description: error.message });
return;
}
toast.success("Passkey renamed");
setRenameTarget(null);
setRenameValue("");
await refetch();
} catch (err) {
logger.error(err);
toast.error("Failed to rename passkey", {
description: err instanceof Error ? err.message : "Unknown error",
});
} finally {
setIsRenaming(false);
}
toast.success("Passkey renamed");
setRenameTarget(null);
setRenameValue("");
await refetch();
};
const handleDelete = async () => {
if (!deleteTarget) return;
setIsDeleting(true);
const { error } = await authClient.$fetch("/passkey/delete-passkey", {
method: "POST",
body: { id: deleteTarget.id },
});
setIsDeleting(false);
if (error) {
logger.error(error);
toast.error("Failed to delete passkey", { description: error.message });
return;
try {
const { error } = await authClient.$fetch("/passkey/delete-passkey", {
method: "POST",
body: { id: deleteTarget.id },
});
if (error) {
logger.error(error);
toast.error("Failed to delete passkey", { description: error.message });
return;
}
toast.success("Passkey deleted");
setDeleteTarget(null);
await refetch();
} catch (err) {
logger.error(err);
toast.error("Failed to delete passkey", {
description: err instanceof Error ? err.message : "Unknown error",
});
} finally {
setIsDeleting(false);
}
toast.success("Passkey deleted");
setDeleteTarget(null);
await refetch();
};
const list = (passkeys ?? []) as PasskeyEntry[];
@ -160,6 +176,8 @@ export function PasskeysSection() {
<Button
variant="outline"
size="sm"
aria-label={`Rename passkey ${p.name?.trim() || "Unnamed passkey"}`}
title={`Rename passkey ${p.name?.trim() || "Unnamed passkey"}`}
onClick={() => {
setRenameTarget(p);
setRenameValue(p.name ?? "");
@ -167,7 +185,13 @@ export function PasskeysSection() {
>
<Pencil className="h-4 w-4" />
</Button>
<Button variant="destructive" size="sm" onClick={() => setDeleteTarget(p)}>
<Button
variant="destructive"
size="sm"
aria-label={`Delete passkey ${p.name?.trim() || "Unnamed passkey"}`}
title={`Delete passkey ${p.name?.trim() || "Unnamed passkey"}`}
onClick={() => setDeleteTarget(p)}
>
<Trash2 className="h-4 w-4" />
</Button>
</div>

View file

@ -14,4 +14,4 @@ CREATE TABLE `passkey` (
);
--> statement-breakpoint
CREATE INDEX `passkey_userId_idx` ON `passkey` (`user_id`);--> statement-breakpoint
CREATE INDEX `passkey_credentialID_idx` ON `passkey` (`credential_id`);
CREATE UNIQUE INDEX `passkey_credentialID_idx` ON `passkey` (`credential_id`);