From 0d1d08d406f650d215ed1a2c6f7b0032d7431b67 Mon Sep 17 00:00:00 2001 From: Jaayden Halko Date: Mon, 21 Jul 2025 21:22:39 +0000 Subject: [PATCH 1/5] fix: debounce slider to avoid laggy behavior --- .../DynamicParameter/DynamicParameter.tsx | 42 ++++++++++--------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx index 5d92fb6d6ae6d..a13e1db6833c7 100644 --- a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx +++ b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx @@ -77,7 +77,8 @@ export const DynamicParameter: FC = ({ />
{parameter.form_type === "input" || - parameter.form_type === "textarea" ? ( + parameter.form_type === "textarea" || + parameter.form_type === "slider" ? ( = ({ ); } + + case "slider": + return ( +
+ { + setLocalValue(value.toString()); + }} + min={parameter.validations[0]?.validation_min ?? 0} + max={parameter.validations[0]?.validation_max ?? 100} + disabled={disabled} + /> + + {Number.isFinite(Number(localValue)) ? localValue : "0"} + +
+ ); } }; @@ -564,25 +585,6 @@ const ParameterField: FC = ({
); - case "slider": - return ( -
- { - onChange(value.toString()); - }} - min={parameter.validations[0]?.validation_min ?? 0} - max={parameter.validations[0]?.validation_max ?? 100} - disabled={disabled} - /> - - {Number.isFinite(Number(value)) ? value : "0"} - -
- ); case "error": return ; } From b2f30fc06ec7ebfe93786afbe2860bd3c8a66705 Mon Sep 17 00:00:00 2001 From: Jaayden Halko Date: Mon, 21 Jul 2025 21:23:30 +0000 Subject: [PATCH 2/5] fix: format --- .../modules/workspaces/DynamicParameter/DynamicParameter.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx index a13e1db6833c7..995ca9cee2613 100644 --- a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx +++ b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx @@ -416,7 +416,9 @@ const DebouncedParameterField: FC = ({ { setLocalValue(value.toString()); }} From 49807807c0f32caa6fc378f0ce8ed877672e572e Mon Sep 17 00:00:00 2001 From: Jaayden Halko Date: Mon, 21 Jul 2025 21:42:32 +0000 Subject: [PATCH 3/5] fix: slider improvements --- .../DynamicParameter/DynamicParameter.tsx | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx index 995ca9cee2613..3c77d79d661ad 100644 --- a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx +++ b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx @@ -411,23 +411,27 @@ const DebouncedParameterField: FC = ({ } case "slider": + const numericValue = Number.isFinite(Number(localValue)) ? Number(localValue) : 0; + const { + validation_min: min = 0, + validation_max: max = 100, + } = parameter.validations[0] ?? {}; + return (
{ setLocalValue(value.toString()); }} - min={parameter.validations[0]?.validation_min ?? 0} - max={parameter.validations[0]?.validation_max ?? 100} + min={min ?? undefined} + max={max ?? undefined} disabled={disabled} /> - {Number.isFinite(Number(localValue)) ? localValue : "0"} + {numericValue}
); From 24cf65712d302f15300ef52a242d47a5bcfd897f Mon Sep 17 00:00:00 2001 From: Jaayden Halko Date: Mon, 21 Jul 2025 21:46:00 +0000 Subject: [PATCH 4/5] fix: format --- .../DynamicParameter/DynamicParameter.tsx | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx index 3c77d79d661ad..1a47621e1d594 100644 --- a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx +++ b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx @@ -410,12 +410,12 @@ const DebouncedParameterField: FC = ({ ); } - case "slider": - const numericValue = Number.isFinite(Number(localValue)) ? Number(localValue) : 0; - const { - validation_min: min = 0, - validation_max: max = 100, - } = parameter.validations[0] ?? {}; + case "slider": { + const numericValue = Number.isFinite(Number(localValue)) + ? Number(localValue) + : 0; + const { validation_min: min = 0, validation_max: max = 100 } = + parameter.validations[0] ?? {}; return (
@@ -430,11 +430,10 @@ const DebouncedParameterField: FC = ({ max={max ?? undefined} disabled={disabled} /> - - {numericValue} - + {numericValue}
); + } } }; From f7c8dcc493e948ad46b3feff3f4846f00d5ec2ec Mon Sep 17 00:00:00 2001 From: Jaayden Halko Date: Tue, 22 Jul 2025 12:16:00 +0000 Subject: [PATCH 5/5] fix: handle dynamic defaults correct for debounced parameters --- .../workspaces/DynamicParameter/DynamicParameter.tsx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx index 1a47621e1d594..fa8eab193b53a 100644 --- a/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx +++ b/site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx @@ -85,7 +85,6 @@ export const DynamicParameter: FC = ({ value={value} onChange={onChange} disabled={disabled} - isPreset={isPreset} /> ) : ( void; disabled?: boolean; id: string; - isPreset?: boolean; } const DebouncedParameterField: FC = ({ @@ -260,7 +258,6 @@ const DebouncedParameterField: FC = ({ onChange, disabled, id, - isPreset, }) => { const [localValue, setLocalValue] = useState( value !== undefined ? value : validValue(parameter.value), @@ -272,13 +269,13 @@ const DebouncedParameterField: FC = ({ const prevDebouncedValueRef = useRef(); const prevValueRef = useRef(value); - // This is necessary in the case of fields being set by preset parameters + // Necessary for dynamic defaults or fields being set by preset parameters useEffect(() => { - if (isPreset && value !== undefined && value !== prevValueRef.current) { + if (value !== undefined && value !== prevValueRef.current) { setLocalValue(value); prevValueRef.current = value; } - }, [value, isPreset]); + }, [value]); useEffect(() => { // Only call onChangeEvent if debouncedLocalValue is different from the previously committed value pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy