From 44ab33bac4c5cb6c512fd52fdb1cebd45325bcc1 Mon Sep 17 00:00:00 2001 From: 07calc Date: Mon, 26 Jan 2026 19:40:29 +0530 Subject: [PATCH] feat: show/hide for env variables --- .../applications/environment-variables.tsx | 97 +++++++++++++++---- 1 file changed, 80 insertions(+), 17 deletions(-) diff --git a/dash/src/components/applications/environment-variables.tsx b/dash/src/components/applications/environment-variables.tsx index 9ec1870..2501ea8 100644 --- a/dash/src/components/applications/environment-variables.tsx +++ b/dash/src/components/applications/environment-variables.tsx @@ -4,7 +4,7 @@ import { Input } from "@/components/ui/input"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; -import { Trash2, Plus, Pencil, X, Check, FileText, Info } from "lucide-react"; +import { Trash2, Plus, Pencil, X, Check, FileText, Info, Eye, EyeOff } from "lucide-react"; import { toast } from "sonner"; import { useEnvironmentVariables } from "@/hooks"; import type { EnvVariable } from "@/types"; @@ -30,6 +30,9 @@ export const EnvironmentVariables = ({ appId }: EnvironmentVariablesProps) => { const [bulkText, setBulkText] = useState(""); const [parsedVars, setParsedVars] = useState>([]); const [isAdding, setIsAdding] = useState(false); + const [showNewValue, setShowNewValue] = useState(false); + const [showEditValue, setShowEditValue] = useState(false); + const [visibleVarIds, setVisibleVarIds] = useState>(new Set()); const parseEnvText = (text: string) => { const lines = text.split('\n').filter(line => line.trim()); @@ -87,6 +90,7 @@ export const EnvironmentVariables = ({ appId }: EnvironmentVariablesProps) => { if (result) { setNewKey(""); setNewValue(""); + setShowNewValue(false); setShowAddForm(false); } }; @@ -150,6 +154,7 @@ export const EnvironmentVariables = ({ appId }: EnvironmentVariablesProps) => { setEditingId(env.id); setEditKey(env.key); setEditValue(env.value); + setShowEditValue(false); }; const cancelEdit = () => { @@ -158,6 +163,18 @@ export const EnvironmentVariables = ({ appId }: EnvironmentVariablesProps) => { setEditValue(""); }; + const toggleVisibility = (id: number) => { + setVisibleVarIds(prev => { + const next = new Set(prev); + if (next.has(id)) { + next.delete(id); + } else { + next.add(id); + } + return next; + }); + }; + if (loading) { return
Loading environment variables...
; } @@ -234,13 +251,29 @@ export const EnvironmentVariables = ({ appId }: EnvironmentVariablesProps) => {
- setNewValue(e.target.value)} - type="password" - /> +
+ setNewValue(e.target.value)} + type={showNewValue ? "text" : "password"} + className="pr-10" + /> + +
@@ -349,12 +382,28 @@ export const EnvironmentVariables = ({ appId }: EnvironmentVariablesProps) => {
- setEditValue(e.target.value)} - type="password" - /> +
+ setEditValue(e.target.value)} + type={showEditValue ? "text" : "password"} + className="pr-10" + /> + +
@@ -370,10 +419,24 @@ export const EnvironmentVariables = ({ appId }: EnvironmentVariablesProps) => {
) : (
-
+
{env.key} - = - •••••••• + = + + {visibleVarIds.has(env.id) ? env.value : "••••••••"} + +