"use client"; import { Plus } from "lucide-react"; import { invoke } from "@tauri-apps/api/core"; import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { AnimatePresence, motion } from "motion/react"; import { Field, FieldGroup, FieldLabel } from "./ui/field"; import { Label } from "./ui/label"; import { Input } from "./ui/input"; import { Textarea } from "./ui/textarea"; import { Checkbox } from "./ui/checkbox"; import { useState, SubmitEvent } from "react"; import { useQueryClient } from "@tanstack/react-query"; export default function PlusButton() { const [differentAddr, setDifferentAddr] = useState(false); const [open, setOpen] = useState(false); const queryclient = useQueryClient(); // 1. Properly set default values inside the initial state const [name, setName] = useState("Kubernetes"); const [address, setAddress] = useState("192.168.1.10"); const [description, setDescription] = useState(""); const [sshAddr, setSSHAddr] = useState("192.168.1.10"); const handleSubmit = async (e: SubmitEvent) => { e.preventDefault(); console.log("Form submission triggered"); if (!name.trim() || !address.trim()) return; let tmp_description: string | undefined = undefined; let tmp_ssh: string | undefined = undefined; if (description.trim()) tmp_description = description.trim(); if (differentAddr && sshAddr.trim()) tmp_ssh = sshAddr.trim(); try { let app = await invoke("new_app", { name: name.trim(), address: address.trim(), description: tmp_description, sshAddress: tmp_ssh, }); console.log("Tauri response:", app); setOpen(false); queryclient.invalidateQueries({ queryKey: ["apps"], }); } catch (err) { console.error("Failed to invoke new_app:", err); } }; return ( setOpen(e.valueOf())} open={open}>
Create Service Create a new service. Click save when you're finished. setName(e.target.value)} /> setAddress(e.target.value)} />