UNPKG

react-day-picker

Version:

Customizable Date Picker for React

25 lines (20 loc) 799 B
import React, { useState } from 'react'; export type DispatchStateAction<T> = React.Dispatch<React.SetStateAction<T>>; /** * Helper hook for using controlled/uncontrolled values from a component props. * * When the value is not controlled, pass `undefined` as `controlledValue` and * use the returned setter to update it. * * When the value is controlled, pass the controlled value as second * argument, which will be always returned as `value`. */ export function useControlledValue<T>( defaultValue: T, controlledValue: T | undefined ): [T, DispatchStateAction<T>] { const [uncontrolledValue, setValue] = useState(defaultValue); const value = controlledValue === undefined ? uncontrolledValue : controlledValue; return [value, setValue] as [T, DispatchStateAction<T>]; }