react-native-twopane-navigation
Version:
React Native package for dual screen devices navigation support (Surface Duo)
2 lines • 3.95 kB
JavaScript
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _interfaces=require("../../../utilities/interfaces");var _lodash=_interopRequireDefault(require("lodash"));var _key=require("./key.types");function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(Object(source),true).forEach(function(key){(0,_defineProperty2.default)(target,key,source[key]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}}return target;}var initialState={keys:[]};var keyReducers=function keyReducers(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:initialState;var action=arguments.length>1?arguments[1]:undefined;switch(action.type){case _key.PUSH_KEY:{var newObject={key:action.payload.screen+"_"+action.payload.key,isMerge:action.payload.isMerge,screen:action.payload.screen,extensionOptions:action.payload.extensionOptions};return _objectSpread(_objectSpread({},state),{},{keys:[].concat((0,_toConsumableArray2.default)(state.keys),[newObject])});}case _key.POP_TO_FRONT_KEY:{var onePaneState=state.keys.filter(function(x){return x.screen===_interfaces.paneType.ONE;});var twoPaneState=state.keys.filter(function(x){return x.screen===_interfaces.paneType.TWO;});if(action.payload.screen===_interfaces.paneType.ONE){return _objectSpread(_objectSpread({},state),{},{keys:[onePaneState[0]].concat((0,_toConsumableArray2.default)(twoPaneState))});};return _objectSpread(_objectSpread({},state),{},{keys:[].concat((0,_toConsumableArray2.default)(onePaneState),[twoPaneState[0]])});}case _key.POP_KEY:{var newKeys=state.keys;var keyIndexToRemove=newKeys.findIndex(function(x){return x.key===action.payload.key;});newKeys.splice(keyIndexToRemove,1);return _objectSpread(_objectSpread({},state),{},{keys:newKeys});}case _key.MOVE_TO_FRONT_KEY:{var _onePaneState=state.keys.filter(function(x){return x.screen===_interfaces.paneType.ONE;});var _twoPaneState=state.keys.filter(function(x){return x.screen===_interfaces.paneType.TWO;});if(action.payload.screen===_interfaces.paneType.ONE){var _sorted=_lodash.default.sortBy(_onePaneState,function(item){return item.key===""+action.payload.key?1:0;});return _objectSpread(_objectSpread({},state),{},{keys:[].concat((0,_toConsumableArray2.default)(_sorted),(0,_toConsumableArray2.default)(_twoPaneState))});};var sorted=_lodash.default.sortBy(_twoPaneState,function(item){return item.key===""+action.payload.key?1:0;});return _objectSpread(_objectSpread({},state),{},{keys:[].concat((0,_toConsumableArray2.default)(_onePaneState),(0,_toConsumableArray2.default)(sorted))});}case _key.CHANGE_SCREEN_KEY:{return _objectSpread(_objectSpread({},state),{},{keys:updateObjectInArray(state.keys,action)});}default:return state;}};function updateObjectInArray(keys,action){return keys.map(function(item){if(item.key!==action.payload.key){return item;}var updatedItem={key:item.key,isMerge:item.isMerge,screen:action.payload.screen,extensionOptions:item.extensionOptions};return _objectSpread(_objectSpread({},item),updatedItem);});}var _default=keyReducers;exports.default=_default;
//# sourceMappingURL=key.reducer.js.map