Selectablecomponent
component
The selectable component allows you to wrap any non-interactive UI component to make it selectable.
Anchor to selectableSelectable
- Anchor to onPressonPress() => voidrequired
The callback on press.
- Anchor to disableddisabledboolean
Whether the selectable reacts to presses.
SelectableProps
- onPress
The callback on press.
() => void
- disabled
Whether the selectable reacts to presses.
boolean
export interface SelectableProps {
/**
* The callback on press.
*/
onPress: () => void;
/**
* Whether the selectable reacts to presses.
*/
disabled?: boolean;
}
Was this section helpful?
Selectable
import React, { useState } from 'react';
import { Screen, reactExtension, Text, ScrollView, Selectable } from '@shopify/ui-extensions-react/point-of-sale';
const SmartGridModal = () => {
const [count, setCount] = useState(0);
return (
<Screen name='selectable' title='Selectable'>
<ScrollView>
<Selectable onPress={() => {setCount(count + 1)}}>
<Text variant="body">{count}</Text>
</Selectable>
</ScrollView>
</Screen>
);
}
export default reactExtension('pos.home.modal.render', () => {
return <SmartGridModal />
})
examples
Selectable
React
import React, { useState } from 'react'; import { Screen, reactExtension, Text, ScrollView, Selectable } from '@shopify/ui-extensions-react/point-of-sale'; const SmartGridModal = () => { const [count, setCount] = useState(0); return ( <Screen name='selectable' title='Selectable'> <ScrollView> <Selectable onPress={() => {setCount(count + 1)}}> <Text variant="body">{count}</Text> </Selectable> </ScrollView> </Screen> ); } export default reactExtension('pos.home.modal.render', () => { return <SmartGridModal /> })
TS
import { extension, Screen, ScrollView, Selectable, Stepper, Text, } from '@shopify/ui-extensions/point-of-sale'; export default extension( 'pos.home.modal.render', (root) => { let value = 0; const mainScreen = root.createComponent( Screen, {name: 'selectable', title: 'Selectable'}, ); const scrollView = root.createComponent(ScrollView); const text = root.createComponent( Text, null, value.toString(), ); const selectable = root.createComponent( Selectable, { onPress: () => { value += 1; text.replaceChildren(value.toString()); }, }, ); selectable.append(text); scrollView.append(selectable); mainScreen.append(scrollView); root.append(mainScreen); }, );
Preview
