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 • 3.51 kB
JavaScript
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=RadioCheckBlock;var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _Control=_interopRequireDefault(require("./Control"));var _Buttons=require("./Buttons");var _utils=require("../utils");var _styles=require("../styles");var _jsxRuntime=require("react/jsx-runtime");function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}function RadioCheckBlock(props){var setValue=props.setValue,setNestedValue=props.setNestedValue,block=props.block,blockState=props.blockState;var _block$properties=block.properties,properties=_block$properties===void 0?{}:_block$properties;var _useWindowDimensions=(0,_reactNative.useWindowDimensions)(),width=_useWindowDimensions.width;var showAsRow=width>400;var _useMemo=(0,_react.useMemo)(function(){var elements=(0,_utils.getElementsHandleExtra)({elements:properties.elements,elements_extra:properties.elements_extra});if(properties.reverseScore){return{elements:elements,elementList:(0,_utils.objectKeys)(elements).reverse()};}if(properties.randomize){var _properties$elements_;return{elements:elements,elementList:(0,_utils.shuffleArray)((0,_utils.objectKeys)(elements),(0,_utils.objectKeys)((_properties$elements_=properties.elements_extra)!=null?_properties$elements_:{}).length>0)};}return{elements:elements,elementList:(0,_utils.objectKeys)(elements)};},[properties]),elements=_useMemo.elements,elementList=_useMemo.elementList;return(0,_jsxRuntime.jsx)(_reactNative.View,{style:block.properties.show_as_buttons&&showAsRow?styles.buttonsRow:block.properties.show_as_buttons?styles.buttonsCol:null,children:elementList.map(function(elementKey){var _elements$elementKey,_element$value,_blockState$element$d;var element=(_elements$elementKey=elements[elementKey])!=null?_elements$elementKey:{};var isChecked=block.typeName!=='checkbox'?blockState.value===((_element$value=element.value)!=null?_element$value:element.label):((_blockState$element$d=blockState[element.data_field])==null?void 0:_blockState$element$d.value)===true;var InputComponent=block.properties.show_as_buttons?_Buttons.ToggleButton:_Control.default;return(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_jsxRuntime.jsx)(InputComponent,{checked:isChecked,label:element.label,title:element.label,prependIcon:element.icon,onPress:function onPress(){if(block.typeName==='checkbox'){setNestedValue(!isChecked,element.data_field);}else{var _element$value2;setValue((_element$value2=element.value)!=null?_element$value2:element.label);}},type:block.typeName})},element.label);})});}var styles=_reactNative.StyleSheet.create({buttonsCol:{flex:1,flexDirection:'column',gap:(0,_styles.spacing)(0.5)},buttonsRow:{flex:1,flexDirection:'row',gap:(0,_styles.spacing)(0.5)}});