From 0ecfa139a50dfa8f28e3d39f62c20fc2e308671c Mon Sep 17 00:00:00 2001 From: EATSTEAK Date: Thu, 25 Aug 2022 16:16:11 +0900 Subject: [PATCH] fix: refresh section values when select another section --- .../molecule/admin/service/SectionSettings.svelte | 14 ++++++++++++++ .../molecule/admin/service/SubsectionEntry.svelte | 11 +++++++++++ .../admin/service/SubsectionSettings.svelte | 4 ++++ 3 files changed, 29 insertions(+) diff --git a/packages/client/src/components/molecule/admin/service/SectionSettings.svelte b/packages/client/src/components/molecule/admin/service/SectionSettings.svelte index 49fe8f0f..7cdd1169 100644 --- a/packages/client/src/components/molecule/admin/service/SectionSettings.svelte +++ b/packages/client/src/components/molecule/admin/service/SectionSettings.svelte @@ -31,6 +31,10 @@ let disabled: number[] = original?.disabled ?? []; let subsections: LockerSubsection[] = original?.subsections ?? []; + $: if ((floor && originalId) || isNew) { + initializeValues(); + } + const isNotUppercaseAlphabet = new RegExp('[^A-Z]+'); const isNotNumeric = new RegExp('[^0-9]+'); @@ -41,6 +45,16 @@ $: isSaveDisabled = !isModified || !isAppliable ? true : undefined; + function initializeValues() { + floorInput = floor ?? ''; + id = originalId ?? ''; + height = original?.height ?? 0; + disabledInput = null; + disabledInputInvalid = undefined; + disabled = original?.disabled ?? []; + subsections = original?.subsections ?? []; + } + function isExistingLockerNum(num: number) { return !!subsections.find(({ range }) => range[0] <= num && range[1] >= num); } diff --git a/packages/client/src/components/molecule/admin/service/SubsectionEntry.svelte b/packages/client/src/components/molecule/admin/service/SubsectionEntry.svelte index 32bc2599..7feebe9c 100644 --- a/packages/client/src/components/molecule/admin/service/SubsectionEntry.svelte +++ b/packages/client/src/components/molecule/admin/service/SubsectionEntry.svelte @@ -21,6 +21,10 @@ let department = subsection?.department; let invalidText: string; + $: if (subsection) { + initializeValues(); + } + $: if (rangeStart && rangeEnd && department) { if (rangeStart <= 0) { invalidText = '값 무시됨: 구역 시작은 1보다 커야함'; @@ -40,6 +44,13 @@ invalidText = '값 무시됨: 모든 값이 입력되지 않음'; } + function initializeValues() { + rangeStart = subsection?.range?.[0] ?? 0; + rangeEnd = subsection?.range?.[1] ?? 0; + department = subsection?.department; + invalidText = undefined; + } + function removeSubsection() { dispatch('remove', {}); } diff --git a/packages/client/src/components/molecule/admin/service/SubsectionSettings.svelte b/packages/client/src/components/molecule/admin/service/SubsectionSettings.svelte index fad9c618..ebbceff8 100644 --- a/packages/client/src/components/molecule/admin/service/SubsectionSettings.svelte +++ b/packages/client/src/components/molecule/admin/service/SubsectionSettings.svelte @@ -11,6 +11,10 @@ let newSubsections: LockerSubsection[] = [...subsections]; + $: if (subsections) { + newSubsections = [...subsections]; + } + function addSubsection() { newSubsections = [...newSubsections, { range: [0, 0], department: '' }]; }