53 lines
1.8 KiB
JavaScript
53 lines
1.8 KiB
JavaScript
import { usePickerValue } from './usePickerValue';
|
|
import { usePickerViews } from './usePickerViews';
|
|
import { usePickerLayoutProps } from './usePickerLayoutProps';
|
|
import { buildWarning } from '../../utils/warning';
|
|
const warnRenderInputIsDefined = buildWarning(['The `renderInput` prop has been removed in version 6.0 of the Date and Time Pickers.', 'You can replace it with the `textField` component slot in most cases.', 'For more information, please have a look at the migration guide (https://mui.com/x/migration/migration-pickers-v5/#input-renderer-required-in-v5).']);
|
|
export const usePicker = ({
|
|
props,
|
|
valueManager,
|
|
valueType,
|
|
wrapperVariant,
|
|
inputRef,
|
|
additionalViewProps,
|
|
validator,
|
|
autoFocusView
|
|
}) => {
|
|
if (process.env.NODE_ENV !== 'production') {
|
|
if (props.renderInput != null) {
|
|
warnRenderInputIsDefined();
|
|
}
|
|
}
|
|
const pickerValueResponse = usePickerValue({
|
|
props,
|
|
valueManager,
|
|
valueType,
|
|
wrapperVariant,
|
|
validator
|
|
});
|
|
const pickerViewsResponse = usePickerViews({
|
|
props,
|
|
inputRef,
|
|
additionalViewProps,
|
|
autoFocusView,
|
|
propsFromPickerValue: pickerValueResponse.viewProps
|
|
});
|
|
const pickerLayoutResponse = usePickerLayoutProps({
|
|
props,
|
|
wrapperVariant,
|
|
propsFromPickerValue: pickerValueResponse.layoutProps,
|
|
propsFromPickerViews: pickerViewsResponse.layoutProps
|
|
});
|
|
return {
|
|
// Picker value
|
|
open: pickerValueResponse.open,
|
|
actions: pickerValueResponse.actions,
|
|
fieldProps: pickerValueResponse.fieldProps,
|
|
// Picker views
|
|
renderCurrentView: pickerViewsResponse.renderCurrentView,
|
|
hasUIView: pickerViewsResponse.hasUIView,
|
|
shouldRestoreFocus: pickerViewsResponse.shouldRestoreFocus,
|
|
// Picker layout
|
|
layoutProps: pickerLayoutResponse.layoutProps
|
|
};
|
|
}; |