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 • 2.32 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:true});exports.default=SelectBlock;var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _Dropdown=require("./Dropdown");var _utils=require("../utils");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 SelectBlock(props){var block=props.block,blockState=props.blockState,setValue=props.setValue;var properties=block.properties;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;var DropdownProps={label:block.placeholder||'',data:elementList.map(function(key){var _ref,_element$value;var element=elements[key];return{value:(_ref=(_element$value=element==null?void 0:element.value)!=null?_element$value:element==null?void 0:element.label)!=null?_ref:element};}),value:blockState.value,onChangeText:function onChangeText(value){return setValue(value);}};return(0,_jsxRuntime.jsx)(_reactNative.View,{children:(0,_jsxRuntime.jsx)(_Dropdown.Dropdown,Object.assign({},DropdownProps,{multiline:true}))});}