Skip to content

Commit 83e1884

Browse files
committed
fix(registry): use derived state for loaded tracking in EditProps
Use to track loaded state separately to ensure proper reactivity when userFetcher. changes. This ensures effects re-run when the loaded state changes.
1 parent b55092b commit 83e1884

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

svelte/registry/src/lib/site/components/edit-props/edit-props-prop.svelte

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,20 @@
3737
return createFetchUser(ndk, () => String(defaultValue));
3838
});
3939
40+
// Track loaded state separately for reactivity
41+
const isUserLoaded = $derived(type === 'user' && userFetcher ? userFetcher.$loaded : false);
42+
const isEventLoaded = $derived(type === 'event' && eventFetcher ? !eventFetcher.loading && !!eventFetcher.event : false);
43+
4044
// Wire up fetched values when they become available
4145
$effect(() => {
42-
if (type === 'event' && eventFetcher && !eventFetcher.loading && eventFetcher.event && !value) {
46+
if (isEventLoaded && eventFetcher && eventFetcher.event && !value) {
4347
value = eventFetcher.event;
4448
context.updatePropValue(name, eventFetcher.event);
4549
}
4650
});
4751
4852
$effect(() => {
49-
if (type === 'user' && userFetcher && userFetcher.$loaded && !value) {
53+
if (isUserLoaded && userFetcher && !value) {
5054
value = userFetcher;
5155
context.updatePropValue(name, userFetcher);
5256
}

0 commit comments

Comments
 (0)