UNPKG

@ant-design/react-native

Version:

基于蚂蚁金服移动设计规范的 React Native 组件库

1 lines 3.92 kB
"use client";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _useMergedState3=_interopRequireDefault(require("rc-util/es/hooks/useMergedState"));var React=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _DisabledContext=_interopRequireDefault(require("../provider/DisabledContext"));var _RadioContext=require("./RadioContext");var _RadioItem=_interopRequireDefault(require("./RadioItem"));function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||_typeof(obj)!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var __rest=this&&this.__rest||function(s,e){var t={};for(var p in s){if(Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0)t[p]=s[p];}if(s!=null&&typeof Object.getOwnPropertySymbols==="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++){if(e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i]))t[p[i]]=s[p[i]];}return t;};var RadioGroup=React.forwardRef(function(props,ref){var contextDisabled=React.useContext(_DisabledContext.default);var defaultValue=props.defaultValue,onChange=props.onChange,options=props.options,_props$disabled=props.disabled,disabled=_props$disabled===void 0?contextDisabled:_props$disabled,children=props.children,style=props.style,restProps=__rest(props,["defaultValue","onChange","options","disabled","children","style"]);var _useMergedState=(0,_useMergedState3.default)(defaultValue,{value:restProps.value}),_useMergedState2=(0,_slicedToArray2.default)(_useMergedState,2),value=_useMergedState2[0],setValue=_useMergedState2[1];var onRadioGroupChange=function onRadioGroupChange(ev){var lastValue=value;var val=ev.target.value;if(!('value'in restProps)){setValue(val);}if(onChange&&val!==lastValue){onChange(ev);}};var renderGroup=function renderGroup(){var childrenToRender=children;if(options&&options.length>0){childrenToRender=options.map(function(option){if(typeof option==='string'){return React.createElement(_RadioItem.default,(0,_extends2.default)({key:option},restProps,{disabled:disabled,value:option,checked:value===option}),option);}return React.createElement(_RadioItem.default,(0,_extends2.default)({key:"radio-group-value-options-".concat(option.value)},restProps,{disabled:option.disabled||disabled,value:option.value,checked:value===option.value}),option.label);});}return React.createElement(_reactNative.View,{accessibilityRole:"radiogroup",accessibilityState:{disabled:disabled},style:style,ref:ref},React.createElement(_RadioContext.RadioGroupContextProvider,{value:{onChange:onRadioGroupChange,value:value,disabled:disabled}},childrenToRender));};return renderGroup();});var _default=React.memo(RadioGroup);exports.default=_default;