A component that enables users to open a dialog and select a time through a text input.
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 />
));
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);
});
A button under the text field to provide extra functionality.
Whether the field can be modified.
Indicates an error to the user. The field is given specific stylistic treatment to communicate problems that have to be resolved immediately.
The label under the text field which provides guidance or instructions that assist users.
(Android only) Whether the clock displays in 24 hour time instead of 12 hour time.
The content to use as the field label.
The callback when focus is removed.
The callback when the user has finished editing a field.
The callback when input is focused.
The current value for the field. Defaults to now. You should update this value in response to the `onChange` callback.
Whether the button can be pressed.
The text displayed in the button.
A callback to be performed.