UNPKG

react-native-twopane-navigation

Version:

React Native package for dual screen devices navigation support (Surface Duo)

2 lines 4.17 kB
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _react=_interopRequireWildcard(require("react"));var _reactRedux=require("react-redux");var _reactNativeDualscreeninfo=require("react-native-dualscreeninfo");var _appStore=require("../../appStore");var _TwoPaneHub=_interopRequireDefault(require("../twoPaneHub/TwoPaneHub"));var _onePane=_interopRequireDefault(require("../../onePane/onePaneStore/onePane.methods"));var _twoPane=_interopRequireDefault(require("../../twoPane/twoPaneStore/twoPane.methods"));var _utilityStore=_interopRequireDefault(require("../../shared/utilityStore/utilityStore.methods"));var _jsxFileName="C:\\Users\\adavi\\source\\repos\\react-native-dualscreen\\twopane-navigation\\src\\components\\twoPaneApp\\TwoPaneApp.tsx";var TwoPaneApp=function TwoPaneApp(props){var screenState=_appStore.store.getState().KeyReducers.keys;var hasOnePaneDefault=screenState.some(function(val){return val.key==="ONE_"+props.onePaneDefault.key;});var hasTwoPaneDefault=screenState.some(function(val){return val.key==="TWO_"+props.twoPaneDefault.key;});var getPayloadAsync=function getPayloadAsync(){var payload;return _regenerator.default.async(function getPayloadAsync$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.next=2;return _regenerator.default.awrap(_reactNativeDualscreeninfo.DualScreenInfo.getPayload());case 2:payload=_context.sent;_handleSpanningChanged(payload);case 4:case"end":return _context.stop();}}},null,null,null,Promise);};(0,_react.useEffect)(function(){getPayloadAsync();if(!hasOnePaneDefault&&!hasTwoPaneDefault){var _props$onePaneDefault,_props$onePaneDefault2,_props$twoPaneDefault,_props$twoPaneDefault2;_onePane.default.Add(props.onePaneDefault.key,props.onePaneDefault.paneElement,props===null||props===void 0?void 0:(_props$onePaneDefault=props.onePaneDefault)===null||_props$onePaneDefault===void 0?void 0:_props$onePaneDefault.header,false,props===null||props===void 0?void 0:(_props$onePaneDefault2=props.onePaneDefault)===null||_props$onePaneDefault2===void 0?void 0:_props$onePaneDefault2.extensionOptions);_twoPane.default.Add(props.twoPaneDefault.key,props.twoPaneDefault.paneElement,props===null||props===void 0?void 0:(_props$twoPaneDefault=props.twoPaneDefault)===null||_props$twoPaneDefault===void 0?void 0:_props$twoPaneDefault.header,false,props===null||props===void 0?void 0:(_props$twoPaneDefault2=props.twoPaneDefault)===null||_props$twoPaneDefault2===void 0?void 0:_props$twoPaneDefault2.extensionOptions);if(props.config!==undefined){_utilityStore.default.pushConfig(props.config);}}_utilityStore.default.pushIsTwoPane(_reactNativeDualscreeninfo.DualScreenInfo.isSpanning);_reactNativeDualscreeninfo.DualScreenInfo.addEventListener('didUpdateSpanning',_handleSpanningChanged);return function(){_reactNativeDualscreeninfo.DualScreenInfo.removeEventListener('didUpdateSpanning',_handleSpanningChanged);};},[]);var _handleSpanningChanged=function _handleSpanningChanged(update){_utilityStore.default.pushIsTwoPane(update.isSpanning);_utilityStore.default.pushOrientation(update.orientation);_utilityStore.default.pushPaneRects(update.windowRects);if(update.isSpanning){_onePane.default.mergeToOppositePane();}else{_twoPane.default.mergeToOppositePane();}};return _react.default.createElement(_react.Fragment,{key:'App Component',__source:{fileName:_jsxFileName,lineNumber:55,columnNumber:5}},_react.default.createElement(_reactRedux.Provider,{store:_appStore.store,__source:{fileName:_jsxFileName,lineNumber:56,columnNumber:7}},props.navigationContainer!==undefined?props.navigationContainer:_react.default.createElement(_react.Fragment,{__source:{fileName:_jsxFileName,lineNumber:60,columnNumber:13}},_react.default.createElement(_TwoPaneHub.default,{__source:{fileName:_jsxFileName,lineNumber:61,columnNumber:15}}))));};var _default=TwoPaneApp;exports.default=_default; //# sourceMappingURL=TwoPaneApp.js.map