/** Deployment comparison and SSH password prompt. */ import { useState } from "react"; import { Checkbox, Dialog, Input } from "@/ui"; import { useDeployment } from "./store"; import { SyncDialog } from "./SyncDialog"; import styles from "./Deployment.module.css"; export function SecretDialog() { const prompt = useDeployment((s) => s.secret); const [secret, setSecret] = useState(""); const [save, setSave] = useState(false); if (!prompt) return null; const finish = (answer: { secret: string; save: boolean } | null) => { prompt.resolve(answer); setSecret(""); setSave(false); }; return ( finish(null)} width={420} buttons={[ { label: "Cancel", role: "cancel" }, { label: "OK", role: "default", disabled: !secret, onClick: () => finish({ secret, save }) }, ]} >
{ e.preventDefault(); if (secret) finish({ secret, save }); }} >
{prompt.message}
setSecret(e.target.value)} />
); } export function DeploymentDialogs() { return ( <> ); }