UNPKG

@wordpress/components

Version:
100 lines (82 loc) 2.97 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _element = require("@wordpress/element"); var _reactNative = require("react-native"); var _native = require("@react-navigation/native"); var _icons = require("@wordpress/icons"); var _i18n = require("@wordpress/i18n"); var _components = require("@wordpress/components"); var _style = _interopRequireDefault(require("./style.scss")); /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ const BottomSheetSelectControl = ({ label, options: items, onChange, value: selectedValue }) => { const [showSubSheet, setShowSubSheet] = (0, _element.useState)(false); const navigation = (0, _native.useNavigation)(); const onChangeValue = value => { return () => { goBack(); onChange(value); }; }; const selectedOption = items.find(option => option.value === selectedValue); const goBack = () => { setShowSubSheet(false); navigation.goBack(); }; const openSubSheet = () => { navigation.navigate(_components.BottomSheet.SubSheet.screenName); setShowSubSheet(true); }; return (0, _element.createElement)(_components.BottomSheet.SubSheet, { navigationButton: (0, _element.createElement)(_components.BottomSheet.Cell, { label: label, separatorType: "none", value: selectedOption.label, onPress: openSubSheet, accessibilityRole: 'button', accessibilityLabel: selectedOption.label, accessibilityHint: (0, _i18n.sprintf)( // translators: %s: Select control button label e.g. "Button width" (0, _i18n.__)('Navigates to select %s'), selectedOption.label) }, (0, _element.createElement)(_icons.Icon, { icon: _icons.chevronRight })), showSheet: showSubSheet }, (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.BottomSheet.NavigationHeader, { screen: label, leftButtonOnPress: goBack }), (0, _element.createElement)(_reactNative.View, { style: _style.default.selectControl }, items.map((item, index) => (0, _element.createElement)(_components.BottomSheet.Cell, { customActionButton: true, separatorType: "none", label: item.label, onPress: onChangeValue(item.value), leftAlign: true, key: index, accessibilityRole: 'button', accessibilityLabel: item.value === selectedValue ? (0, _i18n.sprintf)( // translators: %s: Select control option value e.g: "Auto, 25%". (0, _i18n.__)('Selected: %s'), item.label) : item.label, accessibilityHint: (0, _i18n.__)('Double tap to select') }, item.value === selectedValue && (0, _element.createElement)(_icons.Icon, { icon: _icons.check })))))); }; var _default = BottomSheetSelectControl; exports.default = _default; //# sourceMappingURL=index.native.js.map