Skip to main content

TextArea
component

Use a text input to allow merchants to input or modify multiline text.

A text field which supports multiple lines.

string
required

The content to use as the field label.

A button under the text field to provide extra functionality.

boolean

Whether the field can be modified.

string

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

string

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

number

The maximum number of characters allowed in the input field.

() => void

The callback when focus is removed.

(value: string) => void

The callback when the user has finished editing a field.

() => void

The callback when input is focused.

(value: string) => void

Callback when the user makes any changes in the field. As noted in the documentation for onChange, you must not use this to update value — use the onChange callback for that purpose. Use the onInput prop when you need to do something as soon as the user makes a change, like clearing validation errors that apply to the field as soon as the user begins making the necessary adjustments.

string

A short hint that describes the expected value of the field.

boolean

Whether the field needs a value.

number

The initial number of lines to be displayed. Maximum of 8 lines.

string

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

Was this section helpful?

Thumbnail

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

const SmartGridModal = () => {
const [text, setText] = useState('');

return (
<Navigator>
<Screen
name="TextArea"
title="Comment Input Example"
>
<ScrollView>
<TextArea
label="Text"
rows={4}
placeholder="Input your text here"
value={text}
onChange={setText}
/>
<Text>{text}</Text>
</ScrollView>
</Screen>
</Navigator>
);
};

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

Preview