@faasjs/react 1.6.0 → 1.7.0
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/index.d.mts +6 -2
- package/dist/index.d.ts +6 -2
- package/dist/index.js +43 -32
- package/dist/index.mjs +44 -33
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -40,7 +40,7 @@ type FaasDataInjection<Data = any> = {
|
|
|
40
40
|
data: Data
|
|
41
41
|
error: any
|
|
42
42
|
promise: Promise<Response<Data>>
|
|
43
|
-
reload(params?: Record<string, any>):
|
|
43
|
+
reload(params?: Record<string, any>): void
|
|
44
44
|
setData: React.Dispatch<React.SetStateAction<Data>>
|
|
45
45
|
setLoading: React.Dispatch<React.SetStateAction<boolean>>
|
|
46
46
|
setPromise: React.Dispatch<React.SetStateAction<Promise<Response<Data>>>>
|
|
@@ -154,6 +154,9 @@ declare function useFaas<PathOrData extends FaasAction$1>(action: string | PathO
|
|
|
154
154
|
* ```
|
|
155
155
|
*/
|
|
156
156
|
declare function FaasDataWrapper<PathOrData extends FaasAction$1>(props: FaasDataWrapperProps<PathOrData>): JSX.Element;
|
|
157
|
+
declare namespace FaasDataWrapper {
|
|
158
|
+
var whyDidYouRender: boolean;
|
|
159
|
+
}
|
|
157
160
|
|
|
158
161
|
interface ErrorBoundaryProps {
|
|
159
162
|
children?: ReactNode;
|
|
@@ -172,9 +175,10 @@ declare class ErrorBoundary extends Component<ErrorBoundaryProps, {
|
|
|
172
175
|
componentStack?: string;
|
|
173
176
|
};
|
|
174
177
|
}> {
|
|
178
|
+
static whyDidYouRender: boolean;
|
|
175
179
|
constructor(props: ErrorBoundaryProps);
|
|
176
180
|
componentDidCatch(error: Error | null, info: any): void;
|
|
177
|
-
render(): string | number | boolean | react_jsx_runtime.JSX.Element
|
|
181
|
+
render(): string | number | boolean | Iterable<ReactNode> | react_jsx_runtime.JSX.Element;
|
|
178
182
|
}
|
|
179
183
|
|
|
180
184
|
type SignalOptions = {
|
package/dist/index.d.ts
CHANGED
|
@@ -40,7 +40,7 @@ type FaasDataInjection<Data = any> = {
|
|
|
40
40
|
data: Data
|
|
41
41
|
error: any
|
|
42
42
|
promise: Promise<Response<Data>>
|
|
43
|
-
reload(params?: Record<string, any>):
|
|
43
|
+
reload(params?: Record<string, any>): void
|
|
44
44
|
setData: React.Dispatch<React.SetStateAction<Data>>
|
|
45
45
|
setLoading: React.Dispatch<React.SetStateAction<boolean>>
|
|
46
46
|
setPromise: React.Dispatch<React.SetStateAction<Promise<Response<Data>>>>
|
|
@@ -154,6 +154,9 @@ declare function useFaas<PathOrData extends FaasAction$1>(action: string | PathO
|
|
|
154
154
|
* ```
|
|
155
155
|
*/
|
|
156
156
|
declare function FaasDataWrapper<PathOrData extends FaasAction$1>(props: FaasDataWrapperProps<PathOrData>): JSX.Element;
|
|
157
|
+
declare namespace FaasDataWrapper {
|
|
158
|
+
var whyDidYouRender: boolean;
|
|
159
|
+
}
|
|
157
160
|
|
|
158
161
|
interface ErrorBoundaryProps {
|
|
159
162
|
children?: ReactNode;
|
|
@@ -172,9 +175,10 @@ declare class ErrorBoundary extends Component<ErrorBoundaryProps, {
|
|
|
172
175
|
componentStack?: string;
|
|
173
176
|
};
|
|
174
177
|
}> {
|
|
178
|
+
static whyDidYouRender: boolean;
|
|
175
179
|
constructor(props: ErrorBoundaryProps);
|
|
176
180
|
componentDidCatch(error: Error | null, info: any): void;
|
|
177
|
-
render(): string | number | boolean | react_jsx_runtime.JSX.Element
|
|
181
|
+
render(): string | number | boolean | Iterable<ReactNode> | react_jsx_runtime.JSX.Element;
|
|
178
182
|
}
|
|
179
183
|
|
|
180
184
|
type SignalOptions = {
|
package/dist/index.js
CHANGED
|
@@ -103,6 +103,14 @@ function FaasReactClient({
|
|
|
103
103
|
setLoading(false);
|
|
104
104
|
};
|
|
105
105
|
}, [action, JSON.stringify(options2.params || params), reloadTimes, skip]);
|
|
106
|
+
const reload = react.useCallback(
|
|
107
|
+
(params2) => {
|
|
108
|
+
if (params2)
|
|
109
|
+
setParams(params2);
|
|
110
|
+
setReloadTimes((prev) => prev + 1);
|
|
111
|
+
},
|
|
112
|
+
[params]
|
|
113
|
+
);
|
|
106
114
|
return {
|
|
107
115
|
action,
|
|
108
116
|
params,
|
|
@@ -111,45 +119,38 @@ function FaasReactClient({
|
|
|
111
119
|
reloadTimes,
|
|
112
120
|
error,
|
|
113
121
|
promise,
|
|
114
|
-
|
|
115
|
-
if (params2)
|
|
116
|
-
setParams(params2);
|
|
117
|
-
setReloadTimes(reloadTimes + 1);
|
|
118
|
-
return promise;
|
|
119
|
-
},
|
|
122
|
+
reload,
|
|
120
123
|
setData: (options2 == null ? void 0 : options2.setData) || setData,
|
|
121
124
|
setLoading,
|
|
122
125
|
setPromise,
|
|
123
126
|
setError
|
|
124
127
|
};
|
|
125
128
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
129
|
+
useFaas2.whyDidYouRender = true;
|
|
130
|
+
function FaasDataWrapper2({
|
|
131
|
+
action,
|
|
132
|
+
params,
|
|
133
|
+
fallback,
|
|
134
|
+
render,
|
|
135
|
+
children,
|
|
136
|
+
onDataChange,
|
|
137
|
+
data,
|
|
138
|
+
setData
|
|
139
|
+
}) {
|
|
140
|
+
const request = useFaas2(action, params, {
|
|
137
141
|
data,
|
|
138
142
|
setData
|
|
139
|
-
})
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
if (onDataChange)
|
|
151
|
-
onDataChange(request);
|
|
152
|
-
}, [JSON.stringify(request.data)]);
|
|
143
|
+
});
|
|
144
|
+
const [loaded, setLoaded] = react.useState(false);
|
|
145
|
+
react.useEffect(() => {
|
|
146
|
+
if (!loaded && !request.loading)
|
|
147
|
+
setLoaded(true);
|
|
148
|
+
}, [request.loading]);
|
|
149
|
+
react.useEffect(() => {
|
|
150
|
+
if (onDataChange)
|
|
151
|
+
onDataChange(request);
|
|
152
|
+
}, [JSON.stringify(request.data)]);
|
|
153
|
+
const child = react.useMemo(() => {
|
|
153
154
|
if (loaded) {
|
|
154
155
|
if (children)
|
|
155
156
|
return react.cloneElement(children, request);
|
|
@@ -157,7 +158,15 @@ function FaasReactClient({
|
|
|
157
158
|
return render(request);
|
|
158
159
|
}
|
|
159
160
|
return fallback || null;
|
|
160
|
-
}
|
|
161
|
+
}, [loaded, request.action, request.params, request.data, request.error]);
|
|
162
|
+
return child;
|
|
163
|
+
}
|
|
164
|
+
FaasDataWrapper2.whyDidYouRender = true;
|
|
165
|
+
const reactClient = {
|
|
166
|
+
id: client.id,
|
|
167
|
+
faas: faas2,
|
|
168
|
+
useFaas: useFaas2,
|
|
169
|
+
FaasDataWrapper: FaasDataWrapper2
|
|
161
170
|
};
|
|
162
171
|
clients[domain] = reactClient;
|
|
163
172
|
return reactClient;
|
|
@@ -185,6 +194,7 @@ function FaasDataWrapper(props) {
|
|
|
185
194
|
return props.fallback || null;
|
|
186
195
|
return /* @__PURE__ */ jsxRuntime.jsx(client.FaasDataWrapper, { ...props });
|
|
187
196
|
}
|
|
197
|
+
FaasDataWrapper.whyDidYouRender = true;
|
|
188
198
|
var ErrorBoundary = class extends react.Component {
|
|
189
199
|
constructor(props) {
|
|
190
200
|
super(props);
|
|
@@ -221,6 +231,7 @@ var ErrorBoundary = class extends react.Component {
|
|
|
221
231
|
return this.props.children;
|
|
222
232
|
}
|
|
223
233
|
};
|
|
234
|
+
ErrorBoundary.whyDidYouRender = true;
|
|
224
235
|
function signal(initialValue, options = {}) {
|
|
225
236
|
const state = signalsReact.signal(initialValue);
|
|
226
237
|
if (options.debugName)
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useRef, useState, useEffect, cloneElement,
|
|
1
|
+
import { useRef, useState, useEffect, Component, cloneElement, useCallback, useMemo } from 'react';
|
|
2
2
|
import { FaasBrowserClient } from '@faasjs/browser';
|
|
3
3
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
4
|
import { signal as signal$1, effect } from '@preact/signals-react';
|
|
@@ -103,6 +103,14 @@ function FaasReactClient({
|
|
|
103
103
|
setLoading(false);
|
|
104
104
|
};
|
|
105
105
|
}, [action, JSON.stringify(options2.params || params), reloadTimes, skip]);
|
|
106
|
+
const reload = useCallback(
|
|
107
|
+
(params2) => {
|
|
108
|
+
if (params2)
|
|
109
|
+
setParams(params2);
|
|
110
|
+
setReloadTimes((prev) => prev + 1);
|
|
111
|
+
},
|
|
112
|
+
[params]
|
|
113
|
+
);
|
|
106
114
|
return {
|
|
107
115
|
action,
|
|
108
116
|
params,
|
|
@@ -111,45 +119,38 @@ function FaasReactClient({
|
|
|
111
119
|
reloadTimes,
|
|
112
120
|
error,
|
|
113
121
|
promise,
|
|
114
|
-
|
|
115
|
-
if (params2)
|
|
116
|
-
setParams(params2);
|
|
117
|
-
setReloadTimes(reloadTimes + 1);
|
|
118
|
-
return promise;
|
|
119
|
-
},
|
|
122
|
+
reload,
|
|
120
123
|
setData: (options2 == null ? void 0 : options2.setData) || setData,
|
|
121
124
|
setLoading,
|
|
122
125
|
setPromise,
|
|
123
126
|
setError
|
|
124
127
|
};
|
|
125
128
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
129
|
+
useFaas2.whyDidYouRender = true;
|
|
130
|
+
function FaasDataWrapper2({
|
|
131
|
+
action,
|
|
132
|
+
params,
|
|
133
|
+
fallback,
|
|
134
|
+
render,
|
|
135
|
+
children,
|
|
136
|
+
onDataChange,
|
|
137
|
+
data,
|
|
138
|
+
setData
|
|
139
|
+
}) {
|
|
140
|
+
const request = useFaas2(action, params, {
|
|
137
141
|
data,
|
|
138
142
|
setData
|
|
139
|
-
})
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
if (onDataChange)
|
|
151
|
-
onDataChange(request);
|
|
152
|
-
}, [JSON.stringify(request.data)]);
|
|
143
|
+
});
|
|
144
|
+
const [loaded, setLoaded] = useState(false);
|
|
145
|
+
useEffect(() => {
|
|
146
|
+
if (!loaded && !request.loading)
|
|
147
|
+
setLoaded(true);
|
|
148
|
+
}, [request.loading]);
|
|
149
|
+
useEffect(() => {
|
|
150
|
+
if (onDataChange)
|
|
151
|
+
onDataChange(request);
|
|
152
|
+
}, [JSON.stringify(request.data)]);
|
|
153
|
+
const child = useMemo(() => {
|
|
153
154
|
if (loaded) {
|
|
154
155
|
if (children)
|
|
155
156
|
return cloneElement(children, request);
|
|
@@ -157,7 +158,15 @@ function FaasReactClient({
|
|
|
157
158
|
return render(request);
|
|
158
159
|
}
|
|
159
160
|
return fallback || null;
|
|
160
|
-
}
|
|
161
|
+
}, [loaded, request.action, request.params, request.data, request.error]);
|
|
162
|
+
return child;
|
|
163
|
+
}
|
|
164
|
+
FaasDataWrapper2.whyDidYouRender = true;
|
|
165
|
+
const reactClient = {
|
|
166
|
+
id: client.id,
|
|
167
|
+
faas: faas2,
|
|
168
|
+
useFaas: useFaas2,
|
|
169
|
+
FaasDataWrapper: FaasDataWrapper2
|
|
161
170
|
};
|
|
162
171
|
clients[domain] = reactClient;
|
|
163
172
|
return reactClient;
|
|
@@ -185,6 +194,7 @@ function FaasDataWrapper(props) {
|
|
|
185
194
|
return props.fallback || null;
|
|
186
195
|
return /* @__PURE__ */ jsx(client.FaasDataWrapper, { ...props });
|
|
187
196
|
}
|
|
197
|
+
FaasDataWrapper.whyDidYouRender = true;
|
|
188
198
|
var ErrorBoundary = class extends Component {
|
|
189
199
|
constructor(props) {
|
|
190
200
|
super(props);
|
|
@@ -221,6 +231,7 @@ var ErrorBoundary = class extends Component {
|
|
|
221
231
|
return this.props.children;
|
|
222
232
|
}
|
|
223
233
|
};
|
|
234
|
+
ErrorBoundary.whyDidYouRender = true;
|
|
224
235
|
function signal(initialValue, options = {}) {
|
|
225
236
|
const state = signal$1(initialValue);
|
|
226
237
|
if (options.debugName)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faasjs/react",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"dist"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@faasjs/browser": "1.
|
|
25
|
+
"@faasjs/browser": "1.7.0"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
28
|
"react": "*",
|