@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.
Files changed (94) hide show
  1. package/dist/components/data/kanban/Kanban.d.ts.map +1 -1
  2. package/dist/components/data/kanban/Kanban.js +4 -13
  3. package/dist/components/data/kanban/Kanban.js.map +2 -2
  4. package/dist/components/data/list/ListItem.d.ts +0 -18
  5. package/dist/components/data/list/ListItem.d.ts.map +1 -1
  6. package/dist/components/data/list/ListItem.js +3 -7
  7. package/dist/components/data/list/ListItem.js.map +2 -2
  8. package/dist/components/data/sheet/DataSheet.js +3 -3
  9. package/dist/components/data/sheet/DataSheet.js.map +2 -2
  10. package/dist/components/disclosure/Dialog.d.ts +0 -6
  11. package/dist/components/disclosure/Dialog.d.ts.map +1 -1
  12. package/dist/components/disclosure/Dialog.js +12 -18
  13. package/dist/components/disclosure/Dialog.js.map +2 -2
  14. package/dist/components/disclosure/Dropdown.d.ts.map +1 -1
  15. package/dist/components/disclosure/Dropdown.js +4 -13
  16. package/dist/components/disclosure/Dropdown.js.map +2 -2
  17. package/dist/components/disclosure/dialogZIndex.d.ts +2 -0
  18. package/dist/components/disclosure/dialogZIndex.d.ts.map +1 -1
  19. package/dist/components/disclosure/dialogZIndex.js +4 -0
  20. package/dist/components/disclosure/dialogZIndex.js.map +1 -1
  21. package/dist/components/features/crud-detail/CrudDetail.d.ts.map +1 -1
  22. package/dist/components/features/crud-detail/CrudDetail.js +3 -2
  23. package/dist/components/features/crud-detail/CrudDetail.js.map +2 -2
  24. package/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -1
  25. package/dist/components/features/crud-sheet/CrudSheet.js +4 -3
  26. package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
  27. package/dist/components/feedback/busy/BusyContainer.d.ts +2 -0
  28. package/dist/components/feedback/busy/BusyContainer.d.ts.map +1 -1
  29. package/dist/components/feedback/busy/BusyContainer.js.map +1 -1
  30. package/dist/components/feedback/print/PrintContext.js +1 -1
  31. package/dist/components/feedback/print/PrintContext.js.map +1 -1
  32. package/dist/components/form-control/field/NumberInput.d.ts +2 -2
  33. package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
  34. package/dist/components/form-control/field/NumberInput.js +3 -7
  35. package/dist/components/form-control/field/NumberInput.js.map +2 -2
  36. package/dist/components/form-control/field/TextInput.d.ts +2 -2
  37. package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
  38. package/dist/components/form-control/field/TextInput.js +3 -7
  39. package/dist/components/form-control/field/TextInput.js.map +2 -2
  40. package/dist/components/form-control/select/SelectItem.d.ts +0 -3
  41. package/dist/components/form-control/select/SelectItem.d.ts.map +1 -1
  42. package/dist/components/form-control/select/SelectItem.js +3 -7
  43. package/dist/components/form-control/select/SelectItem.js.map +2 -2
  44. package/dist/helpers/createSlotComponent.d.ts +12 -0
  45. package/dist/helpers/createSlotComponent.d.ts.map +1 -0
  46. package/dist/helpers/createSlotComponent.js +13 -0
  47. package/dist/helpers/createSlotComponent.js.map +6 -0
  48. package/dist/{hooks/createPointerDrag.d.ts → helpers/startPointerDrag.d.ts} +2 -2
  49. package/dist/helpers/startPointerDrag.d.ts.map +1 -0
  50. package/dist/{hooks/createPointerDrag.js → helpers/startPointerDrag.js} +3 -3
  51. package/dist/{hooks/createPointerDrag.js.map → helpers/startPointerDrag.js.map} +2 -2
  52. package/dist/hooks/createControllableStore.d.ts.map +1 -1
  53. package/dist/hooks/createControllableStore.js +5 -1
  54. package/dist/hooks/createControllableStore.js.map +1 -1
  55. package/dist/hooks/useLogger.d.ts.map +1 -1
  56. package/dist/hooks/useLogger.js +3 -2
  57. package/dist/hooks/useLogger.js.map +1 -1
  58. package/dist/hooks/useSyncConfig.d.ts.map +1 -1
  59. package/dist/hooks/useSyncConfig.js +10 -4
  60. package/dist/hooks/useSyncConfig.js.map +1 -1
  61. package/dist/index.d.ts +1 -0
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +1 -0
  64. package/dist/index.js.map +1 -1
  65. package/dist/providers/LoggerContext.d.ts +0 -6
  66. package/dist/providers/LoggerContext.d.ts.map +1 -1
  67. package/dist/providers/LoggerContext.js +2 -6
  68. package/dist/providers/LoggerContext.js.map +2 -2
  69. package/dist/providers/shared-data/SharedDataProvider.d.ts.map +1 -1
  70. package/dist/providers/shared-data/SharedDataProvider.js +7 -1
  71. package/dist/providers/shared-data/SharedDataProvider.js.map +2 -2
  72. package/package.json +9 -9
  73. package/src/components/data/kanban/Kanban.tsx +3 -15
  74. package/src/components/data/list/ListItem.tsx +2 -27
  75. package/src/components/data/sheet/DataSheet.tsx +3 -3
  76. package/src/components/disclosure/Dialog.tsx +14 -27
  77. package/src/components/disclosure/Dropdown.tsx +3 -15
  78. package/src/components/disclosure/dialogZIndex.ts +5 -0
  79. package/src/components/features/crud-detail/CrudDetail.tsx +3 -2
  80. package/src/components/features/crud-sheet/CrudSheet.tsx +4 -3
  81. package/src/components/feedback/busy/BusyContainer.tsx +2 -0
  82. package/src/components/feedback/print/PrintContext.ts +1 -1
  83. package/src/components/form-control/field/NumberInput.tsx +2 -10
  84. package/src/components/form-control/field/TextInput.tsx +3 -18
  85. package/src/components/form-control/select/SelectItem.tsx +3 -19
  86. package/src/helpers/createSlotComponent.ts +23 -0
  87. package/src/{hooks/createPointerDrag.ts → helpers/startPointerDrag.ts} +1 -1
  88. package/src/hooks/createControllableStore.ts +5 -1
  89. package/src/hooks/useLogger.ts +3 -3
  90. package/src/hooks/useSyncConfig.ts +12 -4
  91. package/src/index.ts +1 -0
  92. package/src/providers/LoggerContext.tsx +1 -16
  93. package/src/providers/shared-data/SharedDataProvider.tsx +8 -2
  94. 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
- return [value, setValue, ready];
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
@@ -167,6 +167,7 @@ export * from "./directives/ripple";
167
167
 
168
168
  export * from "./helpers/mergeStyles";
169
169
  export * from "./helpers/createAppStructure";
170
+ export * from "./helpers/createSlotComponent";
170
171
 
171
172
  //#endregion
172
173
 
@@ -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
- listenerKeyMap.set(name, key);
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"}