@faasjs/react 1.6.0 → 1.7.1

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 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>): Promise<Response<Data>>
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 | Iterable<ReactNode>;
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>): Promise<Response<Data>>
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 | Iterable<ReactNode>;
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
- async reload(params2) {
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
- const reactClient = {
127
- id: client.id,
128
- faas: faas2,
129
- useFaas: useFaas2,
130
- FaasDataWrapper({
131
- action,
132
- params,
133
- fallback,
134
- render,
135
- children,
136
- onDataChange,
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
- const request = useFaas2(action, params, {
141
- data,
142
- setData
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)]);
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, Component } from 'react';
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
- async reload(params2) {
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
- const reactClient = {
127
- id: client.id,
128
- faas: faas2,
129
- useFaas: useFaas2,
130
- FaasDataWrapper({
131
- action,
132
- params,
133
- fallback,
134
- render,
135
- children,
136
- onDataChange,
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
- const request = useFaas2(action, params, {
141
- data,
142
- setData
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)]);
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.6.0",
3
+ "version": "1.7.1",
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.6.0"
25
+ "@faasjs/browser": "1.7.1"
26
26
  },
27
27
  "peerDependencies": {
28
28
  "react": "*",