diff --git a/web/apps/accounts/src/pages/passkeys/index.tsx b/web/apps/accounts/src/pages/passkeys/index.tsx index 9ae94520af..c55903d77e 100644 --- a/web/apps/accounts/src/pages/passkeys/index.tsx +++ b/web/apps/accounts/src/pages/passkeys/index.tsx @@ -1,5 +1,4 @@ import log from "@/next/log"; -import { ensure } from "@/utils/ensure"; import { CenteredFlex } from "@ente/shared/components/Container"; import DialogBoxV2 from "@ente/shared/components/DialogBoxV2"; import EnteButton from "@ente/shared/components/EnteButton"; @@ -190,10 +189,7 @@ interface ManagePasskeyDrawerProps { /** * The {@link Passkey} whose details should be shown in the drawer. * - * The cannot be undefined logically, but the types don't currently reflect - * that reality and indicate this as undefined (this is mostly to retain the - * identity of the drawer component in a way that it animates when opening - * and closing instead of instantly getting removed from the DOM). + * It is guaranteed that this will be defined when `open` is true. */ passkey: Passkey | undefined; refreshPasskeys: () => void; @@ -205,68 +201,72 @@ const ManagePasskeyDrawer: React.FC = ({ passkey, refreshPasskeys, }) => { - const selectedPasskey = ensure(passkey); - const [showDeleteDialog, setShowDeleteDialog] = useState(false); const [showRenameDialog, setShowRenameDialog] = useState(false); - const createdAt = formatDateTimeFull(selectedPasskey.createdAt / 1000); - return ( <> - - - } - title={t("CREATED_AT")} - caption={createdAt} - loading={false} - hideEditOption - /> - - { - setShowRenameDialog(true); - }} - startIcon={} - label={"Rename Passkey"} + {passkey && ( + + - - { - setShowDeleteDialog(true); - }} - startIcon={} - label={"Delete Passkey"} - color="critical" + } + title={t("CREATED_AT")} + caption={formatDateTimeFull( + passkey.createdAt / 1000, + )} + loading={false} + hideEditOption /> - - + + { + setShowRenameDialog(true); + }} + startIcon={} + label={"Rename Passkey"} + /> + + { + setShowDeleteDialog(true); + }} + startIcon={} + label={"Delete Passkey"} + color="critical" + /> + + + )} - { - setShowDeleteDialog(false); - refreshPasskeys(); - }} - passkey={selectedPasskey} - /> + {passkey && ( + { + setShowDeleteDialog(false); + refreshPasskeys(); + }} + passkey={passkey} + /> + )} - { - setShowRenameDialog(false); - refreshPasskeys(); - }} - passkey={selectedPasskey} - /> + {passkey && ( + { + setShowRenameDialog(false); + refreshPasskeys(); + }} + passkey={passkey} + /> + )} ); };