fix: implement AI review feedback
This commit is contained in:
parent
98cff6709a
commit
a0d5c5598f
2 changed files with 51 additions and 27 deletions
|
|
@ -84,38 +84,54 @@ export function PasskeysSection() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setIsRenaming(true);
|
setIsRenaming(true);
|
||||||
const { error } = await authClient.$fetch("/passkey/update-passkey", {
|
try {
|
||||||
method: "POST",
|
const { error } = await authClient.$fetch("/passkey/update-passkey", {
|
||||||
body: { id: renameTarget.id, name },
|
method: "POST",
|
||||||
});
|
body: { id: renameTarget.id, name },
|
||||||
setIsRenaming(false);
|
});
|
||||||
if (error) {
|
if (error) {
|
||||||
logger.error(error);
|
logger.error(error);
|
||||||
toast.error("Failed to rename passkey", { description: error.message });
|
toast.error("Failed to rename passkey", { description: error.message });
|
||||||
return;
|
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 () => {
|
const handleDelete = async () => {
|
||||||
if (!deleteTarget) return;
|
if (!deleteTarget) return;
|
||||||
setIsDeleting(true);
|
setIsDeleting(true);
|
||||||
const { error } = await authClient.$fetch("/passkey/delete-passkey", {
|
try {
|
||||||
method: "POST",
|
const { error } = await authClient.$fetch("/passkey/delete-passkey", {
|
||||||
body: { id: deleteTarget.id },
|
method: "POST",
|
||||||
});
|
body: { id: deleteTarget.id },
|
||||||
setIsDeleting(false);
|
});
|
||||||
if (error) {
|
if (error) {
|
||||||
logger.error(error);
|
logger.error(error);
|
||||||
toast.error("Failed to delete passkey", { description: error.message });
|
toast.error("Failed to delete passkey", { description: error.message });
|
||||||
return;
|
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[];
|
const list = (passkeys ?? []) as PasskeyEntry[];
|
||||||
|
|
@ -160,6 +176,8 @@ export function PasskeysSection() {
|
||||||
<Button
|
<Button
|
||||||
variant="outline"
|
variant="outline"
|
||||||
size="sm"
|
size="sm"
|
||||||
|
aria-label={`Rename passkey ${p.name?.trim() || "Unnamed passkey"}`}
|
||||||
|
title={`Rename passkey ${p.name?.trim() || "Unnamed passkey"}`}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setRenameTarget(p);
|
setRenameTarget(p);
|
||||||
setRenameValue(p.name ?? "");
|
setRenameValue(p.name ?? "");
|
||||||
|
|
@ -167,7 +185,13 @@ export function PasskeysSection() {
|
||||||
>
|
>
|
||||||
<Pencil className="h-4 w-4" />
|
<Pencil className="h-4 w-4" />
|
||||||
</Button>
|
</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" />
|
<Trash2 className="h-4 w-4" />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -14,4 +14,4 @@ CREATE TABLE `passkey` (
|
||||||
);
|
);
|
||||||
--> statement-breakpoint
|
--> statement-breakpoint
|
||||||
CREATE INDEX `passkey_userId_idx` ON `passkey` (`user_id`);--> 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`);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue