diff --git a/src/interface/web/app/settings/page.tsx b/src/interface/web/app/settings/page.tsx index 20c979a5..5c9b72b3 100644 --- a/src/interface/web/app/settings/page.tsx +++ b/src/interface/web/app/settings/page.tsx @@ -59,6 +59,8 @@ import { Check, CaretDown, Waveform, + EyeSlash, + Eye, } from "@phosphor-icons/react"; import Loading from "../components/loading/loading"; @@ -492,6 +494,7 @@ const useApiKeys = () => { function ApiKeyCard() { const { apiKeys, generateAPIKey, copyAPIKey, deleteAPIKey } = useApiKeys(); + const [visibleApiKeys, setVisibleApiKeys] = useState>(new Set()); const { toast } = useToast(); return ( @@ -521,10 +524,35 @@ function ApiKeyCard() { {key.name} - - {`${key.token.slice(0, 6)}...${key.token.slice(-4)}`} + + {visibleApiKeys.has(key.token) + ? key.token + : `${key.token.slice(0, 6)}...${key.token.slice(-4)}`}
+ {visibleApiKeys.has(key.token) ? ( + + setVisibleApiKeys((prev) => { + const next = new Set(prev); + next.delete(key.token); + return next; + }) + } + /> + ) : ( + + setVisibleApiKeys( + new Set([...visibleApiKeys, key.token]), + ) + } + /> + )}