fix: app forms default values changes gets propagated

This commit is contained in:
Ruben Fiszel
2024-08-01 21:54:21 +02:00
parent 3e94fb1a44
commit 99f0fd6c4e
4 changed files with 25 additions and 6 deletions
@@ -22,6 +22,7 @@
import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte'
import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte'
import FileUpload from './common/fileUpload/FileUpload.svelte'
import { deepEqual } from 'fast-equals'
export let css: ComponentCustomCSS<'schemaformcomponent'> | undefined = undefined
export let label: string = ''
@@ -184,10 +185,11 @@
let prevDefaultValue: any = undefined
async function changeDefaultValue(inputCat, defaultValue) {
if (value == null || value == undefined || value == prevDefaultValue) {
if (value == null || value == undefined || deepEqual(value, prevDefaultValue)) {
value = defaultValue
}
prevDefaultValue = defaultValue
prevDefaultValue = structuredClone(defaultValue)
if (value == null || value == undefined) {
if (defaultValue === undefined || defaultValue === null) {
if (inputCat === 'string') {
@@ -17,6 +17,7 @@
import { components } from '../../editor/component'
import ResolveConfig from '../helpers/ResolveConfig.svelte'
import ResolveStyle from '../helpers/ResolveStyle.svelte'
import { deepEqual } from 'fast-equals'
export let id: string
export let componentInput: AppInput | undefined
@@ -88,6 +89,17 @@
)
let valid = true
let previousDefault = resolvedConfig.defaultValues
$: resolvedConfig.defaultValues &&
!deepEqual(previousDefault, resolvedConfig.defaultValues) &&
onDefaultChange()
function onDefaultChange() {
previousDefault = structuredClone(resolvedConfig.defaultValues)
args = previousDefault ?? {}
}
</script>
{#each Object.keys(components['schemaformcomponent'].initialData.configuration) as key (key)}
@@ -306,7 +306,12 @@
onGridReady: (e) => {
outputs?.ready.set(true)
value = value
if (result && result.length > 0 && resolvedConfig?.selectFirstRowByDefault === true) {
if (
result &&
result.length > 0 &&
resolvedConfig?.selectFirstRowByDefault === true &&
selectedRowIndex === -1
) {
e.api.getRowNode('0')?.setSelected(true)
}
$componentControl[id] = {
@@ -80,9 +80,9 @@
const appStore = writable<App>(app)
const selectedComponent = writable<string[] | undefined>(undefined)
$: selectedComponent.subscribe((s) => {
console.log('selectedComponent', s)
})
// $: selectedComponent.subscribe((s) => {
// console.log('selectedComponent', s)
// })
const mode = writable<EditorMode>('dnd')
const breakpoint = writable<EditorBreakpoint>('lg')
const summaryStore = writable(summary)