"use client"; import { Plus, Trash2 } from "lucide-react"; import { useActionState, useEffect, useRef } from "react"; import { useFormularAktion } from "@/components/hosts/useFormularAktion"; import { Button, Feld, Formularfehler, Karte, Textbereich } from "@/components/ui"; import type { FormularZustand } from "@/server/actions/formular"; import { eigenenKeyEntfernenAktion, eigenenKeyHinterlegenAktion, type HinterlegenZustand, } from "@/server/actions/meine-schluessel"; /** Eigenen Public Key hinterlegen (#013). Nach Erfolg leert sich das Formular. */ export function KeyHinterlegen() { const formular = useRef(null); const { zustand, absenden, laeuft } = useFormularAktion( eigenenKeyHinterlegenAktion as (v: FormularZustand, f: FormData) => Promise, ); const erfolg = (zustand as HinterlegenZustand).erfolg; useEffect(() => { if (erfolg) formular.current?.reset(); }, [erfolg]); const f = zustand.feldfehler ?? {}; return (
{erfolg && (

{erfolg}

)}

Wirksam erst, wenn ein Operator oder Admin den Schlüssel einem Host zuweist. Den Private Key behalten Sie bei sich – sshkv fragt nie danach.

); } /** Eigenen, noch nirgends zugewiesenen Key entfernen – mit Rueckfrage. */ export function KeyEntfernen({ schluesselId, name }: { schluesselId: string; name: string }) { const dialog = useRef(null); const [zustand, aktion, laeuft] = useActionState(eigenenKeyEntfernenAktion, {}); return ( <>

„{name}“ entfernen?

Der Public Key verschwindet aus sshkv. Er ist noch keinem Host zugewiesen; auf keinem Server ändert sich etwas.

); }