# TimeField

A component that enables users to open a dialog and select a time through a text input.
### Time input

```tsx
import React, {useState} from 'react';
import {
  TimeField,
  Screen,
  ScrollView,
  Navigator,
  Text,
  reactExtension,
} from '@shopify/ui-extensions-react/point-of-sale';

const SmartGridModal = () => {
  const [time, setTime] = useState('');
  return (
    <Navigator>
      <Screen name="TimeField" title="TimeField Example">
        <ScrollView>
          <TimeField label="Time" value={time} onChange={setTime} />
          <Text>Selected Time: {time}</Text>
        </ScrollView>
      </Screen>
    </Navigator>
  );
};

export default reactExtension('pos.home.modal.render', () => (
  <SmartGridModal />
));

```

```ts
import {
  Navigator,
  Screen,
  ScrollView,
  Text,
  TimeField,
  extension,
} from '@shopify/ui-extensions/point-of-sale';

export default extension('pos.home.modal.render', (root, api) => {
  const timeField = root.createComponent(TimeField, {
    label: 'Select Time',
    value: '',
  });

  const textBox = root.createComponent(Text);

  const onChangeHandler = (newValue: string) => {
    timeField.updateProps({value: newValue});

    const textContent = `Selected Time: ${newValue}`;
    textBox.replaceChildren(textContent);
  };

  timeField.updateProps({onChange: onChangeHandler});

  const scrollView = root.createComponent(ScrollView);
  scrollView.append(timeField);
  scrollView.append(textBox);

  const screen = root.createComponent(Screen, {
    name: 'TimeField',
    title: 'Time Field Example',
  });
  screen.append(scrollView);

  const navigator = root.createComponent(Navigator);
  navigator.append(screen);

  root.append(navigator);
});

```



## TimeField


### TimeFieldProps


### action

value: `InputAction`

A button under the text field to provide extra functionality.

### disabled

value: `boolean`

Whether the field can be modified.

### error

value: `string`

Indicates an error to the user. The field is given specific stylistic treatment to communicate problems that have to be resolved immediately.

### helpText

value: `string`

The label under the text field which provides guidance or instructions that assist users.

### is24Hour

value: `boolean`

(Android only) Whether the clock displays in 24 hour time instead of 12 hour time.

### label

value: `string`

The content to use as the field label.

### onBlur

value: `() => void`

The callback when focus is removed.

### onChange

value: `(value: string) => void`

The callback when the user has finished editing a field.

### onFocus

value: `() => void`

The callback when input is focused.

### value

value: `string`

The current value for the field. Defaults to now. You should update this value in response to the `onChange` callback.

### InputAction


### disabled

value: `boolean`

Whether the button can be pressed.

### label

value: `string`

The text displayed in the button.

### onPress

value: `() => void`

A callback to be performed.