Skip to content

Instantly share code, notes, and snippets.

@dovranJorayev
Created June 12, 2024 13:32
Show Gist options
  • Save dovranJorayev/d6f5d3179b22fd67e910b5b9997e26ad to your computer and use it in GitHub Desktop.
Save dovranJorayev/d6f5d3179b22fd67e910b5b9997e26ad to your computer and use it in GitHub Desktop.
diff --git a/node_modules/next-redux-wrapper/.DS_Store b/node_modules/next-redux-wrapper/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/node_modules/next-redux-wrapper/.DS_Store differ
diff --git a/node_modules/next-redux-wrapper/es6/index.d.ts b/node_modules/next-redux-wrapper/es6/index.d.ts
index 66c1548..181cf6d 100644
--- a/node_modules/next-redux-wrapper/es6/index.d.ts
+++ b/node_modules/next-redux-wrapper/es6/index.d.ts
@@ -1,6 +1,6 @@
/// <reference types="node" />
/// <reference types="react" />
-import App, { AppContext, AppInitialProps } from 'next/app';
+import App, { AppContext, AppInitialProps, AppProps } from 'next/app';
import { Store } from 'redux';
import { GetServerSideProps, GetServerSidePropsContext, GetStaticProps, GetStaticPropsContext, NextComponentType, NextPageContext } from 'next';
/**
@@ -34,9 +34,9 @@ export declare const createWrapper: <S extends Store<any, import("redux").AnyAct
displayName: string;
getInitialProps: any;
};
- useWrappedStore: ({ initialState: giapState, initialProps, ...props }: any, displayName?: string) => {
+ useWrappedStore: <P_4 extends AppProps<{}>>(incomingProps: P_4, displayName?: string) => {
store: S;
- props: any;
+ props: P_4;
};
};
declare const _default: <S extends Store<any, import("redux").AnyAction>>(makeStore: MakeStore<S>, config?: Config<S>) => (Component: any) => {
diff --git a/node_modules/next-redux-wrapper/es6/index.js b/node_modules/next-redux-wrapper/es6/index.js
index 6f1a4f1..0989efb 100644
--- a/node_modules/next-redux-wrapper/es6/index.js
+++ b/node_modules/next-redux-wrapper/es6/index.js
@@ -227,43 +227,68 @@ export var createWrapper = function (makeStore, config) {
var useHybridHydrate = function (store, giapState, gspState, gsspState, gippState) {
var events = useRouter().events;
var shouldHydrate = useRef(true);
- // We should only hydrate when the router has changed routes
+ /**
+ * Moving this functions outside of the useEffect hook
+ * to avoid creating new function references on each render.
+ */
+ var handleRouteChangeStart = function () {
+ shouldHydrate.current = true;
+ };
+ var handleRouteChangeComplete = function () {
+ shouldHydrate.current = false;
+ };
useEffect(function () {
- var handleStart = function () {
- shouldHydrate.current = true;
- };
- events === null || events === void 0 ? void 0 : events.on('routeChangeStart', handleStart);
+ events === null || events === void 0 ? void 0 : events.on('routeChangeStart', handleRouteChangeStart);
+ /**
+ * Depending on whether the user is navigating to a new route or not.
+ * This can help avoid unnecessary hydration of components and potentially improve performance.
+ *
+ * @see https://nextjs.org/docs/api-reference/next/router#routerevents
+ */
+ events === null || events === void 0 ? void 0 : events.on('routeChangeComplete', handleRouteChangeComplete);
return function () {
- events === null || events === void 0 ? void 0 : events.off('routeChangeStart', handleStart);
+ events === null || events === void 0 ? void 0 : events.off('routeChangeStart', handleRouteChangeStart);
+ events === null || events === void 0 ? void 0 : events.off('routeChangeComplete', handleRouteChangeComplete);
};
}, [events]);
- // useMemo so that when we navigate client side, we always synchronously hydrate the state before the new page
- // components are mounted. This means we hydrate while the previous page components are still mounted.
- // You might think that might cause issues because the selectors on the previous page (still mounted) will suddenly
- // contain other data, and maybe even nested properties, causing null reference exceptions.
- // But that's not the case.
- // Hydrating in useMemo will not trigger a rerender of the still mounted page component. So if your selectors do have
- // some initial state values causing them to rerun after hydration, and you're accessing deeply nested values inside your
- // components, you still wouldn't get errors, because there's no rerender.
- // Instead, React will render the new page components straight away, which will have selectors with the correct data.
- useMemo(function () {
- if (shouldHydrate.current) {
- hydrateOrchestrator(store, giapState, gspState, gsspState, gippState);
- shouldHydrate.current = false;
- }
+ var memoizedHydrateOrchestrator = useMemo(function () {
+ /**
+ * we are returning a function that will be called when the component is unmounted.
+ * This function will check if the shouldHydrate.current flag is true, which means that the router has changed routes,
+ * and if it is true, it calls the hydrateOrchestrator function with the necessary states and data.
+ */
+ return function () {
+ if (shouldHydrate.current) {
+ hydrateOrchestrator(store, giapState, gspState, gsspState, gippState);
+ }
+ };
}, [store, giapState, gspState, gsspState, gippState]);
+ useEffect(function () {
+ /**
+ * This memoizedHydrateOrchestrator function is being created using the useMemo hook to ensure that the function
+ * is only created when any of the dependencies passed in the second argument to useMemo changes.
+ *
+ * This function checks if the shouldHydrate.current flag is true, which means that the router has changed routes,
+ * and if it is true, it calls the hydrateOrchestrator function with the necessary states and data.
+ *
+ * By memoizing this function, we can ensure that it is only created once and reused on subsequent renders,
+ * avoiding unnecessary function calls and potential performance issues.
+ */
+ memoizedHydrateOrchestrator();
+ }, [memoizedHydrateOrchestrator]);
};
// giapState stands for getInitialAppProps state
- var useWrappedStore = function (_a, displayName) {
- var _b, _c, _d, _e, _f, _g;
+ var useWrappedStore = function (incomingProps, displayName) {
+ var _a, _b, _c, _d, _e, _f;
if (displayName === void 0) { displayName = 'useWrappedStore'; }
- var giapState = _a.initialState, initialProps = _a.initialProps, props = __rest(_a, ["initialState", "initialProps"]);
+ // createWrapper adds WrapperProps to incomingProps, they are not present in P so type needs to be coerced here
+ var _g = incomingProps, giapState = _g.initialState, initialProps = _g.initialProps, props = __rest(_g, ["initialState", "initialProps"]);
// getStaticProps state
- var gspState = (props === null || props === void 0 ? void 0 : props.__N_SSG) ? (_b = props === null || props === void 0 ? void 0 : props.pageProps) === null || _b === void 0 ? void 0 : _b.initialState : null;
+ var gspState = (props === null || props === void 0 ? void 0 : props.__N_SSG) ? (_a = props === null || props === void 0 ? void 0 : props.pageProps) === null || _a === void 0 ? void 0 : _a.initialState : null;
// getServerSideProps state
- var gsspState = (props === null || props === void 0 ? void 0 : props.__N_SSP) ? (_c = props === null || props === void 0 ? void 0 : props.pageProps) === null || _c === void 0 ? void 0 : _c.initialState : null;
+ var gsspState = (props === null || props === void 0 ? void 0 : props.__N_SSP) ? (_b = props === null || props === void 0 ? void 0 : props.pageProps) === null || _b === void 0 ? void 0 : _b.initialState : null;
// getInitialPageProps state
- var gippState = !gspState && !gsspState ? (_e = (_d = props === null || props === void 0 ? void 0 : props.pageProps) === null || _d === void 0 ? void 0 : _d.initialState) !== null && _e !== void 0 ? _e : null : null;
+ var gippState = !gspState && !gsspState ? (_d = (_c = props === null || props === void 0 ? void 0 : props.pageProps) === null || _c === void 0 ? void 0 : _c.initialState) !== null && _d !== void 0 ? _d : null : null;
if (config.debug) {
console.log('4.', displayName, 'created new store with', {
giapState: giapState,
@@ -281,12 +306,12 @@ export var createWrapper = function (makeStore, config) {
resultProps.pageProps = __assign(__assign({}, initialProps.pageProps), props.pageProps);
}
// just some cleanup to prevent passing it as props, we need to clone props to safely delete initialState
- if ((_f = props === null || props === void 0 ? void 0 : props.pageProps) === null || _f === void 0 ? void 0 : _f.initialState) {
+ if ((_e = props === null || props === void 0 ? void 0 : props.pageProps) === null || _e === void 0 ? void 0 : _e.initialState) {
resultProps = __assign(__assign({}, props), { pageProps: __assign({}, props.pageProps) });
delete resultProps.pageProps.initialState;
}
// unwrap getInitialPageProps
- if ((_g = resultProps === null || resultProps === void 0 ? void 0 : resultProps.pageProps) === null || _g === void 0 ? void 0 : _g.initialProps) {
+ if ((_f = resultProps === null || resultProps === void 0 ? void 0 : resultProps.pageProps) === null || _f === void 0 ? void 0 : _f.initialProps) {
resultProps.pageProps = __assign(__assign({}, resultProps.pageProps), resultProps.pageProps.initialProps);
delete resultProps.pageProps.initialProps;
}
diff --git a/node_modules/next-redux-wrapper/es6/index.js.map b/node_modules/next-redux-wrapper/es6/index.js.map
index 0a8df17..9044a65 100644
--- a/node_modules/next-redux-wrapper/es6/index.js.map
+++ b/node_modules/next-redux-wrapper/es6/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAC,MAAM,OAAO,CAAC;AACxD,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAUrC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAEtC;;;;;;;;;;;;;;GAcG;AAEH,MAAM,CAAC,IAAM,OAAO,GAAG,gCAAgC,CAAC;AAExD,IAAM,WAAW,GAAG,cAAM,OAAA,OAAO,MAAM,KAAK,WAAW,EAA7B,CAA6B,CAAC;AAExD,IAAM,oBAAoB,GAAG,UAAkB,YAAiB,EAAE,EAAkC;QAAlC,qBAAgC,EAAE,KAAA,EAAjC,gBAAgB,sBAAA;IAC/E,OAAA,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY;AAAhE,CAAgE,CAAC;AAErE,IAAM,kBAAkB,GAAG,UAAkB,KAAU,EAAE,EAAgC;QAAhC,qBAA8B,EAAE,KAAA,EAA/B,cAAc,oBAAA;IACpE,OAAA,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;AAA9C,CAA8C,CAAC;AASnD,IAAI,iBAAsB,CAAC;AAE3B,IAAM,SAAS,GAAG,UAAkB,EAA8C;;QAA7C,SAAS,eAAA,EAAE,eAAY,EAAZ,OAAO,mBAAG,EAAE,KAAA;IACxD,IAAM,WAAW,GAAG,cAAM,OAAA,SAAS,CAAC,OAAO,CAAC,EAAlB,CAAkB,CAAC;IAE7C,IAAI,WAAW,EAAE,EAAE;QACf,IAAM,GAAG,GAAQ,CAAA,MAAC,OAA2B,0CAAE,GAAG,MAAI,MAAA,MAAC,OAAsB,0CAAE,GAAG,0CAAE,GAAG,CAAA,CAAC;QACxF,IAAI,GAAG,EAAE;YACL,oEAAoE;YACpE,4FAA4F;YAC5F,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE;gBAC9B,GAAG,CAAC,uBAAuB,GAAG,WAAW,EAAE,CAAC,CAAC,mBAAmB;aACnE;YACD,OAAO,GAAG,CAAC,uBAAuB,CAAC;SACtC;QACD,OAAO,WAAW,EAAE,CAAC;KACxB;IAED,2CAA2C;IAC3C,IAAI,CAAC,iBAAiB,EAAE;QACpB,iBAAiB,GAAG,WAAW,EAAE,CAAC;KACrC;IAED,OAAO,iBAAiB,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,aAAa,GAAG,UAAkB,SAAuB,EAAE,MAAsB;IAAtB,uBAAA,EAAA,WAAsB;IAC1F,IAAM,SAAS,GAAG,UAAO,EAQxB;YAPG,QAAQ,cAAA,EACR,OAAO,aAAA,EACP,yBAAyB,EAAzB,iBAAiB,mBAAG,KAAK,KAAA;;;;;;wBAMnB,KAAK,GAAG,SAAS,CAAC,EAAC,OAAO,SAAA,EAAE,SAAS,WAAA,EAAC,CAAC,CAAC;wBAE9C,IAAI,MAAM,CAAC,KAAK,EAAE;4BACd,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;yBACzE;wBAED,sCAAsC;wBACtC,IAAI,iBAAiB,EAAE;4BACnB,IAAI,OAAO,CAAC,GAAG,EAAE;gCACb,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;6BAC7B;iCAAM;gCACH,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;6BACzB;yBACJ;wBAEK,YAAY,GAAG,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAC3B,KAAA,YAAY,CAAA;iCAAZ,wBAAY;wBAAK,qBAAM,YAAY,CAAC,OAAO,CAAC,EAAA;;wBAA5B,KAAA,CAAC,SAA2B,CAAC,CAAA;;;wBAA7D,YAAY,GAAG,IAA+C,IAAI,EAAE;wBAE1E,IAAI,MAAM,CAAC,KAAK,EAAE;4BACd,OAAO,CAAC,GAAG,CAAC,8CAA8C,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;yBACjF;wBAEK,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;wBAE/B,sBAAO;gCACH,YAAY,cAAA;gCACZ,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAI,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK;6BAC7E,EAAC;;;;KACL,CAAC;IAEF,IAAM,mBAAmB,GACrB,UAAqB,QAA4B;QACjD,OAAA,UACI,OAA8B;;;;wBAE9B,2CAA2C;wBAC3C,IAAI,UAAU,IAAI,OAAO,EAAE;4BACvB,sBAAO,QAAQ,IAAI,QAAQ,CAAC,OAAc,CAAC,EAAC;yBAC/C;wBACM,qBAAM,SAAS,CAAC,EAAC,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,iBAAiB,EAAE,IAAI,EAAC,CAAC,EAAA;4BAApE,sBAAO,SAA6D,EAAC;;;aACxE;IARD,CAQC,CAAC;IAEN,IAAM,kBAAkB,GACpB,UAAqB,QAA2B;QAChD,OAAA,UAAO,OAAmB;;;;4BACe,qBAAM,SAAS,CAAC,EAAC,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,iBAAiB,EAAE,IAAI,EAAC,CAAC,EAAA;;wBAA5F,KAA+B,SAA6D,EAA3F,YAAY,kBAAA,EAAE,YAAY,kBAAA;wBACjC,4CACO,YAAY,KACf,YAAY,cAAA,KACd;;;aACL;IAND,CAMC,CAAC;IAEN,IAAM,cAAc,GAChB,UAAqB,QAAsC;QAC3D,OAAA,UAAM,OAAO;;;;4BAC4B,qBAAM,SAAS,CAAC,EAAC,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAC,CAAC,EAAA;;wBAAnE,KAA+B,SAAoC,EAAlE,YAAY,kBAAA,EAAE,YAAY,kBAAA;wBACjC,sBAAO,sBACA,YAAY,KACf,KAAK,wBACE,YAAY,CAAC,KAAK,KACrB,YAAY,cAAA,MAEZ,EAAC;;;aACZ;IATD,CASC,CAAC;IAEN,IAAM,kBAAkB,GACpB,UAAqB,QAA0C;QAC/D,OAAA,UAAM,OAAO;;wBACT,qBAAM,cAAc,CAAC,QAAe,CAAC,CAAC,OAAO,CAAC,EAAA;wBAA9C,sBAAA,SAA8C,EAAA;;iBAAA;IADlD,CACkD,CAAC,CAAC,4BAA4B;IAEpF,IAAM,OAAO,GAAG,UAAC,KAAQ,EAAE,KAAU;QACjC,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;QACD,KAAK,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,oBAAoB,CAAI,KAAK,EAAE,MAAM,CAAC;SAC3C,CAAC,CAAC;IACd,CAAC,CAAC;IAEF,IAAM,mBAAmB,GAAG,UAAC,KAAQ,EAAE,SAAc,EAAE,QAAa,EAAE,SAAc,EAAE,SAAc;;QAChG,IAAI,QAAQ,EAAE;YACV,uHAAuH;YACvH,uHAAuH;YACvH,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC1B,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SAC5B;aAAM,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,EAAE;YAC5C,kHAAkH;YAClH,8FAA8F;YAC9F,oHAAoH;YACpH,kIAAkI;YAClI,OAAO,CAAC,KAAK,EAAE,MAAA,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,SAAS,mCAAI,SAAS,CAAC,CAAC;SACvD;IACL,CAAC,CAAC;IAEF,IAAM,gBAAgB,GAAG,UAAC,KAAQ,EAAE,SAAc,EAAE,QAAa,EAAE,SAAc,EAAE,SAAc;QACtF,IAAA,MAAM,GAAI,SAAS,EAAE,OAAf,CAAgB;QAC7B,IAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAEnC;;;WAGG;QACH,IAAM,sBAAsB,GAAG;YAC3B,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QACjC,CAAC,CAAC;QAEF,IAAM,yBAAyB,GAAG;YAC9B,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;QAClC,CAAC,CAAC;QAEF,SAAS,CAAC;YACN,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;YACvD;;;;;eAKG;YACH,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;YAE7D,OAAO;gBACH,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;gBACxD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;YAClE,CAAC,CAAC;QACN,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAEb,IAAM,2BAA2B,GAAG,OAAO,CAAC;YACxC;;;;eAIG;YACH,OAAO;gBACH,IAAI,aAAa,CAAC,OAAO,EAAE;oBACvB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;iBACzE;YACL,CAAC,CAAC;QACN,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAEvD,SAAS,CAAC;YACN;;;;;;;;;eASG;YACH,2BAA2B,EAAE,CAAC;QAClC,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,gDAAgD;IAChD,IAAM,eAAe,GAAG,UAAqB,aAAgB,EAAE,WAA+B;;QAA/B,4BAAA,EAAA,+BAA+B;QAC1F,+GAA+G;QAC/G,IAAM,KAAoD,aAAiC,EAAtE,SAAS,kBAAA,EAAE,YAAY,kBAAA,EAAK,KAAK,cAAhD,gCAAiD,CAAoC,CAAC;QAE5F,uBAAuB;QACvB,IAAM,QAAQ,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAC,CAAC,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,0CAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,2BAA2B;QAC3B,IAAM,SAAS,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAC,CAAC,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,0CAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,4BAA4B;QAC5B,IAAM,SAAS,GAAG,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,0CAAE,YAAY,mCAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAE1F,IAAI,MAAM,CAAC,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBACrD,SAAS,WAAA;gBACT,QAAQ,UAAA;gBACR,SAAS,WAAA;gBACT,SAAS,WAAA;aACZ,CAAC,CAAC;SACN;QAED,IAAM,KAAK,GAAG,OAAO,CAAI,cAAM,OAAA,SAAS,CAAI,EAAC,SAAS,WAAA,EAAC,CAAC,EAAzB,CAAyB,EAAE,EAAE,CAAC,CAAC;QAE9D,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAEnE,IAAI,WAAW,GAAQ,KAAK,CAAC;QAE7B,6FAA6F;QAC7F,oDAAoD;QACpD,IAAI,YAAY,IAAI,YAAY,CAAC,SAAS,EAAE;YACxC,WAAW,CAAC,SAAS,yBACd,YAAY,CAAC,SAAS,GACtB,KAAK,CAAC,SAAS,CACrB,CAAC;SACL;QAED,yGAAyG;QACzG,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,0CAAE,YAAY,EAAE;YAChC,WAAW,yBAAO,KAAK,KAAE,SAAS,eAAM,KAAK,CAAC,SAAS,IAAE,CAAC;YAC1D,OAAO,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC;SAC7C;QAED,6BAA6B;QAC7B,IAAI,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,0CAAE,YAAY,EAAE;YACtC,WAAW,CAAC,SAAS,yBAAO,WAAW,CAAC,SAAS,GAAK,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAC1F,OAAO,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC;SAC7C;QAED,OAAO,EAAC,KAAK,OAAA,EAAE,KAAK,wBAAM,YAAY,GAAK,WAAW,CAAC,EAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,IAAM,SAAS,GAAG,UAAC,SAAwC;QACvD,OAAO,CAAC,IAAI,CACR,uHAAuH,CAC1H,CAAC;QAEF,+EAA+E;QAC/E,IAAM,gBAAgB,GAAG,UAAC,KAAU;YAC1B,IAAA,KAAgC,eAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAAnF,KAAK,WAAA,EAAS,aAAa,WAAwD,CAAC;YAE3F,OAAO,CACH,oBAAC,QAAQ,IAAC,KAAK,EAAE,KAAK;gBAClB,oBAAC,SAAS,eAAK,aAAa,EAAI,CACzB,CACd,CAAC;QACN,CAAC,CAAC;QAEF,gBAAgB,CAAC,WAAW,GAAG,oBAAa,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,IAAI,WAAW,MAAG,CAAC;QAEtG,IAAI,iBAAiB,IAAI,SAAS,EAAE;YAChC,gBAAgB,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;SAChE;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO;QACH,kBAAkB,oBAAA;QAClB,cAAc,gBAAA;QACd,kBAAkB,oBAAA;QAClB,mBAAmB,qBAAA;QACnB,SAAS,WAAA;QACT,eAAe,iBAAA;KAClB,CAAC;AACN,CAAC,CAAC;AAEF,SAAS;AACT,8DAA8D;AAC9D,gBAAe,UAAkB,SAAuB,EAAE,MAAsB;IAAtB,uBAAA,EAAA,WAAsB;IAC5E,OAAO,CAAC,IAAI,CAAC,iHAAiH,CAAC,CAAC;IAChI,OAAO,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC,EAAC"}
\ No newline at end of file
diff --git a/node_modules/next-redux-wrapper/lib/index.d.ts b/node_modules/next-redux-wrapper/lib/index.d.ts
index 66c1548..181cf6d 100644
--- a/node_modules/next-redux-wrapper/lib/index.d.ts
+++ b/node_modules/next-redux-wrapper/lib/index.d.ts
@@ -1,6 +1,6 @@
/// <reference types="node" />
/// <reference types="react" />
-import App, { AppContext, AppInitialProps } from 'next/app';
+import App, { AppContext, AppInitialProps, AppProps } from 'next/app';
import { Store } from 'redux';
import { GetServerSideProps, GetServerSidePropsContext, GetStaticProps, GetStaticPropsContext, NextComponentType, NextPageContext } from 'next';
/**
@@ -34,9 +34,9 @@ export declare const createWrapper: <S extends Store<any, import("redux").AnyAct
displayName: string;
getInitialProps: any;
};
- useWrappedStore: ({ initialState: giapState, initialProps, ...props }: any, displayName?: string) => {
+ useWrappedStore: <P_4 extends AppProps<{}>>(incomingProps: P_4, displayName?: string) => {
store: S;
- props: any;
+ props: P_4;
};
};
declare const _default: <S extends Store<any, import("redux").AnyAction>>(makeStore: MakeStore<S>, config?: Config<S>) => (Component: any) => {
diff --git a/node_modules/next-redux-wrapper/lib/index.js b/node_modules/next-redux-wrapper/lib/index.js
index a04f165..38fca09 100644
--- a/node_modules/next-redux-wrapper/lib/index.js
+++ b/node_modules/next-redux-wrapper/lib/index.js
@@ -249,43 +249,68 @@ var createWrapper = function (makeStore, config) {
var useHybridHydrate = function (store, giapState, gspState, gsspState, gippState) {
var events = (0, router_1.useRouter)().events;
var shouldHydrate = (0, react_1.useRef)(true);
- // We should only hydrate when the router has changed routes
+ /**
+ * Moving this functions outside of the useEffect hook
+ * to avoid creating new function references on each render.
+ */
+ var handleRouteChangeStart = function () {
+ shouldHydrate.current = true;
+ };
+ var handleRouteChangeComplete = function () {
+ shouldHydrate.current = false;
+ };
(0, react_1.useEffect)(function () {
- var handleStart = function () {
- shouldHydrate.current = true;
- };
- events === null || events === void 0 ? void 0 : events.on('routeChangeStart', handleStart);
+ events === null || events === void 0 ? void 0 : events.on('routeChangeStart', handleRouteChangeStart);
+ /**
+ * Depending on whether the user is navigating to a new route or not.
+ * This can help avoid unnecessary hydration of components and potentially improve performance.
+ *
+ * @see https://nextjs.org/docs/api-reference/next/router#routerevents
+ */
+ events === null || events === void 0 ? void 0 : events.on('routeChangeComplete', handleRouteChangeComplete);
return function () {
- events === null || events === void 0 ? void 0 : events.off('routeChangeStart', handleStart);
+ events === null || events === void 0 ? void 0 : events.off('routeChangeStart', handleRouteChangeStart);
+ events === null || events === void 0 ? void 0 : events.off('routeChangeComplete', handleRouteChangeComplete);
};
}, [events]);
- // useMemo so that when we navigate client side, we always synchronously hydrate the state before the new page
- // components are mounted. This means we hydrate while the previous page components are still mounted.
- // You might think that might cause issues because the selectors on the previous page (still mounted) will suddenly
- // contain other data, and maybe even nested properties, causing null reference exceptions.
- // But that's not the case.
- // Hydrating in useMemo will not trigger a rerender of the still mounted page component. So if your selectors do have
- // some initial state values causing them to rerun after hydration, and you're accessing deeply nested values inside your
- // components, you still wouldn't get errors, because there's no rerender.
- // Instead, React will render the new page components straight away, which will have selectors with the correct data.
- (0, react_1.useMemo)(function () {
- if (shouldHydrate.current) {
- hydrateOrchestrator(store, giapState, gspState, gsspState, gippState);
- shouldHydrate.current = false;
- }
+ var memoizedHydrateOrchestrator = (0, react_1.useMemo)(function () {
+ /**
+ * we are returning a function that will be called when the component is unmounted.
+ * This function will check if the shouldHydrate.current flag is true, which means that the router has changed routes,
+ * and if it is true, it calls the hydrateOrchestrator function with the necessary states and data.
+ */
+ return function () {
+ if (shouldHydrate.current) {
+ hydrateOrchestrator(store, giapState, gspState, gsspState, gippState);
+ }
+ };
}, [store, giapState, gspState, gsspState, gippState]);
+ (0, react_1.useEffect)(function () {
+ /**
+ * This memoizedHydrateOrchestrator function is being created using the useMemo hook to ensure that the function
+ * is only created when any of the dependencies passed in the second argument to useMemo changes.
+ *
+ * This function checks if the shouldHydrate.current flag is true, which means that the router has changed routes,
+ * and if it is true, it calls the hydrateOrchestrator function with the necessary states and data.
+ *
+ * By memoizing this function, we can ensure that it is only created once and reused on subsequent renders,
+ * avoiding unnecessary function calls and potential performance issues.
+ */
+ memoizedHydrateOrchestrator();
+ }, [memoizedHydrateOrchestrator]);
};
// giapState stands for getInitialAppProps state
- var useWrappedStore = function (_a, displayName) {
- var _b, _c, _d, _e, _f, _g;
+ var useWrappedStore = function (incomingProps, displayName) {
+ var _a, _b, _c, _d, _e, _f;
if (displayName === void 0) { displayName = 'useWrappedStore'; }
- var giapState = _a.initialState, initialProps = _a.initialProps, props = __rest(_a, ["initialState", "initialProps"]);
+ // createWrapper adds WrapperProps to incomingProps, they are not present in P so type needs to be coerced here
+ var _g = incomingProps, giapState = _g.initialState, initialProps = _g.initialProps, props = __rest(_g, ["initialState", "initialProps"]);
// getStaticProps state
- var gspState = (props === null || props === void 0 ? void 0 : props.__N_SSG) ? (_b = props === null || props === void 0 ? void 0 : props.pageProps) === null || _b === void 0 ? void 0 : _b.initialState : null;
+ var gspState = (props === null || props === void 0 ? void 0 : props.__N_SSG) ? (_a = props === null || props === void 0 ? void 0 : props.pageProps) === null || _a === void 0 ? void 0 : _a.initialState : null;
// getServerSideProps state
- var gsspState = (props === null || props === void 0 ? void 0 : props.__N_SSP) ? (_c = props === null || props === void 0 ? void 0 : props.pageProps) === null || _c === void 0 ? void 0 : _c.initialState : null;
+ var gsspState = (props === null || props === void 0 ? void 0 : props.__N_SSP) ? (_b = props === null || props === void 0 ? void 0 : props.pageProps) === null || _b === void 0 ? void 0 : _b.initialState : null;
// getInitialPageProps state
- var gippState = !gspState && !gsspState ? (_e = (_d = props === null || props === void 0 ? void 0 : props.pageProps) === null || _d === void 0 ? void 0 : _d.initialState) !== null && _e !== void 0 ? _e : null : null;
+ var gippState = !gspState && !gsspState ? (_d = (_c = props === null || props === void 0 ? void 0 : props.pageProps) === null || _c === void 0 ? void 0 : _c.initialState) !== null && _d !== void 0 ? _d : null : null;
if (config.debug) {
console.log('4.', displayName, 'created new store with', {
giapState: giapState,
@@ -303,12 +328,12 @@ var createWrapper = function (makeStore, config) {
resultProps.pageProps = __assign(__assign({}, initialProps.pageProps), props.pageProps);
}
// just some cleanup to prevent passing it as props, we need to clone props to safely delete initialState
- if ((_f = props === null || props === void 0 ? void 0 : props.pageProps) === null || _f === void 0 ? void 0 : _f.initialState) {
+ if ((_e = props === null || props === void 0 ? void 0 : props.pageProps) === null || _e === void 0 ? void 0 : _e.initialState) {
resultProps = __assign(__assign({}, props), { pageProps: __assign({}, props.pageProps) });
delete resultProps.pageProps.initialState;
}
// unwrap getInitialPageProps
- if ((_g = resultProps === null || resultProps === void 0 ? void 0 : resultProps.pageProps) === null || _g === void 0 ? void 0 : _g.initialProps) {
+ if ((_f = resultProps === null || resultProps === void 0 ? void 0 : resultProps.pageProps) === null || _f === void 0 ? void 0 : _f.initialProps) {
resultProps.pageProps = __assign(__assign({}, resultProps.pageProps), resultProps.pageProps.initialProps);
delete resultProps.pageProps.initialProps;
}
diff --git a/node_modules/next-redux-wrapper/lib/index.js.map b/node_modules/next-redux-wrapper/lib/index.js.map
index b971f21..9f5626c 100644
--- a/node_modules/next-redux-wrapper/lib/index.js.map
+++ b/node_modules/next-redux-wrapper/lib/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAAwD;AACxD,2CAAqC;AAUrC,sCAAsC;AAEtC;;;;;;;;;;;;;;GAcG;AAEU,QAAA,OAAO,GAAG,gCAAgC,CAAC;AAExD,IAAM,WAAW,GAAG,cAAM,OAAA,OAAO,MAAM,KAAK,WAAW,EAA7B,CAA6B,CAAC;AAExD,IAAM,oBAAoB,GAAG,UAAkB,YAAiB,EAAE,EAAkC;QAAlC,qBAAgC,EAAE,KAAA,EAAjC,gBAAgB,sBAAA;IAC/E,OAAA,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY;AAAhE,CAAgE,CAAC;AAErE,IAAM,kBAAkB,GAAG,UAAkB,KAAU,EAAE,EAAgC;QAAhC,qBAA8B,EAAE,KAAA,EAA/B,cAAc,oBAAA;IACpE,OAAA,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;AAA9C,CAA8C,CAAC;AASnD,IAAI,iBAAsB,CAAC;AAE3B,IAAM,SAAS,GAAG,UAAkB,EAA8C;;QAA7C,SAAS,eAAA,EAAE,eAAY,EAAZ,OAAO,mBAAG,EAAE,KAAA;IACxD,IAAM,WAAW,GAAG,cAAM,OAAA,SAAS,CAAC,OAAO,CAAC,EAAlB,CAAkB,CAAC;IAE7C,IAAI,WAAW,EAAE,EAAE;QACf,IAAM,GAAG,GAAQ,CAAA,MAAC,OAA2B,0CAAE,GAAG,MAAI,MAAA,MAAC,OAAsB,0CAAE,GAAG,0CAAE,GAAG,CAAA,CAAC;QACxF,IAAI,GAAG,EAAE;YACL,oEAAoE;YACpE,4FAA4F;YAC5F,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE;gBAC9B,GAAG,CAAC,uBAAuB,GAAG,WAAW,EAAE,CAAC,CAAC,mBAAmB;aACnE;YACD,OAAO,GAAG,CAAC,uBAAuB,CAAC;SACtC;QACD,OAAO,WAAW,EAAE,CAAC;KACxB;IAED,2CAA2C;IAC3C,IAAI,CAAC,iBAAiB,EAAE;QACpB,iBAAiB,GAAG,WAAW,EAAE,CAAC;KACrC;IAED,OAAO,iBAAiB,CAAC;AAC7B,CAAC,CAAC;AAEK,IAAM,aAAa,GAAG,UAAkB,SAAuB,EAAE,MAAsB;IAAtB,uBAAA,EAAA,WAAsB;IAC1F,IAAM,SAAS,GAAG,UAAO,EAQxB;YAPG,QAAQ,cAAA,EACR,OAAO,aAAA,EACP,yBAAyB,EAAzB,iBAAiB,mBAAG,KAAK,KAAA;;;;;;wBAMnB,KAAK,GAAG,SAAS,CAAC,EAAC,OAAO,SAAA,EAAE,SAAS,WAAA,EAAC,CAAC,CAAC;wBAE9C,IAAI,MAAM,CAAC,KAAK,EAAE;4BACd,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;yBACzE;wBAED,sCAAsC;wBACtC,IAAI,iBAAiB,EAAE;4BACnB,IAAI,OAAO,CAAC,GAAG,EAAE;gCACb,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;6BAC7B;iCAAM;gCACH,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;6BACzB;yBACJ;wBAEK,YAAY,GAAG,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAC3B,KAAA,YAAY,CAAA;iCAAZ,wBAAY;wBAAK,qBAAM,YAAY,CAAC,OAAO,CAAC,EAAA;;wBAA5B,KAAA,CAAC,SAA2B,CAAC,CAAA;;;wBAA7D,YAAY,GAAG,IAA+C,IAAI,EAAE;wBAE1E,IAAI,MAAM,CAAC,KAAK,EAAE;4BACd,OAAO,CAAC,GAAG,CAAC,8CAA8C,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;yBACjF;wBAEK,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;wBAE/B,sBAAO;gCACH,YAAY,cAAA;gCACZ,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAI,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK;6BAC7E,EAAC;;;;KACL,CAAC;IAEF,IAAM,mBAAmB,GACrB,UAAqB,QAA4B;QACjD,OAAA,UACI,OAA8B;;;;wBAE9B,2CAA2C;wBAC3C,IAAI,UAAU,IAAI,OAAO,EAAE;4BACvB,sBAAO,QAAQ,IAAI,QAAQ,CAAC,OAAc,CAAC,EAAC;yBAC/C;wBACM,qBAAM,SAAS,CAAC,EAAC,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,iBAAiB,EAAE,IAAI,EAAC,CAAC,EAAA;4BAApE,sBAAO,SAA6D,EAAC;;;aACxE;IARD,CAQC,CAAC;IAEN,IAAM,kBAAkB,GACpB,UAAqB,QAA2B;QAChD,OAAA,UAAO,OAAmB;;;;4BACe,qBAAM,SAAS,CAAC,EAAC,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,iBAAiB,EAAE,IAAI,EAAC,CAAC,EAAA;;wBAA5F,KAA+B,SAA6D,EAA3F,YAAY,kBAAA,EAAE,YAAY,kBAAA;wBACjC,4CACO,YAAY,KACf,YAAY,cAAA,KACd;;;aACL;IAND,CAMC,CAAC;IAEN,IAAM,cAAc,GAChB,UAAqB,QAAsC;QAC3D,OAAA,UAAM,OAAO;;;;4BAC4B,qBAAM,SAAS,CAAC,EAAC,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAC,CAAC,EAAA;;wBAAnE,KAA+B,SAAoC,EAAlE,YAAY,kBAAA,EAAE,YAAY,kBAAA;wBACjC,sBAAO,sBACA,YAAY,KACf,KAAK,wBACE,YAAY,CAAC,KAAK,KACrB,YAAY,cAAA,MAEZ,EAAC;;;aACZ;IATD,CASC,CAAC;IAEN,IAAM,kBAAkB,GACpB,UAAqB,QAA0C;QAC/D,OAAA,UAAM,OAAO;;wBACT,qBAAM,cAAc,CAAC,QAAe,CAAC,CAAC,OAAO,CAAC,EAAA;wBAA9C,sBAAA,SAA8C,EAAA;;iBAAA;IADlD,CACkD,CAAC,CAAC,4BAA4B;IAEpF,IAAM,OAAO,GAAG,UAAC,KAAQ,EAAE,KAAU;QACjC,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;QACD,KAAK,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,eAAO;YACb,OAAO,EAAE,oBAAoB,CAAI,KAAK,EAAE,MAAM,CAAC;SAC3C,CAAC,CAAC;IACd,CAAC,CAAC;IAEF,IAAM,mBAAmB,GAAG,UAAC,KAAQ,EAAE,SAAc,EAAE,QAAa,EAAE,SAAc,EAAE,SAAc;;QAChG,IAAI,QAAQ,EAAE;YACV,uHAAuH;YACvH,uHAAuH;YACvH,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC1B,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SAC5B;aAAM,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,EAAE;YAC5C,kHAAkH;YAClH,8FAA8F;YAC9F,oHAAoH;YACpH,kIAAkI;YAClI,OAAO,CAAC,KAAK,EAAE,MAAA,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,SAAS,mCAAI,SAAS,CAAC,CAAC;SACvD;IACL,CAAC,CAAC;IAEF,IAAM,gBAAgB,GAAG,UAAC,KAAQ,EAAE,SAAc,EAAE,QAAa,EAAE,SAAc,EAAE,SAAc;QACtF,IAAA,MAAM,GAAI,IAAA,kBAAS,GAAE,OAAf,CAAgB;QAC7B,IAAM,aAAa,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;QAEnC;;;WAGG;QACH,IAAM,sBAAsB,GAAG;YAC3B,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QACjC,CAAC,CAAC;QAEF,IAAM,yBAAyB,GAAG;YAC9B,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;QAClC,CAAC,CAAC;QAEF,IAAA,iBAAS,EAAC;YACN,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;YACvD;;;;;eAKG;YACH,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;YAE7D,OAAO;gBACH,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;gBACxD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;YAClE,CAAC,CAAC;QACN,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAEb,IAAM,2BAA2B,GAAG,IAAA,eAAO,EAAC;YACxC;;;;eAIG;YACH,OAAO;gBACH,IAAI,aAAa,CAAC,OAAO,EAAE;oBACvB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;iBACzE;YACL,CAAC,CAAC;QACN,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAEvD,IAAA,iBAAS,EAAC;YACN;;;;;;;;;eASG;YACH,2BAA2B,EAAE,CAAC;QAClC,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,gDAAgD;IAChD,IAAM,eAAe,GAAG,UAAqB,aAAgB,EAAE,WAA+B;;QAA/B,4BAAA,EAAA,+BAA+B;QAC1F,+GAA+G;QAC/G,IAAM,KAAoD,aAAiC,EAAtE,SAAS,kBAAA,EAAE,YAAY,kBAAA,EAAK,KAAK,cAAhD,gCAAiD,CAAoC,CAAC;QAE5F,uBAAuB;QACvB,IAAM,QAAQ,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAC,CAAC,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,0CAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,2BAA2B;QAC3B,IAAM,SAAS,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAC,CAAC,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,0CAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,4BAA4B;QAC5B,IAAM,SAAS,GAAG,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,0CAAE,YAAY,mCAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAE1F,IAAI,MAAM,CAAC,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBACrD,SAAS,WAAA;gBACT,QAAQ,UAAA;gBACR,SAAS,WAAA;gBACT,SAAS,WAAA;aACZ,CAAC,CAAC;SACN;QAED,IAAM,KAAK,GAAG,IAAA,eAAO,EAAI,cAAM,OAAA,SAAS,CAAI,EAAC,SAAS,WAAA,EAAC,CAAC,EAAzB,CAAyB,EAAE,EAAE,CAAC,CAAC;QAE9D,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAEnE,IAAI,WAAW,GAAQ,KAAK,CAAC;QAE7B,6FAA6F;QAC7F,oDAAoD;QACpD,IAAI,YAAY,IAAI,YAAY,CAAC,SAAS,EAAE;YACxC,WAAW,CAAC,SAAS,yBACd,YAAY,CAAC,SAAS,GACtB,KAAK,CAAC,SAAS,CACrB,CAAC;SACL;QAED,yGAAyG;QACzG,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,0CAAE,YAAY,EAAE;YAChC,WAAW,yBAAO,KAAK,KAAE,SAAS,eAAM,KAAK,CAAC,SAAS,IAAE,CAAC;YAC1D,OAAO,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC;SAC7C;QAED,6BAA6B;QAC7B,IAAI,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,0CAAE,YAAY,EAAE;YACtC,WAAW,CAAC,SAAS,yBAAO,WAAW,CAAC,SAAS,GAAK,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAC1F,OAAO,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC;SAC7C;QAED,OAAO,EAAC,KAAK,OAAA,EAAE,KAAK,wBAAM,YAAY,GAAK,WAAW,CAAC,EAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,IAAM,SAAS,GAAG,UAAC,SAAwC;QACvD,OAAO,CAAC,IAAI,CACR,uHAAuH,CAC1H,CAAC;QAEF,+EAA+E;QAC/E,IAAM,gBAAgB,GAAG,UAAC,KAAU;YAC1B,IAAA,KAAgC,eAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAAnF,KAAK,WAAA,EAAS,aAAa,WAAwD,CAAC;YAE3F,OAAO,CACH,8BAAC,sBAAQ,IAAC,KAAK,EAAE,KAAK;gBAClB,8BAAC,SAAS,eAAK,aAAa,EAAI,CACzB,CACd,CAAC;QACN,CAAC,CAAC;QAEF,gBAAgB,CAAC,WAAW,GAAG,oBAAa,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,IAAI,WAAW,MAAG,CAAC;QAEtG,IAAI,iBAAiB,IAAI,SAAS,EAAE;YAChC,gBAAgB,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;SAChE;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO;QACH,kBAAkB,oBAAA;QAClB,cAAc,gBAAA;QACd,kBAAkB,oBAAA;QAClB,mBAAmB,qBAAA;QACnB,SAAS,WAAA;QACT,eAAe,iBAAA;KAClB,CAAC;AACN,CAAC,CAAC;AAzPW,QAAA,aAAa,iBAyPxB;AAEF,SAAS;AACT,8DAA8D;AAC9D,mBAAe,UAAkB,SAAuB,EAAE,MAAsB;IAAtB,uBAAA,EAAA,WAAsB;IAC5E,OAAO,CAAC,IAAI,CAAC,iHAAiH,CAAC,CAAC;IAChI,OAAO,IAAA,qBAAa,EAAC,SAAS,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC,EAAC"}
\ No newline at end of file
diff --git a/node_modules/next-redux-wrapper/src/index.tsx b/node_modules/next-redux-wrapper/src/index.tsx
index 1adba86..d29912a 100644
--- a/node_modules/next-redux-wrapper/src/index.tsx
+++ b/node_modules/next-redux-wrapper/src/index.tsx
@@ -1,4 +1,4 @@
-import App, {AppContext, AppInitialProps} from 'next/app';
+import App, {AppContext, AppInitialProps, AppProps} from 'next/app';
import React, {useEffect, useMemo, useRef} from 'react';
import {Provider} from 'react-redux';
import {Store} from 'redux';
@@ -180,41 +180,67 @@ export const createWrapper = <S extends Store>(makeStore: MakeStore<S>, config:
const {events} = useRouter();
const shouldHydrate = useRef(true);
- // We should only hydrate when the router has changed routes
- useEffect(() => {
- const handleStart = () => {
- shouldHydrate.current = true;
- };
+ /**
+ * Moving this functions outside of the useEffect hook
+ * to avoid creating new function references on each render.
+ */
+ const handleRouteChangeStart = () => {
+ shouldHydrate.current = true;
+ };
+
+ const handleRouteChangeComplete = () => {
+ shouldHydrate.current = false;
+ };
- events?.on('routeChangeStart', handleStart);
+ useEffect(() => {
+ events?.on('routeChangeStart', handleRouteChangeStart);
+ /**
+ * Depending on whether the user is navigating to a new route or not.
+ * This can help avoid unnecessary hydration of components and potentially improve performance.
+ *
+ * @see https://nextjs.org/docs/api-reference/next/router#routerevents
+ */
+ events?.on('routeChangeComplete', handleRouteChangeComplete);
return () => {
- events?.off('routeChangeStart', handleStart);
+ events?.off('routeChangeStart', handleRouteChangeStart);
+ events?.off('routeChangeComplete', handleRouteChangeComplete);
};
}, [events]);
- // useMemo so that when we navigate client side, we always synchronously hydrate the state before the new page
- // components are mounted. This means we hydrate while the previous page components are still mounted.
- // You might think that might cause issues because the selectors on the previous page (still mounted) will suddenly
- // contain other data, and maybe even nested properties, causing null reference exceptions.
- // But that's not the case.
- // Hydrating in useMemo will not trigger a rerender of the still mounted page component. So if your selectors do have
- // some initial state values causing them to rerun after hydration, and you're accessing deeply nested values inside your
- // components, you still wouldn't get errors, because there's no rerender.
- // Instead, React will render the new page components straight away, which will have selectors with the correct data.
- useMemo(() => {
- if (shouldHydrate.current) {
- hydrateOrchestrator(store, giapState, gspState, gsspState, gippState);
- shouldHydrate.current = false;
- }
+ const memoizedHydrateOrchestrator = useMemo(() => {
+ /**
+ * we are returning a function that will be called when the component is unmounted.
+ * This function will check if the shouldHydrate.current flag is true, which means that the router has changed routes,
+ * and if it is true, it calls the hydrateOrchestrator function with the necessary states and data.
+ */
+ return () => {
+ if (shouldHydrate.current) {
+ hydrateOrchestrator(store, giapState, gspState, gsspState, gippState);
+ }
+ };
}, [store, giapState, gspState, gsspState, gippState]);
+
+ useEffect(() => {
+ /**
+ * This memoizedHydrateOrchestrator function is being created using the useMemo hook to ensure that the function
+ * is only created when any of the dependencies passed in the second argument to useMemo changes.
+ *
+ * This function checks if the shouldHydrate.current flag is true, which means that the router has changed routes,
+ * and if it is true, it calls the hydrateOrchestrator function with the necessary states and data.
+ *
+ * By memoizing this function, we can ensure that it is only created once and reused on subsequent renders,
+ * avoiding unnecessary function calls and potential performance issues.
+ */
+ memoizedHydrateOrchestrator();
+ }, [memoizedHydrateOrchestrator]);
};
// giapState stands for getInitialAppProps state
- const useWrappedStore = (
- {initialState: giapState, initialProps, ...props}: any,
- displayName = 'useWrappedStore',
- ): {store: S; props: any} => {
+ const useWrappedStore = <P extends AppProps>(incomingProps: P, displayName = 'useWrappedStore'): {store: S; props: P} => {
+ // createWrapper adds WrapperProps to incomingProps, they are not present in P so type needs to be coerced here
+ const {initialState: giapState, initialProps, ...props} = incomingProps as P & WrapperProps;
+
// getStaticProps state
const gspState = props?.__N_SSG ? props?.pageProps?.initialState : null;
// getServerSideProps state
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment