From bdc0f6fbbdf59381153c71eb5fad893a5eab1b21 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Fri, 2 Feb 2024 23:38:29 +0100 Subject: [PATCH] support local value changes --- src/renderer/src/pages/pkg/index.jsx | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/renderer/src/pages/pkg/index.jsx b/src/renderer/src/pages/pkg/index.jsx index 783b3cf..2a8a2a7 100644 --- a/src/renderer/src/pages/pkg/index.jsx +++ b/src/renderer/src/pages/pkg/index.jsx @@ -32,9 +32,21 @@ const PKGConfigs = (props) => { const config = defaultConfigs[key] const storagedValue = configs[key] + const [localValue, setLocalValue] = React.useState(storagedValue ?? config.default) + const ComponentType = config.ui_component ?? PKGConfigsComponentByTypes[config.type] ?? "input" const ConfigComponent = PKGConfigsComponents[ComponentType] + function handleOnChange(value) { + if (typeof value === "string" && config.string_trim === true) { + value = value.trim() + } + + setLocalValue(value) + + return props.onChange(key, value) + } + if (ConfigComponent == null) { return null } @@ -42,33 +54,34 @@ const PKGConfigs = (props) => { const ComponentsProps = { ...config.ui_component_props, defaultValue: storagedValue ?? config.default, + value: localValue } switch (ComponentType) { case "input": { ComponentsProps.onChange = (e) => { - props.onChange(key, e.target.value) + handleOnChange(e.target.value) } break } case "slider": { ComponentsProps.onChange = (value) => { - props.onChange(key, value) + handleOnChange(value) } break } case "switch": { ComponentsProps.onChange = (checked) => { - props.onChange(key, checked) + handleOnChange(checked) } break } default: { ComponentsProps.onChange = (value) => { - props.onChange(key, value) + handleOnChange(value) } break; }