@simplysm/solid 13.0.67 → 13.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/data/kanban/Kanban.d.ts.map +1 -1
- package/dist/components/data/kanban/Kanban.js +4 -13
- package/dist/components/data/kanban/Kanban.js.map +2 -2
- package/dist/components/data/list/ListItem.d.ts +0 -18
- package/dist/components/data/list/ListItem.d.ts.map +1 -1
- package/dist/components/data/list/ListItem.js +3 -7
- package/dist/components/data/list/ListItem.js.map +2 -2
- package/dist/components/data/sheet/DataSheet.js +3 -3
- package/dist/components/data/sheet/DataSheet.js.map +2 -2
- package/dist/components/disclosure/Dialog.d.ts +0 -6
- package/dist/components/disclosure/Dialog.d.ts.map +1 -1
- package/dist/components/disclosure/Dialog.js +12 -18
- package/dist/components/disclosure/Dialog.js.map +2 -2
- package/dist/components/disclosure/Dropdown.d.ts.map +1 -1
- package/dist/components/disclosure/Dropdown.js +4 -13
- package/dist/components/disclosure/Dropdown.js.map +2 -2
- package/dist/components/disclosure/dialogZIndex.d.ts +2 -0
- package/dist/components/disclosure/dialogZIndex.d.ts.map +1 -1
- package/dist/components/disclosure/dialogZIndex.js +4 -0
- package/dist/components/disclosure/dialogZIndex.js.map +1 -1
- package/dist/components/features/crud-detail/CrudDetail.d.ts.map +1 -1
- package/dist/components/features/crud-detail/CrudDetail.js +3 -2
- package/dist/components/features/crud-detail/CrudDetail.js.map +2 -2
- package/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheet.js +4 -3
- package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
- package/dist/components/feedback/busy/BusyContainer.d.ts +2 -0
- package/dist/components/feedback/busy/BusyContainer.d.ts.map +1 -1
- package/dist/components/feedback/busy/BusyContainer.js.map +1 -1
- package/dist/components/feedback/print/PrintContext.js +1 -1
- package/dist/components/feedback/print/PrintContext.js.map +1 -1
- package/dist/components/form-control/field/NumberInput.d.ts +2 -2
- package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
- package/dist/components/form-control/field/NumberInput.js +3 -7
- package/dist/components/form-control/field/NumberInput.js.map +2 -2
- package/dist/components/form-control/field/TextInput.d.ts +2 -2
- package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
- package/dist/components/form-control/field/TextInput.js +3 -7
- package/dist/components/form-control/field/TextInput.js.map +2 -2
- package/dist/components/form-control/select/SelectItem.d.ts +0 -3
- package/dist/components/form-control/select/SelectItem.d.ts.map +1 -1
- package/dist/components/form-control/select/SelectItem.js +3 -7
- package/dist/components/form-control/select/SelectItem.js.map +2 -2
- package/dist/helpers/createSlotComponent.d.ts +12 -0
- package/dist/helpers/createSlotComponent.d.ts.map +1 -0
- package/dist/helpers/createSlotComponent.js +13 -0
- package/dist/helpers/createSlotComponent.js.map +6 -0
- package/dist/{hooks/createPointerDrag.d.ts → helpers/startPointerDrag.d.ts} +2 -2
- package/dist/helpers/startPointerDrag.d.ts.map +1 -0
- package/dist/{hooks/createPointerDrag.js → helpers/startPointerDrag.js} +3 -3
- package/dist/{hooks/createPointerDrag.js.map → helpers/startPointerDrag.js.map} +2 -2
- package/dist/hooks/createControllableStore.d.ts.map +1 -1
- package/dist/hooks/createControllableStore.js +5 -1
- package/dist/hooks/createControllableStore.js.map +1 -1
- package/dist/hooks/useLogger.d.ts.map +1 -1
- package/dist/hooks/useLogger.js +3 -2
- package/dist/hooks/useLogger.js.map +1 -1
- package/dist/hooks/useSyncConfig.d.ts.map +1 -1
- package/dist/hooks/useSyncConfig.js +10 -4
- package/dist/hooks/useSyncConfig.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/LoggerContext.d.ts +0 -6
- package/dist/providers/LoggerContext.d.ts.map +1 -1
- package/dist/providers/LoggerContext.js +2 -6
- package/dist/providers/LoggerContext.js.map +2 -2
- package/dist/providers/shared-data/SharedDataProvider.d.ts.map +1 -1
- package/dist/providers/shared-data/SharedDataProvider.js +7 -1
- package/dist/providers/shared-data/SharedDataProvider.js.map +2 -2
- package/package.json +9 -9
- package/src/components/data/kanban/Kanban.tsx +3 -15
- package/src/components/data/list/ListItem.tsx +2 -27
- package/src/components/data/sheet/DataSheet.tsx +3 -3
- package/src/components/disclosure/Dialog.tsx +14 -27
- package/src/components/disclosure/Dropdown.tsx +3 -15
- package/src/components/disclosure/dialogZIndex.ts +5 -0
- package/src/components/features/crud-detail/CrudDetail.tsx +3 -2
- package/src/components/features/crud-sheet/CrudSheet.tsx +4 -3
- package/src/components/feedback/busy/BusyContainer.tsx +2 -0
- package/src/components/feedback/print/PrintContext.ts +1 -1
- package/src/components/form-control/field/NumberInput.tsx +2 -10
- package/src/components/form-control/field/TextInput.tsx +3 -18
- package/src/components/form-control/select/SelectItem.tsx +3 -19
- package/src/helpers/createSlotComponent.ts +23 -0
- package/src/{hooks/createPointerDrag.ts → helpers/startPointerDrag.ts} +1 -1
- package/src/hooks/createControllableStore.ts +5 -1
- package/src/hooks/useLogger.ts +3 -3
- package/src/hooks/useSyncConfig.ts +12 -4
- package/src/index.ts +1 -0
- package/src/providers/LoggerContext.tsx +1 -16
- package/src/providers/shared-data/SharedDataProvider.tsx +8 -2
- package/dist/hooks/createPointerDrag.d.ts.map +0 -1
|
@@ -34,6 +34,7 @@ export function useSyncConfig<TValue>(
|
|
|
34
34
|
const prefixedKey = `${config.clientName}.${key}`;
|
|
35
35
|
const [value, setValue] = createSignal<TValue>(defaultValue);
|
|
36
36
|
const [ready, setReady] = createSignal(false);
|
|
37
|
+
let writeVersion = 0;
|
|
37
38
|
|
|
38
39
|
// Initialize from storage (reactive to adapter changes via configure())
|
|
39
40
|
createEffect(() => {
|
|
@@ -41,11 +42,13 @@ export function useSyncConfig<TValue>(
|
|
|
41
42
|
setReady(false);
|
|
42
43
|
|
|
43
44
|
void (async () => {
|
|
45
|
+
const versionBefore = writeVersion;
|
|
46
|
+
|
|
44
47
|
if (!currentAdapter) {
|
|
45
48
|
// Use localStorage synchronously
|
|
46
49
|
try {
|
|
47
50
|
const stored = localStorage.getItem(prefixedKey);
|
|
48
|
-
if (stored !== null) {
|
|
51
|
+
if (stored !== null && writeVersion === versionBefore) {
|
|
49
52
|
setValue(() => JSON.parse(stored) as TValue);
|
|
50
53
|
}
|
|
51
54
|
} catch {
|
|
@@ -58,14 +61,14 @@ export function useSyncConfig<TValue>(
|
|
|
58
61
|
// Use custom adapter asynchronously
|
|
59
62
|
try {
|
|
60
63
|
const stored = await currentAdapter.getItem(prefixedKey);
|
|
61
|
-
if (stored !== null) {
|
|
64
|
+
if (stored !== null && writeVersion === versionBefore) {
|
|
62
65
|
setValue(() => JSON.parse(stored) as TValue);
|
|
63
66
|
}
|
|
64
67
|
} catch {
|
|
65
68
|
// Fall back to localStorage on error
|
|
66
69
|
try {
|
|
67
70
|
const stored = localStorage.getItem(prefixedKey);
|
|
68
|
-
if (stored !== null) {
|
|
71
|
+
if (stored !== null && writeVersion === versionBefore) {
|
|
69
72
|
setValue(() => JSON.parse(stored) as TValue);
|
|
70
73
|
}
|
|
71
74
|
} catch {
|
|
@@ -103,5 +106,10 @@ export function useSyncConfig<TValue>(
|
|
|
103
106
|
})();
|
|
104
107
|
});
|
|
105
108
|
|
|
106
|
-
|
|
109
|
+
const userSetValue: Setter<TValue> = ((...args: any[]) => {
|
|
110
|
+
writeVersion++;
|
|
111
|
+
return (setValue as any)(...args);
|
|
112
|
+
}) as Setter<TValue>;
|
|
113
|
+
|
|
114
|
+
return [value, userSetValue, ready];
|
|
107
115
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type Accessor,
|
|
3
|
-
createContext,
|
|
4
|
-
createSignal,
|
|
5
|
-
useContext,
|
|
6
|
-
type ParentComponent,
|
|
7
|
-
} from "solid-js";
|
|
1
|
+
import { type Accessor, createContext, createSignal, type ParentComponent } from "solid-js";
|
|
8
2
|
import { consola } from "consola";
|
|
9
3
|
|
|
10
4
|
/**
|
|
@@ -42,15 +36,6 @@ export interface LoggerContextValue {
|
|
|
42
36
|
*/
|
|
43
37
|
export const LoggerContext = createContext<LoggerContextValue>();
|
|
44
38
|
|
|
45
|
-
/**
|
|
46
|
-
* 로그 어댑터 Context에 접근하는 훅
|
|
47
|
-
*
|
|
48
|
-
* @returns LoggerContextValue 또는 undefined (Provider가 없으면)
|
|
49
|
-
*/
|
|
50
|
-
export function useLogAdapter(): LoggerContextValue | undefined {
|
|
51
|
-
return useContext(LoggerContext);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
39
|
/**
|
|
55
40
|
* 로그 어댑터 Provider
|
|
56
41
|
*
|
|
@@ -150,7 +150,6 @@ export function SharedDataProvider(props: { children: JSX.Element }): JSX.Elemen
|
|
|
150
150
|
if (initialized) return;
|
|
151
151
|
initialized = true;
|
|
152
152
|
|
|
153
|
-
// TODO: addEventListener가 resolve 전에 unmount되면 listener orphan 가능
|
|
154
153
|
void client
|
|
155
154
|
.addEventListener(
|
|
156
155
|
SharedDataChangeEvent,
|
|
@@ -160,7 +159,11 @@ export function SharedDataProvider(props: { children: JSX.Element }): JSX.Elemen
|
|
|
160
159
|
},
|
|
161
160
|
)
|
|
162
161
|
.then((key) => {
|
|
163
|
-
|
|
162
|
+
if (disposed) {
|
|
163
|
+
void client.removeEventListener(key);
|
|
164
|
+
} else {
|
|
165
|
+
listenerKeyMap.set(name, key);
|
|
166
|
+
}
|
|
164
167
|
});
|
|
165
168
|
|
|
166
169
|
void loadData(name, def);
|
|
@@ -191,7 +194,10 @@ export function SharedDataProvider(props: { children: JSX.Element }): JSX.Elemen
|
|
|
191
194
|
}
|
|
192
195
|
}
|
|
193
196
|
|
|
197
|
+
let disposed = false;
|
|
198
|
+
|
|
194
199
|
onCleanup(() => {
|
|
200
|
+
disposed = true;
|
|
195
201
|
if (!currentDefinitions) return;
|
|
196
202
|
for (const [name] of Object.entries(currentDefinitions)) {
|
|
197
203
|
const listenerKey = listenerKeyMap.get(name);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createPointerDrag.d.ts","sourceRoot":"","sources":["..\\..\\src\\hooks\\createPointerDrag.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IACP,MAAM,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;CAClC,GACA,IAAI,CAeN"}
|