support local value changes

This commit is contained in:
SrGooglo 2024-02-02 23:38:29 +01:00
parent fd64d24470
commit bdc0f6fbbd

View File

@ -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;
}