v-dict 2.0.4 → 2.0.5

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.
@@ -244,13 +244,13 @@ function createDictManager(createDictManagerOptions = {}) {
244
244
  const globalMap = react.useSyncExternalStore(subscribeMap, getMapSnapshot);
245
245
  const [clonedMap, setClonedMap] = react.useState(/* @__PURE__ */ new Map());
246
246
  const map = !clone ? globalMap : clonedMap;
247
- const state = react.useMemo(
248
- () => createStateFromMap(map),
249
- [map]
250
- );
247
+ const state = react.useMemo(() => createStateFromMap(map), [map]);
251
248
  const load = react.useCallback((options) => {
252
249
  const oldLoadPromise = loadPromiseRef.current;
253
250
  loadPromiseRef.current = createPromise();
251
+ if (!clone) {
252
+ globalLoadPromise = loadPromiseRef.current;
253
+ }
254
254
  loadDict({ ...mergedOptions, ...options }).then((map2) => {
255
255
  if (!clone) {
256
256
  maps[code] = map2;
@@ -271,9 +271,12 @@ function createDictManager(createDictManagerOptions = {}) {
271
271
  }
272
272
  setClonedMap(/* @__PURE__ */ new Map());
273
273
  }, []);
274
- const getItem = react.useCallback((value) => {
275
- return value !== null && value !== void 0 ? state.map[value] : null;
276
- }, [state]);
274
+ const getItem = react.useCallback(
275
+ (value) => {
276
+ return value !== null && value !== void 0 ? state.map[value] : null;
277
+ },
278
+ [state]
279
+ );
277
280
  react.useEffect(() => {
278
281
  if (!remote || immediate) {
279
282
  if (clone) {
@@ -281,6 +284,9 @@ function createDictManager(createDictManagerOptions = {}) {
281
284
  } else {
282
285
  if (!globalLoadPromise) {
283
286
  globalLoadPromise = createPromise();
287
+ if (!clone) {
288
+ loadPromiseRef.current = globalLoadPromise;
289
+ }
284
290
  load();
285
291
  } else {
286
292
  globalLoadPromise.then(() => {
@@ -296,6 +302,9 @@ function createDictManager(createDictManagerOptions = {}) {
296
302
  } else {
297
303
  if (!globalLoadPromise) {
298
304
  globalLoadPromise = createPromise();
305
+ if (!clone) {
306
+ loadPromiseRef.current = globalLoadPromise;
307
+ }
299
308
  globalLoadPromise.resolve(void 0);
300
309
  }
301
310
  }
@@ -115,13 +115,13 @@ function createDictManager(createDictManagerOptions = {}) {
115
115
  const globalMap = useSyncExternalStore(subscribeMap, getMapSnapshot);
116
116
  const [clonedMap, setClonedMap] = useState(/* @__PURE__ */ new Map());
117
117
  const map = !clone ? globalMap : clonedMap;
118
- const state = useMemo(
119
- () => createStateFromMap(map),
120
- [map]
121
- );
118
+ const state = useMemo(() => createStateFromMap(map), [map]);
122
119
  const load = useCallback((options) => {
123
120
  const oldLoadPromise = loadPromiseRef.current;
124
121
  loadPromiseRef.current = createPromise();
122
+ if (!clone) {
123
+ globalLoadPromise = loadPromiseRef.current;
124
+ }
125
125
  loadDict({ ...mergedOptions, ...options }).then((map2) => {
126
126
  if (!clone) {
127
127
  maps[code] = map2;
@@ -142,9 +142,12 @@ function createDictManager(createDictManagerOptions = {}) {
142
142
  }
143
143
  setClonedMap(/* @__PURE__ */ new Map());
144
144
  }, []);
145
- const getItem = useCallback((value) => {
146
- return value !== null && value !== void 0 ? state.map[value] : null;
147
- }, [state]);
145
+ const getItem = useCallback(
146
+ (value) => {
147
+ return value !== null && value !== void 0 ? state.map[value] : null;
148
+ },
149
+ [state]
150
+ );
148
151
  useEffect(() => {
149
152
  if (!remote || immediate) {
150
153
  if (clone) {
@@ -152,6 +155,9 @@ function createDictManager(createDictManagerOptions = {}) {
152
155
  } else {
153
156
  if (!globalLoadPromise) {
154
157
  globalLoadPromise = createPromise();
158
+ if (!clone) {
159
+ loadPromiseRef.current = globalLoadPromise;
160
+ }
155
161
  load();
156
162
  } else {
157
163
  globalLoadPromise.then(() => {
@@ -167,6 +173,9 @@ function createDictManager(createDictManagerOptions = {}) {
167
173
  } else {
168
174
  if (!globalLoadPromise) {
169
175
  globalLoadPromise = createPromise();
176
+ if (!clone) {
177
+ loadPromiseRef.current = globalLoadPromise;
178
+ }
170
179
  globalLoadPromise.resolve(void 0);
171
180
  }
172
181
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "v-dict",
3
- "version": "2.0.4",
3
+ "version": "2.0.5",
4
4
  "type": "module",
5
5
  "description": "Vue3 & React Dict Manager",
6
6
  "repository": {