@joshroy/relay-nextjs 3.1.1 → 3.1.2

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/app.js +8 -23
  2. package/component.js +0 -10
  3. package/package.json +1 -1
package/app.js CHANGED
@@ -22,7 +22,7 @@ function useRelayNextjs(props, opts) {
22
22
  }
23
23
  return env;
24
24
  });
25
- const [preloadedQuery, setPreloadedQuery] = (0, react_1.useState)(() => {
25
+ const preloadedQuery = (0, react_1.useMemo)(() => {
26
26
  if (props.preloadedQuery) {
27
27
  return props.preloadedQuery;
28
28
  }
@@ -30,29 +30,14 @@ function useRelayNextjs(props, opts) {
30
30
  return (0, react_relay_1.loadQuery)(relayEnvironment, props.operationDescriptor.request.node, props.operationDescriptor.request.variables, { fetchPolicy: 'store-or-network' });
31
31
  }
32
32
  return undefined;
33
- });
34
- const prevPreloadedQueryProp = (0, react_1.useRef)(props.preloadedQuery);
33
+ }, [props.preloadedQuery, props.operationDescriptor, relayEnvironment]);
34
+ const prevQueryRef = (0, react_1.useRef)(undefined);
35
35
  (0, react_1.useEffect)(() => {
36
- if (props.preloadedQuery &&
37
- props.preloadedQuery !== prevPreloadedQueryProp.current) {
38
- prevPreloadedQueryProp.current = props.preloadedQuery;
39
- setPreloadedQuery((prev) => {
40
- if (prev && prev !== props.preloadedQuery) {
41
- prev.dispose();
42
- }
43
- return props.preloadedQuery;
44
- });
36
+ const prev = prevQueryRef.current;
37
+ prevQueryRef.current = preloadedQuery;
38
+ if (prev && prev !== preloadedQuery) {
39
+ prev.dispose();
45
40
  }
46
- }, [props.preloadedQuery]);
47
- (0, react_1.useEffect)(() => {
48
- return () => {
49
- setPreloadedQuery((prev) => {
50
- if (prev) {
51
- prev.dispose();
52
- }
53
- return undefined;
54
- });
55
- };
56
- }, []);
41
+ }, [preloadedQuery]);
57
42
  return { env: relayEnvironment, preloadedQuery, CSN: props.CSN };
58
43
  }
package/component.js CHANGED
@@ -107,16 +107,6 @@ function withRelay(Component, query, opts) {
107
107
  });
108
108
  return () => nextPreloadedQuery.dispose();
109
109
  }, [env, queryVariables, queryOptions]);
110
- (0, react_1.useEffect)(() => {
111
- return () => {
112
- setPreloadedQuery((prev) => {
113
- if (prev) {
114
- prev.dispose();
115
- }
116
- return prev;
117
- });
118
- };
119
- }, []);
120
110
  return preloadedQuery;
121
111
  }
122
112
  function RelayComponent(props) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joshroy/relay-nextjs",
3
- "version": "3.1.1",
3
+ "version": "3.1.2",
4
4
  "description": "Use Relay in your Next.js apps!",
5
5
  "main": "index.js",
6
6
  "scripts": {