feat: auth race condition & optimize ApolloFactory & too many pageview (#602)

This commit is contained in:
Jérémy M
2023-07-11 19:50:25 +02:00
committed by GitHub
parent 55576cb638
commit 718ad721cf
12 changed files with 69 additions and 44 deletions

View File

@ -0,0 +1,13 @@
import { useRef } from 'react';
export function useFirstMountState(): boolean {
const isFirst = useRef(true);
if (isFirst.current) {
isFirst.current = false;
return true;
}
return isFirst.current;
}

View File

@ -0,0 +1,11 @@
import { useEffect, useRef } from 'react';
export default function usePrevious<T>(state: T): T | undefined {
const ref = useRef<T>();
useEffect(() => {
ref.current = state;
});
return ref.current;
}

View File

@ -0,0 +1,14 @@
import { DependencyList, EffectCallback, useEffect } from 'react';
import { useFirstMountState } from './useFirstMountState';
export function useUpdateEffect(effect: EffectCallback, deps?: DependencyList) {
const isFirst = useFirstMountState();
useEffect(() => {
if (!isFirst) {
return effect();
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, deps);
}