# DateField A component that enables users to open a dialog and select a date through a text input. ### Date input ```tsx import React, {useState} from 'react'; import { DateField, Screen, ScrollView, Navigator, Text, reactExtension, } from '@shopify/ui-extensions-react/point-of-sale'; const SmartGridModal = () => { const [date, setDate] = useState(''); return ( <Navigator> <Screen name="DateField" title="DateField Example"> <ScrollView> <DateField label="Date" value={date} onChange={setDate} action={{ label: 'Clear', onPress: () => setDate(''), }} /> <Text>Selected Date: {date}</Text> </ScrollView> </Screen> </Navigator> ); }; export default reactExtension('pos.home.modal.render', () => ( <SmartGridModal /> )); ``` ```ts import { Navigator, Screen, ScrollView, Text, DateField, extension, } from '@shopify/ui-extensions/point-of-sale'; export default extension('pos.home.modal.render', (root, api) => { const clearHandler = () => { dateField.updateProps({value: ''}); textBox.replaceChildren(''); }; const dateField = root.createComponent(DateField, { label: 'Select Date', value: '', action: {label: 'Clear', onPress: clearHandler}, }); const textBox = root.createComponent(Text); const onChangeHandler = (newValue: string) => { dateField.updateProps({value: newValue}); const textContent = `Selected Date: ${newValue}`; textBox.replaceChildren(textContent); }; dateField.updateProps({onChange: onChangeHandler}); const scrollView = root.createComponent(ScrollView); scrollView.append(dateField); scrollView.append(textBox); const screen = root.createComponent(Screen, { name: 'DateField', title: 'Date Field Example', }); screen.append(scrollView); const navigator = root.createComponent(Navigator); navigator.append(screen); root.append(navigator); }); ``` ## DateField ### DateFieldProps ### action A button under the text field to provide extra functionality. ### disabled Whether the field can be modified. ### error Indicates an error to the user. The field is given specific stylistic treatment to communicate problems that have to be resolved immediately. ### helpText The label under the text field which provides guidance or instructions that assist users. ### label The content to use as the field label. ### onBlur The callback when focus is removed. ### onChange The callback when the user has finished editing a field. ### onFocus The callback when input is focused. ### value The current value for the field. Defaults to now. You should update this value in response to the `onChange` callback. ### InputAction ### disabled Whether the button can be pressed. ### label The text displayed in the button. ### onPress A callback to be performed.