From 0e4b317322f667ca94b2f41005239843b24f02e9 Mon Sep 17 00:00:00 2001 From: Marshall Polaris Date: Tue, 9 Aug 2022 23:53:27 -0700 Subject: [PATCH] Make `useStateCheckEquality` more flexible --- web/hooks/use-state-check-equality.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/web/hooks/use-state-check-equality.ts b/web/hooks/use-state-check-equality.ts index d8dc88dd..e5d97f56 100644 --- a/web/hooks/use-state-check-equality.ts +++ b/web/hooks/use-state-check-equality.ts @@ -1,5 +1,5 @@ import { isEqual } from 'lodash' -import { useMemo, useRef, useState } from 'react' +import { SetStateAction, useMemo, useRef, useState } from 'react' export const useStateCheckEquality = (initialState: T) => { const [state, setState] = useState(initialState) @@ -8,8 +8,9 @@ export const useStateCheckEquality = (initialState: T) => { stateRef.current = state const checkSetState = useMemo( - () => (newState: T) => { + () => (next: SetStateAction) => { const state = stateRef.current + const newState = next instanceof Function ? next(state) : next if (!isEqual(state, newState)) { setState(newState) }