From 61cf06c965bf14631dbfd4d26c1221c3acc4adc3 Mon Sep 17 00:00:00 2001 From: Emir Karabeg Date: Fri, 31 Jan 2025 16:34:36 -0800 Subject: [PATCH] Made settings modal scrollable --- .../settings-modal/settings-modal.tsx | 69 ++++++++++--------- 1 file changed, 37 insertions(+), 32 deletions(-) diff --git a/app/w/components/sidebar/components/settings-modal/settings-modal.tsx b/app/w/components/sidebar/components/settings-modal/settings-modal.tsx index 8568e760c3..953f67f764 100644 --- a/app/w/components/sidebar/components/settings-modal/settings-modal.tsx +++ b/app/w/components/sidebar/components/settings-modal/settings-modal.tsx @@ -26,7 +26,9 @@ const INITIAL_ENV_VAR: EnvVar = { key: '', value: '' } export function SettingsModal({ open, onOpenChange }: SettingsModalProps) { const [envVars, setEnvVars] = useState([INITIAL_ENV_VAR]) - const [focusedValueIndex, setFocusedValueIndex] = useState(null) + const [focusedValueIndex, setFocusedValueIndex] = useState( + null + ) const inputRefs = useRef<(HTMLInputElement | null)[]>([]) useEffect(() => { @@ -48,7 +50,10 @@ export function SettingsModal({ open, onOpenChange }: SettingsModalProps) { }, 0) } - const handleValueClick = (e: React.MouseEvent, index: number) => { + const handleValueClick = ( + e: React.MouseEvent, + index: number + ) => { e.preventDefault() const input = inputRefs.current[index] if (input) { @@ -65,11 +70,11 @@ export function SettingsModal({ open, onOpenChange }: SettingsModalProps) { const handlePaste = (e: React.ClipboardEvent, index: number) => { const text = e.clipboardData.getData('text') - const lines = text.split('\n').filter(line => line.trim()) - + const lines = text.split('\n').filter((line) => line.trim()) + if (lines.length === 0) return e.preventDefault() - + if (lines.length === 1) { // Single line paste const [key, ...valueParts] = lines[0].split('=') @@ -82,11 +87,11 @@ export function SettingsModal({ open, onOpenChange }: SettingsModalProps) { } else { // Multi-line paste const parsedVars = lines - .map(line => { + .map((line) => { const [key, ...valueParts] = line.split('=') return { key: key.trim(), - value: valueParts.join('=').trim() + value: valueParts.join('=').trim(), } }) .filter(({ key, value }) => key && value) @@ -122,7 +127,7 @@ export function SettingsModal({ open, onOpenChange }: SettingsModalProps) { ref={(el) => setInputRef(el, index)} value={envVar.value} onChange={(e) => updateEnvVar(index, 'value', e.target.value)} - type={focusedValueIndex === index ? "text" : "password"} + type={focusedValueIndex === index ? 'text' : 'password'} onFocus={() => handleValueFocus(index)} onClick={(e) => handleValueClick(e, index)} onBlur={() => setFocusedValueIndex(null)} @@ -146,33 +151,33 @@ export function SettingsModal({ open, onOpenChange }: SettingsModalProps) { Environment Variables - -
-
- - -
+ +
+
+
+ + +
+
+ +
+
+ {envVars.map(renderEnvVarRow)} +
+
-
- {envVars.map(renderEnvVarRow)} -
-
- -
- - -
- - + +
+ + +