Skip to content

Commit

Permalink
Merge pull request #1992 from Shopify/my-datefield-timefield-docs
Browse files Browse the repository at this point in the history
update timefield and datefield docs
  • Loading branch information
merkoyep committed May 29, 2024
2 parents 883e2cc + f7739b4 commit 44d1be5
Show file tree
Hide file tree
Showing 8 changed files with 182 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {ReferenceEntityTemplateSchema} from '@shopify/generate-docs';
import {generateCodeBlock} from '../helpers/generateCodeBlock';

const data: ReferenceEntityTemplateSchema = {
name: 'DateField',
Expand All @@ -15,6 +16,19 @@ const data: ReferenceEntityTemplateSchema = {
],
category: 'Components',
related: [],
defaultExample: {
codeblock: generateCodeBlock('Date input', 'date-field', 'date-input'),
},
subSections: [
{
type: 'Generic',
anchorLink: 'guidelines',
title: 'Guidelines',
sectionContent: `
- Use a smart default date for common selections.
`,
},
],
};

export default data;
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {ReferenceEntityTemplateSchema} from '@shopify/generate-docs';
import {generateCodeBlock} from '../helpers/generateCodeBlock';

const data: ReferenceEntityTemplateSchema = {
name: 'TimeField',
Expand All @@ -15,6 +16,19 @@ const data: ReferenceEntityTemplateSchema = {
],
category: 'Components',
related: [],
defaultExample: {
codeblock: generateCodeBlock('Time input', 'time-field', 'time-input'),
},
subSections: [
{
type: 'Generic',
anchorLink: 'guidelines',
title: 'Guidelines',
sectionContent: `
- Use a smart default time for common selections.
`,
},
],
};

export default data;
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
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);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
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 />
));
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
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);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
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 />
));
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ export interface TimeFieldProps
| 'action'
| 'helpText'
> {
/**
* (Android only) Whether the clock displays in 24 hour time instead of 12 hour time.
* @defaultValue false
*/
is24Hour?: boolean;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ export interface InputProps {
*/
action?: InputAction;
/**
* The maximum number of characters allowed in the input field.
* The maximum number of characters allowed in the input field.
*/
maxLength?: number;
}

0 comments on commit 44d1be5

Please sign in to comment.