@legendapp/state 3.0.0-alpha.4 → 3.0.0-alpha.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.
Files changed (3) hide show
  1. package/package.json +1 -1
  2. package/react.js +11 -9
  3. package/react.mjs +12 -10
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@legendapp/state",
3
- "version": "3.0.0-alpha.4",
3
+ "version": "3.0.0-alpha.5",
4
4
  "description": "legend-state",
5
5
  "sideEffects": false,
6
6
  "private": false,
package/react.js CHANGED
@@ -111,15 +111,6 @@ function useSelector(selector, options) {
111
111
  const { subscribe, getVersion, run } = selectorFn;
112
112
  value = run(selector);
113
113
  index_js.useSyncExternalStore(subscribe, getVersion, getVersion);
114
- if (options == null ? void 0 : options.suspense) {
115
- if (state.isPromise(value) || !value && state.isObservable(selector) && state.syncState(selector).isLoaded.get() === false) {
116
- if (React__default.default.use) {
117
- React__default.default.use(value);
118
- } else {
119
- throw value;
120
- }
121
- }
122
- }
123
114
  } catch (err) {
124
115
  if ((process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test") && ((_a = err == null ? void 0 : err.message) == null ? void 0 : _a.includes("Rendered more"))) {
125
116
  console.warn(
@@ -128,6 +119,17 @@ function useSelector(selector, options) {
128
119
  }
129
120
  throw err;
130
121
  }
122
+ if (options == null ? void 0 : options.suspense) {
123
+ const isProm = state.isPromise(value);
124
+ if (state.isPromise(value) || !value && state.isObservable(selector)) {
125
+ const vProm = isProm ? value : state.when(selector);
126
+ if (React__default.default.use) {
127
+ React__default.default.use(vProm);
128
+ } else {
129
+ throw vProm;
130
+ }
131
+ }
132
+ }
131
133
  return value;
132
134
  }
133
135
 
package/react.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { isFunction, isEmpty, observable, isPromise, isObservable, syncState, computeSelector, isArray, isMap, isObservableValueReady, linked, observe, when, whenReady, internal, trackSelector, isPrimitive } from '@legendapp/state';
1
+ import { isFunction, isEmpty, observable, isPromise, isObservable, when, computeSelector, isArray, isMap, isObservableValueReady, linked, observe, whenReady, internal, trackSelector, isPrimitive } from '@legendapp/state';
2
2
  import React, { memo, forwardRef, createElement, useState, useContext, useMemo, useRef, useEffect, createContext, useCallback } from 'react';
3
3
  import { useSyncExternalStore } from 'use-sync-external-store/shim/index.js';
4
4
 
@@ -105,15 +105,6 @@ function useSelector(selector, options) {
105
105
  const { subscribe, getVersion, run } = selectorFn;
106
106
  value = run(selector);
107
107
  useSyncExternalStore(subscribe, getVersion, getVersion);
108
- if (options == null ? void 0 : options.suspense) {
109
- if (isPromise(value) || !value && isObservable(selector) && syncState(selector).isLoaded.get() === false) {
110
- if (React.use) {
111
- React.use(value);
112
- } else {
113
- throw value;
114
- }
115
- }
116
- }
117
108
  } catch (err) {
118
109
  if ((process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test") && ((_a = err == null ? void 0 : err.message) == null ? void 0 : _a.includes("Rendered more"))) {
119
110
  console.warn(
@@ -122,6 +113,17 @@ function useSelector(selector, options) {
122
113
  }
123
114
  throw err;
124
115
  }
116
+ if (options == null ? void 0 : options.suspense) {
117
+ const isProm = isPromise(value);
118
+ if (isPromise(value) || !value && isObservable(selector)) {
119
+ const vProm = isProm ? value : when(selector);
120
+ if (React.use) {
121
+ React.use(vProm);
122
+ } else {
123
+ throw vProm;
124
+ }
125
+ }
126
+ }
125
127
  return value;
126
128
  }
127
129