diff --git a/apps/builder/app/builder/features/settings-panel/settings-section.tsx b/apps/builder/app/builder/features/settings-panel/settings-section.tsx index 71c90ae45282..0dad0bea88f1 100644 --- a/apps/builder/app/builder/features/settings-panel/settings-section.tsx +++ b/apps/builder/app/builder/features/settings-panel/settings-section.tsx @@ -50,8 +50,12 @@ export const SettingsSection = () => { key={selectedInstance.id} placeholder={placeholder} value={localValue.value} - onChange={(event) => localValue.set(event.target.value.trim())} - onBlur={localValue.save} + onChange={(event) => localValue.set(event.target.value)} + onBlur={(event) => + localValue.finalSave( + (event.target as HTMLInputElement).value.trim() + ) + } /> diff --git a/apps/builder/app/builder/features/settings-panel/shared.tsx b/apps/builder/app/builder/features/settings-panel/shared.tsx index e74bcad9d2bd..d277b0f48ea1 100644 --- a/apps/builder/app/builder/features/settings-panel/shared.tsx +++ b/apps/builder/app/builder/features/settings-panel/shared.tsx @@ -175,6 +175,12 @@ export const useLocalValue = ( } }; + const finalSave = (value: Type) => { + localValueRef.current = value; + setRefresh((refresh) => refresh + 1); + save(); + }; + const saveDebounced = useDebouncedCallback(save, 500); const setLocalValue = (value: Type) => { @@ -224,6 +230,7 @@ export const useLocalValue = ( * Should be called on onBlur or similar event */ save, + finalSave, }; };