ph-material-pickers
Version:
React components, that implements material design pickers for material-ui v4
32 lines (31 loc) • 1.38 kB
TypeScript
import { WrapperVariant } from '../../wrappers/Wrapper';
import { BasePickerProps } from '../../typings/BasePicker';
import { MuiPickersAdapter } from './useUtils';
export interface PickerStateValueManager<TInput, TDateValue> {
parseInput: (utils: MuiPickersAdapter, props: BasePickerProps<TInput, TDateValue>) => TDateValue;
emptyValue: TDateValue;
areValuesEqual: (utils: MuiPickersAdapter, valueLeft: TDateValue, valueRight: TDateValue) => boolean;
}
export declare type PickerSelectionState = 'partial' | 'shallow' | 'finish';
export declare function usePickerState<TInput, TDateValue>(props: BasePickerProps<TInput, TDateValue>, valueManager: PickerStateValueManager<TInput, TDateValue>): {
pickerProps: {
date: TDateValue;
isMobileKeyboardViewOpen: boolean;
toggleMobileKeyboardView: () => void;
onDateChange: (newDate: TDateValue, wrapperVariant: WrapperVariant, selectionState?: PickerSelectionState) => void;
};
inputProps: {
onChange: (date: TDateValue, keyboardInputValue?: string | undefined) => void;
inputFormat: string;
open: boolean;
rawValue: TInput;
openPicker: () => false | void;
};
wrapperProps: {
open: boolean;
onClear: () => void;
onAccept: () => void;
onDismiss: () => void;
onSetToday: () => void;
};
};