@ant-design/react-native
Version:
基于蚂蚁金服移动设计规范的 React Native 组件库
1 lines • 4.4 kB
JavaScript
"use client";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports.default=StatusProvider;var React=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _icon=_interopRequireDefault(require("../../icon"));var _view=_interopRequireDefault(require("../../view"));var _context=require("../context");var _util=require("../util");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;}function StatusProvider(_ref){var children=_ref.children,errors=_ref.errors,warnings=_ref.warnings,hasFeedback=_ref.hasFeedback,validateStatus=_ref.validateStatus,meta=_ref.meta,noStyle=_ref.noStyle,styles=_ref.styles;var _React$useContext=React.useContext(_context.FormContext),feedbackIcons=_React$useContext.feedbackIcons;var iconMap=React.useMemo(function(){return{success:React.createElement(_icon.default,{name:"check-circle",style:styles===null||styles===void 0?void 0:styles.success}),warning:React.createElement(_icon.default,{name:"exclamation-circle",style:styles===null||styles===void 0?void 0:styles.warning}),error:React.createElement(_icon.default,{name:"close-circle",style:styles===null||styles===void 0?void 0:styles.error}),validating:React.createElement(_reactNative.ActivityIndicator,{animating:true,size:"small",style:styles===null||styles===void 0?void 0:styles.validating})};},[styles===null||styles===void 0?void 0:styles.error,styles===null||styles===void 0?void 0:styles.success,styles===null||styles===void 0?void 0:styles.validating,styles===null||styles===void 0?void 0:styles.warning]);var mergedValidateStatus=(0,_util.getStatus)(errors,warnings,meta,null,!!hasFeedback,validateStatus);var _React$useContext2=React.useContext(_context.FormItemInputContext),parentIsFormItemInput=_React$useContext2.isFormItemInput,parentStatus=_React$useContext2.status,parentHasFeedback=_React$useContext2.hasFeedback,parentFeedbackIcon=_React$useContext2.feedbackIcon;var formItemStatusContext=React.useMemo(function(){var _a;var feedbackIcon;if(hasFeedback){var customIcons=hasFeedback!==true&&hasFeedback.icons||feedbackIcons;var customIconNode=mergedValidateStatus&&((_a=customIcons===null||customIcons===void 0?void 0:customIcons({status:mergedValidateStatus,errors:errors,warnings:warnings}))===null||_a===void 0?void 0:_a[mergedValidateStatus]);var IconNode=mergedValidateStatus&&iconMap[mergedValidateStatus];feedbackIcon=customIconNode!==false&&IconNode?React.createElement(_view.default,{style:styles===null||styles===void 0?void 0:styles.feedbackIcon},customIconNode||IconNode):null;}var context={status:mergedValidateStatus||'',errors:errors,warnings:warnings,hasFeedback:!!hasFeedback,feedbackIcon:feedbackIcon,isFormItemInput:true};if(noStyle){context.status=(mergedValidateStatus!==null&&mergedValidateStatus!==void 0?mergedValidateStatus:parentStatus)||'';context.isFormItemInput=parentIsFormItemInput;context.hasFeedback=!!(hasFeedback!==null&&hasFeedback!==void 0?hasFeedback:parentHasFeedback);context.feedbackIcon=hasFeedback!==undefined?context.feedbackIcon:parentFeedbackIcon;}return context;},[mergedValidateStatus,hasFeedback,noStyle,parentIsFormItemInput,parentStatus,styles===null||styles===void 0?void 0:styles.feedbackIcon]);return React.createElement(_context.FormItemInputContext.Provider,{value:formItemStatusContext},children);}