Commit ac698282 authored by Max Alekseenko's avatar Max Alekseenko

memoize context value

parent 5012c824
import { useRouter } from 'next/router'; import { useRouter } from 'next/router';
import React, { createContext, useContext, useEffect } from 'react'; import React, { createContext, useContext, useEffect, useState, useMemo } from 'react';
type Props = { type Props = {
children: React.ReactNode; children: React.ReactNode;
...@@ -17,7 +17,7 @@ const MarketplaceContext = createContext<TMarketplaceContext>({ ...@@ -17,7 +17,7 @@ const MarketplaceContext = createContext<TMarketplaceContext>({
export function MarketplaceContextProvider({ children }: Props) { export function MarketplaceContextProvider({ children }: Props) {
const router = useRouter(); const router = useRouter();
const [ isAutoConnectDisabled, setIsAutoConnectDisabled ] = React.useState(false); const [ isAutoConnectDisabled, setIsAutoConnectDisabled ] = useState(false);
useEffect(() => { useEffect(() => {
const handleRouteChange = () => { const handleRouteChange = () => {
...@@ -31,8 +31,13 @@ export function MarketplaceContextProvider({ children }: Props) { ...@@ -31,8 +31,13 @@ export function MarketplaceContextProvider({ children }: Props) {
}; };
}, [ router.events ]); }, [ router.events ]);
const value = useMemo(() => ({
isAutoConnectDisabled,
setIsAutoConnectDisabled,
}), [ isAutoConnectDisabled, setIsAutoConnectDisabled ]);
return ( return (
<MarketplaceContext.Provider value={{ isAutoConnectDisabled, setIsAutoConnectDisabled }}> <MarketplaceContext.Provider value={ value }>
{ children } { children }
</MarketplaceContext.Provider> </MarketplaceContext.Provider>
); );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment