UNPKG

mopinion-react-native-sdk

Version:

Collect in-app feedback with Mopinion for React Native. Built fully in React Native for optimal integration with your React Native app.

1 lines 1.65 kB
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=ThumbsBlock;var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _Icon=_interopRequireDefault(require("./Icon"));var _utils=require("../utils");var _styles=require("../styles");var _jsxRuntime=require("react/jsx-runtime");function ThumbsBlock(props){var _properties$elements;var setValue=props.setValue,block=props.block,blockState=props.blockState;var _block$properties=block.properties,properties=_block$properties===void 0?{}:_block$properties;var theme=(0,_styles.useTheme)();return(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.row,children:(0,_utils.objectKeys)((_properties$elements=properties.elements)!=null?_properties$elements:{}).map(function(elementKey){var _properties$elements$,_element$value;var element=(_properties$elements$=properties.elements[elementKey])!=null?_properties$elements$:{};var isChecked=blockState.value===((_element$value=element.value)!=null?_element$value:element.label);return(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:function onPress(){var _element$value2;return setValue((_element$value2=element.value)!=null?_element$value2:element.label);},children:(0,_jsxRuntime.jsx)(_Icon.default,{label:element.label,type:block.typeName,icon:element.icon,style:[styles.thumbs,{color:theme.thumbs[element.value],opacity:isChecked?1:0.5}]})},element.label);})});}var styles=_reactNative.StyleSheet.create({row:{flex:1,flexDirection:'row',flexWrap:'wrap',gap:(0,_styles.spacing)(3)},thumbs:{fontSize:40}});