Skip to content

Commit e225feb

Browse files
authored
Merge pull request #66 from getdokan/finetune-ui
Finetune UI
2 parents 3d3c206 + 5e1c06a commit e225feb

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

src/components/settings/settings-context.tsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,15 +177,24 @@ export function SettingsProvider({
177177
return map;
178178
}, [scopeFieldKeysMap]);
179179

180+
// Track previous loading state to detect when loading finishes.
181+
const [prevLoading, setPrevLoading] = useState(loading);
182+
180183
// Sync internal values when external values change.
181-
// NOTE: Do NOT reset initialValues here — that would break dirty tracking,
184+
// NOTE: Do NOT reset initialValues on every change — that would break dirty tracking,
182185
// because the consumer typically updates externalValues in their onChange handler
183-
// (controlled component pattern). initialValues is captured once on mount
184-
// and only reset after a save via resetPageDirty.
186+
// (controlled component pattern). However, when loading transitions from true→false,
187+
// we re-snapshot initialValues so dirty tracking compares against the real saved data
188+
// (not just schema defaults captured at mount time before async data arrived).
185189
useEffect(() => {
186190
const merged = { ...defaultValues, ...(externalValues || {}) };
187191
setInternalValues(merged);
188-
}, [defaultValues, externalValues]);
192+
193+
if (prevLoading && !loading) {
194+
setInitialValues(merged);
195+
}
196+
setPrevLoading(loading);
197+
}, [defaultValues, externalValues, loading, prevLoading]);
189198

190199
// Auto-select first page/subpage on schema load
191200
useEffect(() => {

src/components/ui/sheet.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ function SheetContent({
4444
showCloseButton?: boolean
4545
}) {
4646
return (
47-
<SheetPortal>
47+
<SheetPortal className="pui-root">
4848
<SheetOverlay />
4949
<SheetPrimitive.Popup
5050
data-slot="sheet-content"

0 commit comments

Comments
 (0)