From 55b1a41de2dc6b7808588cc58441eecb650d8540 Mon Sep 17 00:00:00 2001 From: Emir Karabeg Date: Wed, 29 Jan 2025 14:17:45 -0800 Subject: [PATCH] Added dummy settings page --- .../components/{ => nav-item}/nav-item.tsx | 0 .../settings-modal/settings-modal.tsx | 109 ++++++++++++++++++ app/w/components/sidebar/sidebar.tsx | 21 ++-- 3 files changed, 123 insertions(+), 7 deletions(-) rename app/w/components/sidebar/components/{ => nav-item}/nav-item.tsx (100%) create mode 100644 app/w/components/sidebar/components/settings-modal/settings-modal.tsx diff --git a/app/w/components/sidebar/components/nav-item.tsx b/app/w/components/sidebar/components/nav-item/nav-item.tsx similarity index 100% rename from app/w/components/sidebar/components/nav-item.tsx rename to app/w/components/sidebar/components/nav-item/nav-item.tsx diff --git a/app/w/components/sidebar/components/settings-modal/settings-modal.tsx b/app/w/components/sidebar/components/settings-modal/settings-modal.tsx new file mode 100644 index 0000000000..6caad0019e --- /dev/null +++ b/app/w/components/sidebar/components/settings-modal/settings-modal.tsx @@ -0,0 +1,109 @@ +'use client' + +import { + Dialog, + DialogContent, + DialogHeader, + DialogTitle, +} from '@/components/ui/dialog' +import { Input } from '@/components/ui/input' +import { Button } from '@/components/ui/button' +import { Label } from '@/components/ui/label' +import { useState } from 'react' + +export function SettingsModal({ + open, + onOpenChange, +}: { + open: boolean + onOpenChange: (open: boolean) => void +}) { + const [envVars, setEnvVars] = useState<{ key: string; value: string }[]>([ + { key: '', value: '' }, + ]) + + const addEnvVar = () => { + setEnvVars([...envVars, { key: '', value: '' }]) + } + + const updateEnvVar = ( + index: number, + field: 'key' | 'value', + value: string + ) => { + const newEnvVars = [...envVars] + newEnvVars[index][field] = value + setEnvVars(newEnvVars) + } + + return ( + + + + + Environment Variables + + +
+
+ {envVars.map((envVar, index) => ( +
+
+ + updateEnvVar(index, 'key', e.target.value)} + placeholder="API_KEY" + className="placeholder:text-muted-foreground/50" + /> +
+
+ + + updateEnvVar(index, 'value', e.target.value) + } + type="password" + placeholder="Enter value" + className="placeholder:text-muted-foreground/50" + /> +
+
+ ))} +
+
+ +
+ + +
+
+
+ ) +} diff --git a/app/w/components/sidebar/sidebar.tsx b/app/w/components/sidebar/sidebar.tsx index fd1d56e70b..f6c4905e31 100644 --- a/app/w/components/sidebar/sidebar.tsx +++ b/app/w/components/sidebar/sidebar.tsx @@ -1,7 +1,7 @@ 'use client' import Link from 'next/link' -import { NavItem } from './components/nav-item' +import { NavItem } from './components/nav-item/nav-item' import { Settings, Plus } from 'lucide-react' import { Tooltip, @@ -12,6 +12,8 @@ import { AgentIcon } from '@/components/icons' import { useWorkflowRegistry } from '@/stores/workflow/workflow-registry' import { useRouter } from 'next/navigation' import { Button } from '@/components/ui/button' +import { useState } from 'react' +import { SettingsModal } from './components/settings-modal/settings-modal' export function Sidebar() { const WORKFLOW_COLORS = [ @@ -23,6 +25,7 @@ export function Sidebar() { ] const { workflows, addWorkflow } = useWorkflowRegistry() const router = useRouter() + const [showSettings, setShowSettings] = useState(false) const handleCreateWorkflow = () => { const id = crypto.randomUUID() @@ -84,20 +87,24 @@ export function Sidebar() { -