import { useEffect, useState } from "react"; import DataTable from "@/components/ui/data-table"; import { Button } from "@/components/ui/button"; import { MoreHorizontal } from "lucide-react"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { ColumnDef } from "@tanstack/react-table"; import { invoke } from "@tauri-apps/api/core"; import Drawer from "@/components/Drawer"; import { Var } from "@/state/models"; import { useStore } from "@/state/store"; function deleteVar(name: string, refreshVars: () => void) { invoke("delete_var", { name: name }) .then(() => { refreshVars(); }) .catch(() => { console.error("Failed to delete var"); }); } function AddVar({ onAdd: onAdd }: { onAdd?: () => void }) { let [name, setName] = useState(""); let [value, setValue] = useState(""); let [exp, setExport] = useState(false); // simple form to add vars return (

Add var

Add a new var to your shell

{ e.preventDefault(); invoke("set_var", { name: name, value: value, export: exp }) .then(() => { console.log("Added var"); if (onAdd) onAdd(); }) .catch(() => { console.error("Failed to add var"); }); }} > setName(e.target.value)} placeholder="Var name" /> setValue(e.target.value)} placeholder="Var value" />
); } export default function Vars() { const vars = useStore((state) => state.vars); const refreshVars = useStore((state) => state.refreshVars); let [varDrawerOpen, setVarDrawerOpen] = useState(false); const columns: ColumnDef[] = [ { accessorKey: "name", header: "Name", }, { accessorKey: "value", header: "Value", }, { id: "actions", cell: ({ row }: any) => { const shell_var = row.original; return ( Actions deleteVar(shell_var.name, refreshVars)} > Delete ); }, }, ]; useEffect(() => { refreshVars(); }, []); return (

Vars

Configure environment variables here

Add } > { refreshVars(); setVarDrawerOpen(false); }} />
); }