forked from ddrilling/asb_cloud_front
добавлен хук usePartialProps для работы с опциональными пропсами объектами с возможностью присвоения значений по-умолчанию в глубь
This commit is contained in:
parent
f876e9a51e
commit
a700d22b4d
@ -2,3 +2,5 @@ export * from './cachedFetch'
|
|||||||
|
|
||||||
export * from './functionalValue'
|
export * from './functionalValue'
|
||||||
export type { FunctionalValue } from './functionalValue'
|
export type { FunctionalValue } from './functionalValue'
|
||||||
|
|
||||||
|
export * from './usePartialProps'
|
||||||
|
12
src/utils/hooks/usePartialProps.ts
Normal file
12
src/utils/hooks/usePartialProps.ts
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
import { useMemo } from "react"
|
||||||
|
|
||||||
|
export const usePartialProps = <T,>(prop: Partial<T> | null | undefined, defaultValue: T): T => {
|
||||||
|
const result: T = useMemo(() => {
|
||||||
|
if (!prop || typeof prop !== 'object') return defaultValue
|
||||||
|
return { ...defaultValue, ...prop }
|
||||||
|
}, [prop, defaultValue])
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
export default usePartialProps
|
Loading…
Reference in New Issue
Block a user