diff --git a/frontend/bun.lock b/frontend/bun.lock index 5ebd74298..334992231 100644 --- a/frontend/bun.lock +++ b/frontend/bun.lock @@ -4,7 +4,7 @@ "": { "name": "maple", "dependencies": { - "@opensecret/react": "1.3.1", + "@opensecret/react": "1.3.3", "@radix-ui/react-alert-dialog": "^1.1.1", "@radix-ui/react-avatar": "^1.1.0", "@radix-ui/react-dialog": "^1.1.1", @@ -214,7 +214,7 @@ "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], - "@opensecret/react": ["@opensecret/react@1.3.1", "", { "dependencies": { "@peculiar/x509": "^1.12.2", "@stablelib/base64": "^2.0.0", "@stablelib/chacha20poly1305": "^2.0.0", "@stablelib/random": "^2.0.0", "cbor2": "^1.7.0", "tweetnacl": "^1.0.3", "zod": "^3.23.8" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-C53cinMhkn2HNJ2LJxY5+xhVcyT2Y6p7z9nsAXCMkBQl677VteMGaDPifxsJpEIX1bBp5ZEsKIRX1md2zta3yw=="], + "@opensecret/react": ["@opensecret/react@1.3.3", "", { "dependencies": { "@peculiar/x509": "^1.12.2", "@stablelib/base64": "^2.0.0", "@stablelib/chacha20poly1305": "^2.0.0", "@stablelib/random": "^2.0.0", "cbor2": "^1.7.0", "tweetnacl": "^1.0.3", "zod": "^3.23.8" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-2bLX1RCAPezyXeN0pZjc1Q0jp0x1rTcrkUR12clXzQAIKtRtv3kBEmEg3YCG7Xgx5TlzSI+eYn2GLBU/h+lEww=="], "@peculiar/asn1-cms": ["@peculiar/asn1-cms@2.3.15", "", { "dependencies": { "@peculiar/asn1-schema": "^2.3.15", "@peculiar/asn1-x509": "^2.3.15", "@peculiar/asn1-x509-attr": "^2.3.15", "asn1js": "^3.0.5", "tslib": "^2.8.1" } }, "sha512-B+DoudF+TCrxoJSTjjcY8Mmu+lbv8e7pXGWrhNp2/EGJp9EEcpzjBCar7puU57sGifyzaRVM03oD5L7t7PghQg=="], diff --git a/frontend/package.json b/frontend/package.json index 04b43d736..d3523f6a6 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -16,7 +16,7 @@ "mdast-util-gfm-autolink-literal": "2.0.0" }, "dependencies": { - "@opensecret/react": "1.3.1", + "@opensecret/react": "1.3.3", "@radix-ui/react-alert-dialog": "^1.1.1", "@radix-ui/react-avatar": "^1.1.0", "@radix-ui/react-dialog": "^1.1.1", diff --git a/frontend/src/components/AccountDialog.tsx b/frontend/src/components/AccountDialog.tsx index 9fe7cce33..117dba6e6 100644 --- a/frontend/src/components/AccountDialog.tsx +++ b/frontend/src/components/AccountDialog.tsx @@ -20,13 +20,15 @@ import { import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { useOpenSecret } from "@opensecret/react"; -import { CheckCircle, XCircle } from "lucide-react"; +import { CheckCircle, XCircle, Trash } from "lucide-react"; import { ChangePasswordDialog } from "./ChangePasswordDialog"; import { useLocalState } from "@/state/useLocalState"; +import { DeleteAccountDialog } from "./DeleteAccountDialog"; export function AccountDialog() { const os = useOpenSecret(); const [isChangePasswordOpen, setIsChangePasswordOpen] = useState(false); + const [isDeleteAccountOpen, setIsDeleteAccountOpen] = useState(false); const [verificationStatus, setVerificationStatus] = useState<"unverified" | "pending">( "unverified" ); @@ -105,11 +107,33 @@ export function AccountDialog() { - {isEmailUser && ( - - - - )} +
+ {isEmailUser && ( + + + + )} + +
+ ) : ( + + )} + + + + ); +}