@gechiui/components
Version:
UI components for GeChiUI.
74 lines (59 loc) • 2.23 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = BottomSheetSwitchCell;
var _element = require("@gechiui/element");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _reactNative = require("react-native");
var _lodash = require("lodash");
var _i18n = require("@gechiui/i18n");
var _cell = _interopRequireDefault(require("./cell"));
/**
* External dependencies
*/
/**
* GeChiUI dependencies
*/
/**
* Internal dependencies
*/
function BottomSheetSwitchCell(props) {
const {
value,
onValueChange,
...cellProps
} = props;
const onPress = () => {
onValueChange(!value);
};
const getAccessibilityLabel = () => {
if ((0, _lodash.isEmpty)(cellProps.help)) {
return value ? (0, _i18n.sprintf)(
/* translators: accessibility text. Switch setting ON state. %s: Switch title. */
(0, _i18n._x)('%s. On', 'switch control'), cellProps.label) : (0, _i18n.sprintf)(
/* translators: accessibility text. Switch setting OFF state. %s: Switch title. */
(0, _i18n._x)('%s. Off', 'switch control'), cellProps.label);
}
return value ? (0, _i18n.sprintf)(
/* translators: accessibility text. Switch setting ON state. %1: Switch title, %2: switch help. */
(0, _i18n._x)('%1$s, %2$s. On', 'switch control'), cellProps.label, cellProps.help) : (0, _i18n.sprintf)(
/* translators: accessibility text. Switch setting OFF state. %1: Switch title, %2: switch help. */
(0, _i18n._x)('%1$s, %2$s. Off', 'switch control'), cellProps.label, cellProps.help);
};
return (0, _element.createElement)(_cell.default, (0, _extends2.default)({}, cellProps, {
accessibilityLabel: getAccessibilityLabel(),
accessibilityRole: 'none',
accessibilityHint:
/* translators: accessibility text (hint for switches) */
(0, _i18n.__)('Double tap to toggle setting'),
onPress: onPress,
editable: false,
value: ''
}), (0, _element.createElement)(_reactNative.Switch, {
value: value,
onValueChange: onValueChange
}));
}
//# sourceMappingURL=switch-cell.native.js.map