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 2.42 kB
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 _styles=require("../styles");var _jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap(),n=new WeakMap();return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f);}for(var _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f;})(e,t);}function SelectBlock(props){var block=props.block,blockState=props.blockState,setValue=props.setValue;var theme=(0,_styles.useTheme)();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,textColor:theme.textColorPrimary,itemColor:theme.textColorSecondary,baseColor:theme.borderColor,highlightColor:theme.highlightColor,pickerStyle:{backgroundColor:theme.formBgColor}}))});}