@cake-fxd/rn-case
Version:
ReactNative Case
1 lines • 1.63 kB
JavaScript
;var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=exports.CaseContext=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _config=require("../util/config");var _config2=require("./config");var CaseContext=_react["default"].createContext({current:0,onNext:function onNext(){}});exports.CaseContext=CaseContext;var KEY=0;var CaseGather=function CaseGather(props){var _useState=(0,_react.useState)(0),_useState2=(0,_slicedToArray2["default"])(_useState,2),current=_useState2[0],setCurrent=_useState2[1];function onNext(){if(current>=props.cases.length-1){return;}var nextCurrent=current+1;setCurrent(nextCurrent);}function getCaseComponent(){var item=props.cases[current];var caseItem=_config2.caseConfigs.find(function(config){return config.type===item.type;});if(caseItem){return _react["default"].createElement(caseItem.component,(0,_extends2["default"])({},item.data,{onComplete:onNext,key:KEY++}));}return null;}return _react["default"].createElement(CaseContext.Provider,{value:{current:current,onNext:onNext}},_react["default"].createElement(_reactNative.View,{style:{flex:1,width:_config.WIDTH,height:_config.HEIGHT}},getCaseComponent()));};var _default=CaseGather;exports["default"]=_default;