categories,18popup,clear.TextEditorSwap,GameCardHover #177
@ -1,4 +1,4 @@
|
|||||||
import React from 'react'
|
import React, { useMemo } from 'react'
|
||||||
import {
|
import {
|
||||||
getLocalStorageItem,
|
getLocalStorageItem,
|
||||||
removeLocalStorageItem,
|
removeLocalStorageItem,
|
||||||
@ -11,7 +11,11 @@ const useLocalStorageSubscribe = (callback: () => void) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function mergeWithInitialValue<T>(storedValue: T, initialValue: T): T {
|
function mergeWithInitialValue<T>(storedValue: T, initialValue: T): T {
|
||||||
if (typeof storedValue === 'object' && storedValue !== null) {
|
if (
|
||||||
|
!Array.isArray(storedValue) &&
|
||||||
|
typeof storedValue === 'object' &&
|
||||||
|
storedValue !== null
|
||||||
|
) {
|
||||||
return { ...initialValue, ...storedValue }
|
return { ...initialValue, ...storedValue }
|
||||||
}
|
}
|
||||||
return storedValue
|
return storedValue
|
||||||
@ -64,5 +68,7 @@ export function useLocalStorage<T>(
|
|||||||
}
|
}
|
||||||
}, [key, initialValue])
|
}, [key, initialValue])
|
||||||
|
|
||||||
return [JSON.parse(data) as T, setState]
|
const memoized = useMemo(() => JSON.parse(data) as T, [data])
|
||||||
|
|
||||||
|
return [memoized, setState]
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import React from 'react'
|
import React, { useMemo } from 'react'
|
||||||
import {
|
import {
|
||||||
getSessionStorageItem,
|
getSessionStorageItem,
|
||||||
removeSessionStorageItem,
|
removeSessionStorageItem,
|
||||||
@ -11,7 +11,11 @@ const useSessionStorageSubscribe = (callback: () => void) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function mergeWithInitialValue<T>(storedValue: T, initialValue: T): T {
|
function mergeWithInitialValue<T>(storedValue: T, initialValue: T): T {
|
||||||
if (typeof storedValue === 'object' && storedValue !== null) {
|
if (
|
||||||
|
!Array.isArray(storedValue) &&
|
||||||
|
typeof storedValue === 'object' &&
|
||||||
|
storedValue !== null
|
||||||
|
) {
|
||||||
return { ...initialValue, ...storedValue }
|
return { ...initialValue, ...storedValue }
|
||||||
}
|
}
|
||||||
return storedValue
|
return storedValue
|
||||||
@ -67,5 +71,7 @@ export function useSessionStorage<T>(
|
|||||||
}
|
}
|
||||||
}, [key, initialValue])
|
}, [key, initialValue])
|
||||||
|
|
||||||
return [JSON.parse(data) as T, setState]
|
const memoized = useMemo(() => JSON.parse(data) as T, [data])
|
||||||
|
|
||||||
|
return [memoized, setState]
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user