renamed everything from single,dual,screen to one,two, pane

This commit is contained in:
keilaloia 2020-08-17 12:07:33 -07:00
Родитель e5ef361d7a
Коммит c1c8090509
117 изменённых файлов: 2771 добавлений и 2864 удалений

Просмотреть файл

@ -9,115 +9,18 @@
*/
import React from 'react';
import {
SafeAreaView,
StyleSheet,
ScrollView,
View,
Text,
StatusBar,
Button,
} from 'react-native';
import {
Header,
LearnMoreLinks,
Colors,
DebugInstructions,
ReloadInstructions,
} from 'react-native/Libraries/NewAppScreen';
import {TwoPaneApp, ITwoPaneAppProps} from "twopane-navigation";
declare const global: {HermesInternal: null | {}};
import { autoScreen } from "twopane-navigation"
const App = () => {
return (
<>
<StatusBar barStyle="dark-content" />
<SafeAreaView>
<ScrollView
contentInsetAdjustmentBehavior="automatic"
style={styles.scrollView}>
<Header />
{global.HermesInternal == null ? null : (
<View style={styles.engine}>
<Text style={styles.footer}>Engine: Hermes</Text>
</View>
)}
<View style={styles.body}>
<View style={styles.sectionContainer}>
<Button onPress={() => autoScreen.Add('start', <Text style={styles.sectionDescription}>
Edit <Text style={styles.highlight}>App.tsx</Text> to change
this screen and then come back to see your edits.
</Text>)} title={"press me"} ></Button>
<Text style={styles.sectionDescription}>
Edit <Text style={styles.highlight}>App.tsx</Text> to change
this screen and then come back to see your edits.
</Text>
</View>
<View style={styles.sectionContainer}>
<Text style={styles.sectionTitle}>See Your Changes</Text>
<Text style={styles.sectionDescription}>
<ReloadInstructions />
</Text>
</View>
<View style={styles.sectionContainer}>
<Text style={styles.sectionTitle}>Debug</Text>
<Text style={styles.sectionDescription}>
<DebugInstructions />
</Text>
</View>
<View style={styles.sectionContainer}>
<Text style={styles.sectionTitle}>Learn More</Text>
<Text style={styles.sectionDescription}>
Read the docs to discover what to do next:
</Text>
</View>
<LearnMoreLinks />
</View>
</ScrollView>
</SafeAreaView>
</>
);
};
const styles = StyleSheet.create({
scrollView: {
backgroundColor: Colors.lighter,
},
engine: {
position: 'absolute',
right: 0,
},
body: {
backgroundColor: Colors.white,
},
sectionContainer: {
marginTop: 32,
paddingHorizontal: 24,
},
sectionTitle: {
fontSize: 24,
fontWeight: '600',
color: Colors.black,
},
sectionDescription: {
marginTop: 8,
fontSize: 18,
fontWeight: '400',
color: Colors.dark,
},
highlight: {
fontWeight: '700',
},
footer: {
color: Colors.dark,
fontSize: 12,
fontWeight: '600',
padding: 4,
paddingRight: 12,
textAlign: 'right',
},
});
const TwoPaneAppDefaultComponents: ITwoPaneAppProps
{
onePaneScreen: {
}
}
export default App;

Просмотреть файл

@ -11,7 +11,7 @@ This library was built with the idea to work side by side with the react-navigat
## Getting started
The Dual Navigation library is built around the core concept of viewing each screen on your multi-screen device as its own stack (LIFO) like system and rendering the very top element of said stack as the current page for the user to see.
The TWO Navigation library is built around the core concept of viewing each screen on your multi-screen device as its own stack (LIFO) like system and rendering the very top element of said stack as the current page for the user to see.
This can be seen by the picture below
![stack Example](docs/stackExample.png)
@ -20,64 +20,64 @@ This can be seen by the picture below
coming soon
### Hello Dual Navigation
### Hello TWO Navigation
- **Dual App** is a component that must be the base for your React Native application and has the following properites
- **TWO App** is a component that must be the base for your React Native application and has the following properites
- singleScreen - this will be the base screen you want to show when in single mode
- onePane - this will be the base screen you want to show when in ONE mode
- dualScreen - this will be the base screen you want to show when in dual mode with the singleScreen showing on the other available screen
- twoPane - this will be the base screen you want to show when in TWO mode with the onePane showing on the other available screen
- navigationContainer? - AppContainer if using React Navigation
![DualApp Example](docs/DualApp.png)
![TWOApp Example](docs/TWOApp.png)
Now with our Dual App set up if we open up our app with only one active screen we will see.
Now with our TWO App set up if we open up our app with only one active screen we will see.
![singleScreen Example](docs/SingleScreenExample.png)
![onePane Example](docs/onePaneExample.png)
And now if we extend our application to make use of our multi screens we will see
![dualScreen Example](docs/DualScreenExample.png)
\*notice how the singleScreen is now showing in the first panel as its own seperate entity
![twoPane Example](docs/twoPaneExample.png)
\*notice how the onePane is now showing in the first panel as its own seperate entity
### Fundamentals
#### Navigating Screens
Now with our Dual App set up we can finally start navigating.
Now with our TWO App set up we can finally start navigating.
To navigate between screens we have a variety of built-in methods you can call. For purpose of this demonstration we will be introducing you to the core methods you will use during your development journey.
##### Moving Forward
- (single | dual | auto)screen.Add(element: IScreenComponent) - Push a new screen to the stack of your choosing
- (ONE | TWO | auto)screen.Add(element: IPaneComponent) - Push a new screen to the stack of your choosing
- For this example we will be pushing to the dual screen if both screens are active or we will be pushing to the single screen if only using one screen
- For this example we will be pushing to the TWO screen if both screens are active or we will be pushing to the ONE screen if only using one screen
![dualScreen Example](docs/addingScreenExample.png)
![twoPane Example](docs/addingScreenExample.png)
- Now if we run our application in dual mode we will see that we have only pushed the new screen to the dualStack
- Now if we run our application in TWO mode we will see that we have only pushed the new screen to the TWOStack
![dualScreenView Example](docs/addingScreenViewExample.png)
![twoPaneView Example](docs/addingScreenViewExample.png)
##### Going Back
The header provided by Dual Navigator automatically includes a back button when it is possible to go back from the current screen(if there is only one screen in the stack, there is nothing that you can go back to, and so there is no back button)
The header provided by TWO Navigator automatically includes a back button when it is possible to go back from the current screen(if there is only one screen in the stack, there is nothing that you can go back to, and so there is no back button)
If you want to programmatically go back we give you the power by calling
- (single | dual | auto)Screen.GoBack() - go back one element in the stack of your choosing
- (ONE | TWO | auto)Screen.GoBack() - go back one element in the stack of your choosing
![goBack Example](docs/GoBackExample.png)
If you have multiple screens in the stack and would like to go back to the very first screen in your stack(defaultScreen) you can call
- (single | dual | auto)Screen.BackToHome() - go back to the base element of the stack
- (ONE | TWO | auto)Screen.BackToHome() - go back to the base element of the stack
![goBackToHome Example](docs/BackToHomeExample.png)
##### React Navigation
To use React Navigation with the Dual Navigation library is very simple.
create all the StackNavigators,SwitchNavigators,DrawerNavigators,etc... and pass the appContainer into the navigationContainer prop in our DualApp Component. After that you can access the navigation/route objects with the useNavigation/useRoute hooks.
To use React Navigation with the TWO Navigation library is very simple.
create all the StackNavigators,SwitchNavigators,DrawerNavigators,etc... and pass the appContainer into the navigationContainer prop in our TWOApp Component. After that you can access the navigation/route objects with the useNavigation/useRoute hooks.
- In the example we are opening a DrawerNavigator on icon press
![NavigationService Example](docs/navigationReferenceExample.PNG)
@ -90,13 +90,13 @@ Coming Soon
#### Screen Merging
when you want to keep screens through screen transition from single screen to dual screen mode you need to mark the screens you want as mergeable.
when you want to keep screens through screen transition from ONE screen to TWO screen mode you need to mark the screens you want as mergeable.
to do this is very simple, simply mark isMerge = true when you add your screen to the stack.(defaulted to false)
![ScreenMerge Code Example](docs/ScreenMergeCodeExample.PNG)
now when we start with a dual screen application and move it to single screen we can easily transition and keep our previous screen
now when we start with a TWO screen application and move it to ONE screen we can easily transition and keep our previous screen
![ScreenMerge Example](docs/addingScreenViewExample.png)
![ScreenMerge Example](docs/ScreenMergeExample.png)
@ -118,31 +118,31 @@ how to use
#### Screens
singleScreen- will call every action specifically for the singleScreen stack
onePane- will call every action specifically for the onePane stack
dualScreen - will call every action specifically for the dualScreen stack
twoPane - will call every action specifically for the twoPane stack
autoScreen - will check to see if the user is currently in singleScreen or DualScreen mode,
autoPane - will check to see if the user is currently in onePane or twoPane mode,
and will call the appropriate action the current modes stack.
- Example:
If in singleScreen mode will call an action only to the single screen stack.
If in onePane mode will call an action only to the ONE screen stack.
If in dualScreen mode will call an action only to the dual screen stack
If in twoPane mode will call an action only to the TWO screen stack
#### Methods
- (single | dual | auto)Screen.Add - Pushes element to the top of the stack
- (ONE | TWO | auto)Screen.Add - Pushes element to the top of the stack
- (single | dual | auto)Screen.AddOrMoveToFront - Automatically pushes element to the top of stack or if the key is already in the stack,move that key to the top of the stack based on screen size
- (ONE | TWO | auto)Screen.AddOrMoveToFront - Automatically pushes element to the top of stack or if the key is already in the stack,move that key to the top of the stack based on screen size
- (single | dual | auto)Screen.BackToHome - Removes all elements of the stack and returns the base element of the stack
- (ONE | TWO | auto)Screen.BackToHome - Removes all elements of the stack and returns the base element of the stack
- (single | dual | auto)Screen.GoBack - Go back one element in the stack
- (ONE | TWO | auto)Screen.GoBack - Go back one element in the stack
- (single | dual | auto)Screen.ReplaceScreen - Replace the default element for this component
- (ONE | TWO | auto)Screen.ReplaceScreen - Replace the default element for this component
- (single | dual | auto)Screen.ReplaceHeader - Replace the default header for this component
- (ONE | TWO | auto)Screen.ReplaceHeader - Replace the default header for this component
#### Hooks

Просмотреть файл

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1597445226638" clover="3.2.0">
<project timestamp="1597445226638" name="All files">
<coverage generated="1597691227771" clover="3.2.0">
<project timestamp="1597691227772" name="All files">
<metrics statements="298" coveredstatements="285" conditionals="117" coveredconditionals="96" methods="99" coveredmethods="90" elements="514" coveredelements="471" complexity="0" loc="298" ncloc="298" packages="17" files="35" classes="35"/>
<package name="twopane-navigation">
<package name="src">
<metrics statements="10" coveredstatements="10" conditionals="2" coveredconditionals="2" methods="2" coveredmethods="2"/>
<file name="appStore.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\appStore.ts">
<file name="appStore.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\appStore.ts">
<metrics statements="10" coveredstatements="10" conditionals="2" coveredconditionals="2" methods="2" coveredmethods="2"/>
<line num="10" count="8" type="stmt"/>
<line num="12" count="8" type="stmt"/>
@ -18,9 +18,9 @@
<line num="43" count="8" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.Shared.screenStore.headerStore">
<package name="src.Shared.screenStore.headerStore">
<metrics statements="23" coveredstatements="23" conditionals="7" coveredconditionals="7" methods="6" coveredmethods="6"/>
<file name="header.actions.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\headerStore\header.actions.ts">
<file name="header.actions.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\headerStore\header.actions.ts">
<metrics statements="6" coveredstatements="6" conditionals="0" coveredconditionals="0" methods="3" coveredmethods="3"/>
<line num="5" count="5" type="stmt"/>
<line num="8" count="26" type="stmt"/>
@ -29,7 +29,7 @@
<line num="27" count="5" type="stmt"/>
<line num="29" count="18" type="stmt"/>
</file>
<file name="header.reducer.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\headerStore\header.reducer.ts">
<file name="header.reducer.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\headerStore\header.reducer.ts">
<metrics statements="12" coveredstatements="12" conditionals="7" coveredconditionals="7" methods="1" coveredmethods="1"/>
<line num="6" count="8" type="stmt"/>
<line num="10" count="8" type="stmt"/>
@ -44,21 +44,21 @@
<line num="41" count="18" type="stmt"/>
<line num="44" count="287" type="stmt"/>
</file>
<file name="header.selector.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\headerStore\header.selector.ts">
<file name="header.selector.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\headerStore\header.selector.ts">
<metrics statements="2" coveredstatements="2" conditionals="0" coveredconditionals="0" methods="2" coveredmethods="2"/>
<line num="5" count="1" type="stmt"/>
<line num="6" count="11" type="stmt"/>
</file>
<file name="header.types.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\headerStore\header.types.ts">
<file name="header.types.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\headerStore\header.types.ts">
<metrics statements="3" coveredstatements="3" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
<line num="1" count="8" type="stmt"/>
<line num="3" count="8" type="stmt"/>
<line num="5" count="8" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.Shared.screenStore.headerStore.tests">
<package name="src.Shared.screenStore.headerStore.tests">
<metrics statements="4" coveredstatements="4" conditionals="0" coveredconditionals="0" methods="2" coveredmethods="2"/>
<file name="header.methods.helpers.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\headerStore\tests\header.methods.helpers.tsx">
<file name="header.methods.helpers.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\headerStore\tests\header.methods.helpers.tsx">
<metrics statements="4" coveredstatements="4" conditionals="0" coveredconditionals="0" methods="2" coveredmethods="2"/>
<line num="3" count="3" type="stmt"/>
<line num="4" count="4" type="stmt"/>
@ -66,9 +66,9 @@
<line num="14" count="4" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.Shared.screenStore.keyStore">
<package name="src.Shared.screenStore.keyStore">
<metrics statements="48" coveredstatements="48" conditionals="19" coveredconditionals="19" methods="18" coveredmethods="18"/>
<file name="key.actions.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\keyStore\key.actions.ts">
<file name="key.actions.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\keyStore\key.actions.ts">
<metrics statements="8" coveredstatements="8" conditionals="0" coveredconditionals="0" methods="5" coveredmethods="5"/>
<line num="5" count="5" type="stmt"/>
<line num="9" count="118" type="stmt"/>
@ -79,7 +79,7 @@
<line num="49" count="5" type="stmt"/>
<line num="51" count="8" type="stmt"/>
</file>
<file name="key.reducer.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\keyStore\key.reducer.ts">
<file name="key.reducer.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\keyStore\key.reducer.ts">
<metrics statements="32" coveredstatements="32" conditionals="19" coveredconditionals="19" methods="11" coveredmethods="11"/>
<line num="8" count="8" type="stmt"/>
<line num="12" count="8" type="stmt"/>
@ -114,12 +114,12 @@
<line num="101" count="8" type="stmt"/>
<line num="108" count="8" type="stmt"/>
</file>
<file name="key.selector.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\keyStore\key.selector.ts">
<file name="key.selector.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\keyStore\key.selector.ts">
<metrics statements="2" coveredstatements="2" conditionals="0" coveredconditionals="0" methods="2" coveredmethods="2"/>
<line num="5" count="1" type="stmt"/>
<line num="6" count="11" type="stmt"/>
</file>
<file name="key.types.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\keyStore\key.types.ts">
<file name="key.types.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\keyStore\key.types.ts">
<metrics statements="6" coveredstatements="6" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
<line num="1" count="8" type="stmt"/>
<line num="3" count="8" type="stmt"/>
@ -129,9 +129,9 @@
<line num="11" count="8" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.Shared.screenStore.keyStore.tests">
<package name="src.Shared.screenStore.keyStore.tests">
<metrics statements="12" coveredstatements="12" conditionals="1" coveredconditionals="1" methods="5" coveredmethods="5"/>
<file name="key.methods.helpers.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\keyStore\tests\key.methods.helpers.tsx">
<file name="key.methods.helpers.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\keyStore\tests\key.methods.helpers.tsx">
<metrics statements="12" coveredstatements="12" conditionals="1" coveredconditionals="1" methods="5" coveredmethods="5"/>
<line num="6" count="3" type="stmt"/>
<line num="7" count="8" type="stmt"/>
@ -147,9 +147,9 @@
<line num="39" count="72" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.Shared.screenStore.twoPaneElementStore">
<package name="src.Shared.screenStore.paneElementStore">
<metrics statements="23" coveredstatements="23" conditionals="7" coveredconditionals="7" methods="6" coveredmethods="6"/>
<file name="twoPaneElement.action.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\twoPaneElementStore\twoPaneElement.action.ts">
<file name="paneElement.action.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\paneElementStore\paneElement.action.ts">
<metrics statements="6" coveredstatements="6" conditionals="0" coveredconditionals="0" methods="3" coveredmethods="3"/>
<line num="6" count="5" type="stmt"/>
<line num="9" count="34" type="stmt"/>
@ -158,7 +158,7 @@
<line num="29" count="5" type="stmt"/>
<line num="31" count="18" type="stmt"/>
</file>
<file name="twoPaneElement.reducer.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\twoPaneElementStore\twoPaneElement.reducer.ts">
<file name="paneElement.reducer.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\paneElementStore\paneElement.reducer.ts">
<metrics statements="12" coveredstatements="12" conditionals="7" coveredconditionals="7" methods="1" coveredmethods="1"/>
<line num="5" count="8" type="stmt"/>
<line num="9" count="8" type="stmt"/>
@ -173,21 +173,21 @@
<line num="41" count="18" type="stmt"/>
<line num="44" count="279" type="stmt"/>
</file>
<file name="twoPaneElement.selectors.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\twoPaneElementStore\twoPaneElement.selectors.ts">
<file name="paneElement.selectors.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\paneElementStore\paneElement.selectors.ts">
<metrics statements="2" coveredstatements="2" conditionals="0" coveredconditionals="0" methods="2" coveredmethods="2"/>
<line num="5" count="1" type="stmt"/>
<line num="6" count="11" type="stmt"/>
</file>
<file name="twoPaneElement.types.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\twoPaneElementStore\twoPaneElement.types.ts">
<file name="paneElement.types.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\paneElementStore\paneElement.types.ts">
<metrics statements="3" coveredstatements="3" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
<line num="1" count="8" type="stmt"/>
<line num="3" count="8" type="stmt"/>
<line num="5" count="8" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.Shared.screenStore.twoPaneElementStore.tests">
<package name="src.Shared.screenStore.paneElementStore.tests">
<metrics statements="4" coveredstatements="4" conditionals="0" coveredconditionals="0" methods="2" coveredmethods="2"/>
<file name="twoPaneElement.methods.helpers.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\twoPaneElementStore\tests\twoPaneElement.methods.helpers.tsx">
<file name="paneElement.methods.helpers.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\paneElementStore\tests\paneElement.methods.helpers.tsx">
<metrics statements="4" coveredstatements="4" conditionals="0" coveredconditionals="0" methods="2" coveredmethods="2"/>
<line num="4" count="3" type="stmt"/>
<line num="5" count="8" type="stmt"/>
@ -195,21 +195,21 @@
<line num="17" count="4" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.Shared.utilityStore">
<package name="src.Shared.utilityStore">
<metrics statements="12" coveredstatements="12" conditionals="3" coveredconditionals="3" methods="3" coveredmethods="3"/>
<file name="utilityStore.actions.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\utilityStore\utilityStore.actions.ts">
<file name="utilityStore.actions.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\utilityStore\utilityStore.actions.ts">
<metrics statements="2" coveredstatements="2" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
<line num="4" count="2" type="stmt"/>
<line num="5" count="3" type="stmt"/>
</file>
<file name="utilityStore.methods.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\utilityStore\utilityStore.methods.ts">
<file name="utilityStore.methods.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\utilityStore\utilityStore.methods.ts">
<metrics statements="4" coveredstatements="4" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
<line num="4" count="1" type="stmt"/>
<line num="5" count="1" type="stmt"/>
<line num="8" count="1" type="stmt"/>
<line num="14" count="1" type="stmt"/>
</file>
<file name="utilityStore.reducer.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\utilityStore\utilityStore.reducer.ts">
<file name="utilityStore.reducer.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\utilityStore\utilityStore.reducer.ts">
<metrics statements="5" coveredstatements="5" conditionals="3" coveredconditionals="3" methods="1" coveredmethods="1"/>
<line num="3" count="8" type="stmt"/>
<line num="7" count="8" type="stmt"/>
@ -217,29 +217,85 @@
<line num="13" count="3" type="stmt"/>
<line num="18" count="338" type="stmt"/>
</file>
<file name="utilityStore.types.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\utilityStore\utilityStore.types.ts">
<file name="utilityStore.types.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\utilityStore\utilityStore.types.ts">
<metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
<line num="1" count="8" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.components.dualApp">
<metrics statements="9" coveredstatements="9" conditionals="6" coveredconditionals="4" methods="4" coveredmethods="2"/>
<file name="DualApp.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\dualApp\DualApp.tsx">
<metrics statements="9" coveredstatements="9" conditionals="6" coveredconditionals="4" methods="4" coveredmethods="2"/>
<line num="32" count="1" type="stmt"/>
<line num="34" count="1" type="stmt"/>
<line num="36" count="1" type="stmt"/>
<line num="37" count="1" type="stmt"/>
<line num="39" count="1" type="stmt"/>
<line num="40" count="1" type="cond" truecount="3" falsecount="1"/>
<line num="41" count="1" type="stmt"/>
<line num="42" count="1" type="stmt"/>
<line num="46" count="1" type="stmt"/>
<package name="src.components.paneHeader">
<metrics statements="4" coveredstatements="3" conditionals="2" coveredconditionals="1" methods="2" coveredmethods="1"/>
<file name="PaneHeader.style.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneHeader\PaneHeader.style.ts">
<metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
<line num="3" count="1" type="stmt"/>
</file>
<file name="PaneHeader.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneHeader\PaneHeader.tsx">
<metrics statements="3" coveredstatements="2" conditionals="2" coveredconditionals="1" methods="2" coveredmethods="1"/>
<line num="6" count="1" type="stmt"/>
<line num="7" count="2" type="stmt"/>
<line num="15" count="0" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.components.dualHub">
<package name="src.components.paneHeaderContainer">
<metrics statements="5" coveredstatements="4" conditionals="10" coveredconditionals="3" methods="2" coveredmethods="1"/>
<file name="PaneHeaderContainer.style.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneHeaderContainer\PaneHeaderContainer.style.ts">
<metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
<line num="3" count="1" type="stmt"/>
</file>
<file name="PaneHeaderContainer.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneHeaderContainer\PaneHeaderContainer.tsx">
<metrics statements="4" coveredstatements="3" conditionals="10" coveredconditionals="3" methods="2" coveredmethods="1"/>
<line num="14" count="1" type="stmt"/>
<line num="16" count="2" type="stmt"/>
<line num="18" count="2" type="stmt"/>
<line num="36" count="0" type="stmt"/>
</file>
</package>
<package name="src.components.paneOverlay">
<metrics statements="6" coveredstatements="3" conditionals="6" coveredconditionals="2" methods="2" coveredmethods="1"/>
<file name="PaneOverlay.styles.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneOverlay\PaneOverlay.styles.ts">
<metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
<line num="3" count="1" type="stmt"/>
</file>
<file name="PaneOverlay.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneOverlay\PaneOverlay.tsx">
<metrics statements="5" coveredstatements="2" conditionals="6" coveredconditionals="2" methods="2" coveredmethods="1"/>
<line num="31" count="1" type="stmt"/>
<line num="32" count="1" type="stmt"/>
<line num="39" count="0" type="cond" truecount="0" falsecount="2"/>
<line num="42" count="0" type="cond" truecount="0" falsecount="2"/>
<line num="44" count="0" type="stmt"/>
</file>
</package>
<package name="src.components.paneRenderer">
<metrics statements="8" coveredstatements="7" conditionals="6" coveredconditionals="4" methods="5" coveredmethods="4"/>
<file name="PaneRenderer.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneRenderer\PaneRenderer.tsx">
<metrics statements="8" coveredstatements="7" conditionals="6" coveredconditionals="4" methods="5" coveredmethods="4"/>
<line num="13" count="1" type="stmt"/>
<line num="14" count="2" type="stmt"/>
<line num="16" count="2" type="stmt"/>
<line num="17" count="2" type="stmt"/>
<line num="18" count="2" type="stmt"/>
<line num="22" count="2" type="stmt"/>
<line num="28" count="0" type="cond" truecount="0" falsecount="2"/>
<line num="42" count="1" type="stmt"/>
</file>
</package>
<package name="src.components.twoPaneApp">
<metrics statements="9" coveredstatements="9" conditionals="6" coveredconditionals="4" methods="4" coveredmethods="2"/>
<file name="TwoPaneApp.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\twoPaneApp\TwoPaneApp.tsx">
<metrics statements="9" coveredstatements="9" conditionals="6" coveredconditionals="4" methods="4" coveredmethods="2"/>
<line num="11" count="1" type="stmt"/>
<line num="13" count="1" type="stmt"/>
<line num="15" count="1" type="stmt"/>
<line num="16" count="1" type="stmt"/>
<line num="18" count="1" type="stmt"/>
<line num="19" count="1" type="cond" truecount="3" falsecount="1"/>
<line num="20" count="1" type="stmt"/>
<line num="21" count="1" type="stmt"/>
<line num="25" count="1" type="stmt"/>
</file>
</package>
<package name="src.components.twoPaneHub">
<metrics statements="18" coveredstatements="13" conditionals="2" coveredconditionals="0" methods="6" coveredmethods="4"/>
<file name="DualHub.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\dualHub\DualHub.tsx">
<file name="TwoPaneHub.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\twoPaneHub\TwoPaneHub.tsx">
<metrics statements="18" coveredstatements="13" conditionals="2" coveredconditionals="0" methods="6" coveredmethods="4"/>
<line num="18" count="1" type="stmt"/>
<line num="20" count="2" type="stmt"/>
@ -261,106 +317,9 @@
<line num="54" count="2" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.components.screenHeader">
<metrics statements="4" coveredstatements="3" conditionals="2" coveredconditionals="1" methods="2" coveredmethods="1"/>
<file name="ScreenHeader.style.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenHeader\ScreenHeader.style.ts">
<metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
<line num="3" count="1" type="stmt"/>
</file>
<file name="ScreenHeader.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenHeader\ScreenHeader.tsx">
<metrics statements="3" coveredstatements="2" conditionals="2" coveredconditionals="1" methods="2" coveredmethods="1"/>
<line num="9" count="1" type="stmt"/>
<line num="10" count="2" type="stmt"/>
<line num="18" count="0" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.components.screenHeaderContainer">
<metrics statements="5" coveredstatements="4" conditionals="10" coveredconditionals="3" methods="2" coveredmethods="1"/>
<file name="ScreenHeaderContainer.style.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenHeaderContainer\ScreenHeaderContainer.style.ts">
<metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
<line num="3" count="1" type="stmt"/>
</file>
<file name="ScreenHeaderContainer.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenHeaderContainer\ScreenHeaderContainer.tsx">
<metrics statements="4" coveredstatements="3" conditionals="10" coveredconditionals="3" methods="2" coveredmethods="1"/>
<line num="14" count="1" type="stmt"/>
<line num="16" count="2" type="stmt"/>
<line num="18" count="2" type="stmt"/>
<line num="36" count="0" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.components.screenOverlay">
<metrics statements="6" coveredstatements="3" conditionals="6" coveredconditionals="2" methods="2" coveredmethods="1"/>
<file name="ScreenOverlay.styles.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenOverlay\ScreenOverlay.styles.ts">
<metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
<line num="3" count="1" type="stmt"/>
</file>
<file name="ScreenOverlay.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenOverlay\ScreenOverlay.tsx">
<metrics statements="5" coveredstatements="2" conditionals="6" coveredconditionals="2" methods="2" coveredmethods="1"/>
<line num="31" count="1" type="stmt"/>
<line num="32" count="1" type="stmt"/>
<line num="39" count="0" type="cond" truecount="0" falsecount="2"/>
<line num="42" count="0" type="cond" truecount="0" falsecount="2"/>
<line num="44" count="0" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.components.screenRenderer">
<metrics statements="8" coveredstatements="7" conditionals="6" coveredconditionals="4" methods="5" coveredmethods="4"/>
<file name="ScreenRenderer.tsx" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenRenderer\ScreenRenderer.tsx">
<metrics statements="8" coveredstatements="7" conditionals="6" coveredconditionals="4" methods="5" coveredmethods="4"/>
<line num="13" count="1" type="stmt"/>
<line num="14" count="2" type="stmt"/>
<line num="16" count="2" type="stmt"/>
<line num="17" count="2" type="stmt"/>
<line num="18" count="2" type="stmt"/>
<line num="22" count="2" type="stmt"/>
<line num="28" count="0" type="cond" truecount="0" falsecount="2"/>
<line num="42" count="1" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.dualScreen.dualScreenStore">
<package name="src.onePane.onePaneStore">
<metrics statements="35" coveredstatements="35" conditionals="10" coveredconditionals="9" methods="12" coveredmethods="12"/>
<file name="dualScreen.methods.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\dualScreen\dualScreenStore\dualScreen.methods.ts">
<metrics statements="35" coveredstatements="35" conditionals="10" coveredconditionals="9" methods="12" coveredmethods="12"/>
<line num="14" count="3" type="cond" truecount="1" falsecount="0"/>
<line num="16" count="8" type="stmt"/>
<line num="17" count="8" type="stmt"/>
<line num="18" count="8" type="cond" truecount="2" falsecount="0"/>
<line num="19" count="4" type="stmt"/>
<line num="27" count="3" type="cond" truecount="0" falsecount="1"/>
<line num="28" count="4" type="stmt"/>
<line num="29" count="11" type="stmt"/>
<line num="31" count="7" type="cond" truecount="2" falsecount="0"/>
<line num="32" count="1" type="stmt"/>
<line num="34" count="3" type="stmt"/>
<line num="40" count="3" type="stmt"/>
<line num="41" count="1" type="stmt"/>
<line num="42" count="1" type="stmt"/>
<line num="43" count="5" type="cond" truecount="4" falsecount="0"/>
<line num="44" count="3" type="stmt"/>
<line num="54" count="3" type="stmt"/>
<line num="55" count="2" type="stmt"/>
<line num="56" count="10" type="stmt"/>
<line num="58" count="2" type="stmt"/>
<line num="59" count="5" type="stmt"/>
<line num="60" count="5" type="stmt"/>
<line num="62" count="2" type="stmt"/>
<line num="68" count="3" type="stmt"/>
<line num="69" count="2" type="stmt"/>
<line num="70" count="8" type="stmt"/>
<line num="72" count="2" type="stmt"/>
<line num="73" count="2" type="stmt"/>
<line num="74" count="2" type="stmt"/>
<line num="81" count="3" type="stmt"/>
<line num="82" count="2" type="stmt"/>
<line num="88" count="3" type="stmt"/>
<line num="89" count="2" type="stmt"/>
<line num="92" count="3" type="stmt"/>
<line num="104" count="3" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.singleScreen.singleScreenStore">
<metrics statements="35" coveredstatements="35" conditionals="10" coveredconditionals="9" methods="12" coveredmethods="12"/>
<file name="singleScreen.methods.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\singleScreen\singleScreenStore\singleScreen.methods.ts">
<file name="onePane.methods.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\onePane\onePaneStore\onePane.methods.ts">
<metrics statements="35" coveredstatements="35" conditionals="10" coveredconditionals="9" methods="12" coveredmethods="12"/>
<line num="15" count="3" type="cond" truecount="1" falsecount="0"/>
<line num="16" count="8" type="stmt"/>
@ -399,9 +358,50 @@
<line num="107" count="3" type="stmt"/>
</file>
</package>
<package name="twopane-navigation.utilities">
<package name="src.twoPane.twoPaneStore">
<metrics statements="35" coveredstatements="35" conditionals="10" coveredconditionals="9" methods="12" coveredmethods="12"/>
<file name="twoPane.methods.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\twoPane\twoPaneStore\twoPane.methods.ts">
<metrics statements="35" coveredstatements="35" conditionals="10" coveredconditionals="9" methods="12" coveredmethods="12"/>
<line num="14" count="3" type="cond" truecount="1" falsecount="0"/>
<line num="16" count="8" type="stmt"/>
<line num="17" count="8" type="stmt"/>
<line num="18" count="8" type="cond" truecount="2" falsecount="0"/>
<line num="19" count="4" type="stmt"/>
<line num="27" count="3" type="cond" truecount="0" falsecount="1"/>
<line num="28" count="4" type="stmt"/>
<line num="29" count="11" type="stmt"/>
<line num="31" count="7" type="cond" truecount="2" falsecount="0"/>
<line num="32" count="1" type="stmt"/>
<line num="34" count="3" type="stmt"/>
<line num="40" count="3" type="stmt"/>
<line num="41" count="1" type="stmt"/>
<line num="42" count="1" type="stmt"/>
<line num="43" count="5" type="cond" truecount="4" falsecount="0"/>
<line num="44" count="3" type="stmt"/>
<line num="54" count="3" type="stmt"/>
<line num="55" count="2" type="stmt"/>
<line num="56" count="10" type="stmt"/>
<line num="58" count="2" type="stmt"/>
<line num="59" count="5" type="stmt"/>
<line num="60" count="5" type="stmt"/>
<line num="62" count="2" type="stmt"/>
<line num="68" count="3" type="stmt"/>
<line num="69" count="2" type="stmt"/>
<line num="70" count="8" type="stmt"/>
<line num="72" count="2" type="stmt"/>
<line num="73" count="2" type="stmt"/>
<line num="74" count="2" type="stmt"/>
<line num="81" count="3" type="stmt"/>
<line num="82" count="2" type="stmt"/>
<line num="88" count="3" type="stmt"/>
<line num="89" count="2" type="stmt"/>
<line num="92" count="3" type="stmt"/>
<line num="104" count="3" type="stmt"/>
</file>
</package>
<package name="src.utilities">
<metrics statements="42" coveredstatements="40" conditionals="26" coveredconditionals="25" methods="10" coveredmethods="9"/>
<file name="auto.methods.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\utilities\auto.methods.ts">
<file name="autoPane.methods.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\utilities\autoPane.methods.ts">
<metrics statements="34" coveredstatements="34" conditionals="24" coveredconditionals="24" methods="8" coveredmethods="8"/>
<line num="11" count="1" type="cond" truecount="2" falsecount="0"/>
<line num="12" count="2" type="cond" truecount="2" falsecount="0"/>
@ -438,17 +438,17 @@
<line num="103" count="1" type="stmt"/>
<line num="116" count="1" type="stmt"/>
</file>
<file name="extensionMethods.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\utilities\extensionMethods.ts">
<file name="extensionMethods.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\utilities\extensionMethods.ts">
<metrics statements="4" coveredstatements="3" conditionals="2" coveredconditionals="1" methods="1" coveredmethods="1"/>
<line num="11" count="8" type="stmt"/>
<line num="12" count="8" type="cond" truecount="1" falsecount="1"/>
<line num="13" count="8" type="stmt"/>
<line num="16" count="0" type="stmt"/>
</file>
<file name="interfaces.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\utilities\interfaces.ts">
<file name="interfaces.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\utilities\interfaces.ts">
<metrics statements="0" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
</file>
<file name="utility.methods.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\utilities\utility.methods.ts">
<file name="utility.methods.ts" path="C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\utilities\utility.methods.ts">
<metrics statements="4" coveredstatements="3" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="0"/>
<line num="4" count="1" type="stmt"/>
<line num="5" count="0" type="stmt"/>

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -72,7 +72,7 @@
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="twopane-navigation"><a href="twopane-navigation\index.html">twopane-navigation</a></td>
<td class="file high" data-value="src"><a href="src\index.html">src</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -87,7 +87,7 @@
</tr>
<tr>
<td class="file high" data-value="twopane-navigation/Shared/screenStore/headerStore"><a href="twopane-navigation\Shared\screenStore\headerStore\index.html">twopane-navigation/Shared/screenStore/headerStore</a></td>
<td class="file high" data-value="src/Shared/screenStore/headerStore"><a href="src\Shared\screenStore\headerStore\index.html">src/Shared/screenStore/headerStore</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -102,7 +102,7 @@
</tr>
<tr>
<td class="file high" data-value="twopane-navigation/Shared/screenStore/headerStore/tests"><a href="twopane-navigation\Shared\screenStore\headerStore\tests\index.html">twopane-navigation/Shared/screenStore/headerStore/tests</a></td>
<td class="file high" data-value="src/Shared/screenStore/headerStore/tests"><a href="src\Shared\screenStore\headerStore\tests\index.html">src/Shared/screenStore/headerStore/tests</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -117,7 +117,7 @@
</tr>
<tr>
<td class="file high" data-value="twopane-navigation/Shared/screenStore/keyStore"><a href="twopane-navigation\Shared\screenStore\keyStore\index.html">twopane-navigation/Shared/screenStore/keyStore</a></td>
<td class="file high" data-value="src/Shared/screenStore/keyStore"><a href="src\Shared\screenStore\keyStore\index.html">src/Shared/screenStore/keyStore</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -132,7 +132,7 @@
</tr>
<tr>
<td class="file high" data-value="twopane-navigation/Shared/screenStore/keyStore/tests"><a href="twopane-navigation\Shared\screenStore\keyStore\tests\index.html">twopane-navigation/Shared/screenStore/keyStore/tests</a></td>
<td class="file high" data-value="src/Shared/screenStore/keyStore/tests"><a href="src\Shared\screenStore\keyStore\tests\index.html">src/Shared/screenStore/keyStore/tests</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -147,7 +147,7 @@
</tr>
<tr>
<td class="file high" data-value="twopane-navigation/Shared/screenStore/twoPaneElementStore"><a href="twopane-navigation\Shared\screenStore\twoPaneElementStore\index.html">twopane-navigation/Shared/screenStore/twoPaneElementStore</a></td>
<td class="file high" data-value="src/Shared/screenStore/paneElementStore"><a href="src\Shared\screenStore\paneElementStore\index.html">src/Shared/screenStore/paneElementStore</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -162,7 +162,7 @@
</tr>
<tr>
<td class="file high" data-value="twopane-navigation/Shared/screenStore/twoPaneElementStore/tests"><a href="twopane-navigation\Shared\screenStore\twoPaneElementStore\tests\index.html">twopane-navigation/Shared/screenStore/twoPaneElementStore/tests</a></td>
<td class="file high" data-value="src/Shared/screenStore/paneElementStore/tests"><a href="src\Shared\screenStore\paneElementStore\tests\index.html">src/Shared/screenStore/paneElementStore/tests</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -177,7 +177,7 @@
</tr>
<tr>
<td class="file high" data-value="twopane-navigation/Shared/utilityStore"><a href="twopane-navigation\Shared\utilityStore\index.html">twopane-navigation/Shared/utilityStore</a></td>
<td class="file high" data-value="src/Shared/utilityStore"><a href="src\Shared\utilityStore\index.html">src/Shared/utilityStore</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -192,37 +192,7 @@
</tr>
<tr>
<td class="file high" data-value="twopane-navigation/components/dualApp"><a href="twopane-navigation\components\dualApp\index.html">twopane-navigation/components/dualApp</a></td>
<td data-value="81.82" class="pic high">
<div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
</td>
<td data-value="81.82" class="pct high">81.82%</td>
<td data-value="11" class="abs high">9/11</td>
<td data-value="66.67" class="pct medium">66.67%</td>
<td data-value="6" class="abs medium">4/6</td>
<td data-value="50" class="pct medium">50%</td>
<td data-value="4" class="abs medium">2/4</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="9" class="abs high">9/9</td>
</tr>
<tr>
<td class="file medium" data-value="twopane-navigation/components/dualHub"><a href="twopane-navigation\components\dualHub\index.html">twopane-navigation/components/dualHub</a></td>
<td data-value="72.22" class="pic medium">
<div class="chart"><div class="cover-fill" style="width: 72%"></div><div class="cover-empty" style="width: 28%"></div></div>
</td>
<td data-value="72.22" class="pct medium">72.22%</td>
<td data-value="18" class="abs medium">13/18</td>
<td data-value="0" class="pct low">0%</td>
<td data-value="2" class="abs low">0/2</td>
<td data-value="66.67" class="pct medium">66.67%</td>
<td data-value="6" class="abs medium">4/6</td>
<td data-value="72.22" class="pct medium">72.22%</td>
<td data-value="18" class="abs medium">13/18</td>
</tr>
<tr>
<td class="file medium" data-value="twopane-navigation/components/screenHeader"><a href="twopane-navigation\components\screenHeader\index.html">twopane-navigation/components/screenHeader</a></td>
<td class="file medium" data-value="src/components/paneHeader"><a href="src\components\paneHeader\index.html">src/components/paneHeader</a></td>
<td data-value="75" class="pic medium">
<div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
</td>
@ -237,7 +207,7 @@
</tr>
<tr>
<td class="file high" data-value="twopane-navigation/components/screenHeaderContainer"><a href="twopane-navigation\components\screenHeaderContainer\index.html">twopane-navigation/components/screenHeaderContainer</a></td>
<td class="file high" data-value="src/components/paneHeaderContainer"><a href="src\components\paneHeaderContainer\index.html">src/components/paneHeaderContainer</a></td>
<td data-value="80" class="pic high">
<div class="chart"><div class="cover-fill" style="width: 80%"></div><div class="cover-empty" style="width: 20%"></div></div>
</td>
@ -252,7 +222,7 @@
</tr>
<tr>
<td class="file medium" data-value="twopane-navigation/components/screenOverlay"><a href="twopane-navigation\components\screenOverlay\index.html">twopane-navigation/components/screenOverlay</a></td>
<td class="file medium" data-value="src/components/paneOverlay"><a href="src\components\paneOverlay\index.html">src/components/paneOverlay</a></td>
<td data-value="50" class="pic medium">
<div class="chart"><div class="cover-fill" style="width: 50%"></div><div class="cover-empty" style="width: 50%"></div></div>
</td>
@ -267,7 +237,7 @@
</tr>
<tr>
<td class="file high" data-value="twopane-navigation/components/screenRenderer"><a href="twopane-navigation\components\screenRenderer\index.html">twopane-navigation/components/screenRenderer</a></td>
<td class="file high" data-value="src/components/paneRenderer"><a href="src\components\paneRenderer\index.html">src/components/paneRenderer</a></td>
<td data-value="90" class="pic high">
<div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
</td>
@ -282,7 +252,37 @@
</tr>
<tr>
<td class="file high" data-value="twopane-navigation/dualScreen/dualScreenStore"><a href="twopane-navigation\dualScreen\dualScreenStore\index.html">twopane-navigation/dualScreen/dualScreenStore</a></td>
<td class="file high" data-value="src/components/twoPaneApp"><a href="src\components\twoPaneApp\index.html">src/components/twoPaneApp</a></td>
<td data-value="81.82" class="pic high">
<div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
</td>
<td data-value="81.82" class="pct high">81.82%</td>
<td data-value="11" class="abs high">9/11</td>
<td data-value="66.67" class="pct medium">66.67%</td>
<td data-value="6" class="abs medium">4/6</td>
<td data-value="50" class="pct medium">50%</td>
<td data-value="4" class="abs medium">2/4</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="9" class="abs high">9/9</td>
</tr>
<tr>
<td class="file medium" data-value="src/components/twoPaneHub"><a href="src\components\twoPaneHub\index.html">src/components/twoPaneHub</a></td>
<td data-value="72.22" class="pic medium">
<div class="chart"><div class="cover-fill" style="width: 72%"></div><div class="cover-empty" style="width: 28%"></div></div>
</td>
<td data-value="72.22" class="pct medium">72.22%</td>
<td data-value="18" class="abs medium">13/18</td>
<td data-value="0" class="pct low">0%</td>
<td data-value="2" class="abs low">0/2</td>
<td data-value="66.67" class="pct medium">66.67%</td>
<td data-value="6" class="abs medium">4/6</td>
<td data-value="72.22" class="pct medium">72.22%</td>
<td data-value="18" class="abs medium">13/18</td>
</tr>
<tr>
<td class="file high" data-value="src/onePane/onePaneStore"><a href="src\onePane\onePaneStore\index.html">src/onePane/onePaneStore</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -297,7 +297,7 @@
</tr>
<tr>
<td class="file high" data-value="twopane-navigation/singleScreen/singleScreenStore"><a href="twopane-navigation\singleScreen\singleScreenStore\index.html">twopane-navigation/singleScreen/singleScreenStore</a></td>
<td class="file high" data-value="src/twoPane/twoPaneStore"><a href="src\twoPane\twoPaneStore\index.html">src/twoPane/twoPaneStore</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -312,7 +312,7 @@
</tr>
<tr>
<td class="file high" data-value="twopane-navigation/utilities"><a href="twopane-navigation\utilities\index.html">twopane-navigation/utilities</a></td>
<td class="file high" data-value="src/utilities"><a href="src\utilities\index.html">src/utilities</a></td>
<td data-value="95.24" class="pic high">
<div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
</td>
@ -334,7 +334,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/headerStore/header.actions.ts</title>
<title>Code coverage report for src/Shared/screenStore/headerStore/header.actions.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/screenStore/headerStore</a> header.actions.ts</h1>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/screenStore/headerStore</a> header.actions.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -128,7 +128,7 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IHeaderAction, IHeader } from "./header.interface";
import { PUSH_HEADER, REPLACE_HEADER, REMOVE_KEY_HEADER } from "./header.types";
import { IKeyAction, IKeyOnlyAction } from "../keyStore/key.interface";
import { IKeyOnlyAction } from "../keyStore/key.interface";
&nbsp;
export const pushHeader = (
key: string,
@ -168,7 +168,7 @@ export const removeHeaderByKey = (
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/headerStore/header.reducer.ts</title>
<title>Code coverage report for src/Shared/screenStore/headerStore/header.reducer.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/screenStore/headerStore</a> header.reducer.ts</h1>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/screenStore/headerStore</a> header.reducer.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -207,7 +207,7 @@ export default headerReducer;
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/headerStore/header.selector.ts</title>
<title>Code coverage report for src/Shared/screenStore/headerStore/header.selector.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/screenStore/headerStore</a> header.selector.ts</h1>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/screenStore/headerStore</a> header.selector.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -84,7 +84,7 @@ export const getHeaderSelector = (): IHeaderState =&gt; {
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/headerStore/header.types.ts</title>
<title>Code coverage report for src/Shared/screenStore/headerStore/header.types.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/screenStore/headerStore</a> header.types.ts</h1>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/screenStore/headerStore</a> header.types.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -84,7 +84,7 @@ export const REMOVE_KEY_HEADER: string = 'REMOVE_KEY_HEADER';
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/headerStore</title>
<title>Code coverage report for src/Shared/screenStore/headerStore</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\index.html">All files</a> twopane-navigation/Shared/screenStore/headerStore</h1>
<h1><a href="..\..\..\..\index.html">All files</a> src/Shared/screenStore/headerStore</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -139,7 +139,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/headerStore/tests/header.methods.helpers.tsx</title>
<title>Code coverage report for src/Shared/screenStore/headerStore/tests/header.methods.helpers.tsx</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/screenStore/headerStore/tests</a> header.methods.helpers.tsx</h1>
<h1><a href="..\..\..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/screenStore/headerStore/tests</a> header.methods.helpers.tsx</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -117,7 +117,7 @@ export const headerObjectBuilder = (key: string, header: IHeader): IHeaderObject
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/headerStore/tests</title>
<title>Code coverage report for src/Shared/screenStore/headerStore/tests</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\..\index.html">All files</a> twopane-navigation/Shared/screenStore/headerStore/tests</h1>
<h1><a href="..\..\..\..\..\index.html">All files</a> src/Shared/screenStore/headerStore/tests</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -94,7 +94,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/keyStore</title>
<title>Code coverage report for src/Shared/screenStore/keyStore</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\index.html">All files</a> twopane-navigation/Shared/screenStore/keyStore</h1>
<h1><a href="..\..\..\..\index.html">All files</a> src/Shared/screenStore/keyStore</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -139,7 +139,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/keyStore/key.actions.ts</title>
<title>Code coverage report for src/Shared/screenStore/keyStore/key.actions.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/screenStore/keyStore</a> key.actions.ts</h1>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/screenStore/keyStore</a> key.actions.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -174,12 +174,12 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { screenType } from "../../../utilities/interfaces";
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { paneType } from "../../../utilities/interfaces";
import { IKeyAction, IScreenOnlyAction, IKeyScreenAction } from "./key.interface";
import { PUSH_KEY, POP_KEY, MOVE_TO_FRONT_KEY, REMOVE_KEY, CHANGE_SCREEN_KEY, POP_TO_FRONT_KEY } from "./key.types";
&nbsp;
export const pushKey = (
screen: screenType,
screen: paneType,
key: string,
isMerge: boolean
): IKeyAction =&gt; ({
@ -194,7 +194,7 @@ export const pushKey = (
/**
* Removes all elements of the stack and returns element in index 0
*/
export const popToFront = (screen: screenType): IScreenOnlyAction =&gt; ({
export const popToFront = (screen: paneType): IScreenOnlyAction =&gt; ({
type: POP_TO_FRONT_KEY,
payload: {
screen: screen
@ -205,14 +205,14 @@ export const popToFront = (screen: screenType): IScreenOnlyAction =&gt; ({
/**
* Go back one element in the stack
*/
export const popScreen = (screen: screenType): IScreenOnlyAction =&gt; ({
export const popScreen = (screen: paneType): IScreenOnlyAction =&gt; ({
type: POP_KEY,
payload: {
screen: screen
}
});
&nbsp;
export const moveToFront = (screen: screenType,
export const moveToFront = (screen: paneType,
key: string
): IKeyScreenAction =&gt; ({
type: MOVE_TO_FRONT_KEY,
@ -222,7 +222,7 @@ export const moveToFront = (screen: screenType,
}
});
&nbsp;
export const changeScreen = (screen: screenType,
export const changeScreen = (screen: paneType,
key: string
): IKeyScreenAction =&gt; ({
type: CHANGE_SCREEN_KEY,
@ -240,7 +240,7 @@ export const changeScreen = (screen: screenType,
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/keyStore/key.reducer.ts</title>
<title>Code coverage report for src/Shared/screenStore/keyStore/key.reducer.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/screenStore/keyStore</a> key.reducer.ts</h1>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/screenStore/keyStore</a> key.reducer.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -285,7 +285,7 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
screenType,
paneType,
} from '../../../utilities/interfaces';
import { IKeyState, IKeyAction, IKeyObject } from './key.interface';
import _ from 'lodash';
@ -312,59 +312,59 @@ const keyReducers = (
};
}
case POP_TO_FRONT_KEY: {
const singleScreenState = state.keys.filter(x =&gt; x.screen === screenType.SINGLE);
const dualScreenState = state.keys.filter(x =&gt; x.screen === screenType.DUAL);
const onePaneState = state.keys.filter(x =&gt; x.screen === paneType.ONE);
const twoPaneState = state.keys.filter(x =&gt; x.screen === paneType.TWO);
&nbsp;
if (action.payload.screen === screenType.SINGLE) {
if (action.payload.screen === paneType.ONE) {
return {
...state, //state retains state for all variables
keys: [singleScreenState[0], ...dualScreenState]
keys: [onePaneState[0], ...twoPaneState]
};
};
&nbsp;
return {
...state, //state retains state for all variables
keys: [...singleScreenState, dualScreenState[0]]
keys: [...onePaneState, twoPaneState[0]]
};
}
case POP_KEY: {
const singleScreenState = state.keys.filter(x =&gt; x.screen === screenType.SINGLE);
const dualScreenState = state.keys.filter(x =&gt; x.screen === screenType.DUAL);
const onePaneState = state.keys.filter(x =&gt; x.screen === paneType.ONE);
const twoPaneState = state.keys.filter(x =&gt; x.screen === paneType.TWO);
&nbsp;
if (action.payload.screen === screenType.SINGLE) {
singleScreenState.pop();
if (action.payload.screen === paneType.ONE) {
onePaneState.pop();
} else {
dualScreenState.pop();
twoPaneState.pop();
}
&nbsp;
return {
...state,
keys: [...singleScreenState, ...dualScreenState]
keys: [...onePaneState, ...twoPaneState]
};
}
case MOVE_TO_FRONT_KEY: {
//TODO: REMOVE LODASH AND CREATE OUR OWN
const singleScreenState = state.keys.filter(x =&gt; x.screen === screenType.SINGLE);
const dualScreenState = state.keys.filter(x =&gt; x.screen === screenType.DUAL);
const onePaneState = state.keys.filter(x =&gt; x.screen === paneType.ONE);
const twoPaneState = state.keys.filter(x =&gt; x.screen === paneType.TWO);
&nbsp;
if (action.payload.screen === screenType.SINGLE) {
const sorted = _.sortBy(singleScreenState, function (item) {
if (action.payload.screen === paneType.ONE) {
const sorted = _.sortBy(onePaneState, function (item) {
return item.key === `${action.payload.key}` ? 1 : 0;
});
&nbsp;
return {
...state, //retains state for all variables
keys: [...sorted, ...dualScreenState]
keys: [...sorted, ...twoPaneState]
};
};
&nbsp;
const sorted = _.sortBy(dualScreenState, function (item) {
const sorted = _.sortBy(twoPaneState, function (item) {
return item.key === `${action.payload.key}` ? 1 : 0;
});
&nbsp;
return {
...state, //retains state for all variables
keys: [...singleScreenState, ...sorted]
keys: [...onePaneState, ...sorted]
};
}
case CHANGE_SCREEN_KEY: {
@ -405,7 +405,7 @@ export default keyReducers;</pre></td></tr></table></pre>
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/keyStore/key.selector.ts</title>
<title>Code coverage report for src/Shared/screenStore/keyStore/key.selector.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/screenStore/keyStore</a> key.selector.ts</h1>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/screenStore/keyStore</a> key.selector.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -84,7 +84,7 @@ export const getScreenKeyState = (): IKeyState =&gt; {
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/keyStore/key.types.ts</title>
<title>Code coverage report for src/Shared/screenStore/keyStore/key.types.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/screenStore/keyStore</a> key.types.ts</h1>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/screenStore/keyStore</a> key.types.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -96,7 +96,7 @@ export const CHANGE_SCREEN_KEY: string = 'CHANGE_SCREEN_KEY';
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/keyStore/tests</title>
<title>Code coverage report for src/Shared/screenStore/keyStore/tests</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\..\index.html">All files</a> twopane-navigation/Shared/screenStore/keyStore/tests</h1>
<h1><a href="..\..\..\..\..\index.html">All files</a> src/Shared/screenStore/keyStore/tests</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -94,7 +94,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/keyStore/tests/key.methods.helpers.tsx</title>
<title>Code coverage report for src/Shared/screenStore/keyStore/tests/key.methods.helpers.tsx</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/screenStore/keyStore/tests</a> key.methods.helpers.tsx</h1>
<h1><a href="..\..\..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/screenStore/keyStore/tests</a> key.methods.helpers.tsx</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -137,11 +137,11 @@
<span class="cline-any cline-yes">72x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IKeyAction, IKeyState, IKeyObject } from '../key.interface';
import { screenType } from '../../../../utilities/interfaces';
import { paneType } from '../../../../utilities/interfaces';
import { store } from '../../../../appStore';
import * as keyActions from '../key.actions';
&nbsp;
export const KeyActionBuilder = (type: string, screen: screenType, key: string, isMerge: boolean): IKeyAction =&gt; {
export const KeyActionBuilder = (type: string, screen: paneType, key: string, isMerge: boolean): IKeyAction =&gt; {
return {
type: type,
payload: {
@ -155,7 +155,7 @@ export const KeyActionBuilder = (type: string, screen: screenType, key: string,
* mocks keyState building 3 objects for the final state
*/
//TODO: TURN INTO FOR LOOP AUTO INCREMENT FUNCTION
export const mockKeyState = (screen: screenType, isMerge: boolean, prependKey: string = ''): IKeyState =&gt; {
export const mockKeyState = (screen: paneType, isMerge: boolean, prependKey: string = ''): IKeyState =&gt; {
const first = keyObjectBuilder(`${prependKey}first`, isMerge, screen)
const second = keyObjectBuilder(`${prependKey}second`, isMerge, screen)
const third = keyObjectBuilder(`${prependKey}third`, isMerge, screen)
@ -164,7 +164,7 @@ export const mockKeyState = (screen: screenType, isMerge: boolean, prependKey: s
}
}
&nbsp;
export const keyObjectBuilder = (key: string, isMerge: boolean, screen: screenType): IKeyObject =&gt; {
export const keyObjectBuilder = (key: string, isMerge: boolean, screen: paneType): IKeyObject =&gt; {
return {
key: key,
isMerge: isMerge,
@ -172,7 +172,7 @@ export const keyObjectBuilder = (key: string, isMerge: boolean, screen: screenTy
}
}
&nbsp;
export const populateKeyStore3 = (screen: screenType, isMerge: boolean) =&gt; {
export const populateKeyStore3 = (screen: paneType, isMerge: boolean) =&gt; {
const keyState = mockKeyState(screen, isMerge);
keyState.keys.map(val =&gt; store.dispatch(keyActions.pushKey(val.screen, val.key, val.isMerge)))
}
@ -183,7 +183,7 @@ export const populateKeyStore3 = (screen: screenType, isMerge: boolean) =&gt; {
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/twoPaneElementStore</title>
<title>Code coverage report for src/Shared/screenStore/paneElementStore</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\index.html">All files</a> twopane-navigation/Shared/screenStore/twoPaneElementStore</h1>
<h1><a href="..\..\..\..\index.html">All files</a> src/Shared/screenStore/paneElementStore</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -72,7 +72,7 @@
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="twoPaneElement.action.ts"><a href="twoPaneElement.action.ts.html">twoPaneElement.action.ts</a></td>
<td class="file high" data-value="paneElement.action.ts"><a href="paneElement.action.ts.html">paneElement.action.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -87,7 +87,7 @@
</tr>
<tr>
<td class="file high" data-value="twoPaneElement.reducer.ts"><a href="twoPaneElement.reducer.ts.html">twoPaneElement.reducer.ts</a></td>
<td class="file high" data-value="paneElement.reducer.ts"><a href="paneElement.reducer.ts.html">paneElement.reducer.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -102,7 +102,7 @@
</tr>
<tr>
<td class="file high" data-value="twoPaneElement.selectors.ts"><a href="twoPaneElement.selectors.ts.html">twoPaneElement.selectors.ts</a></td>
<td class="file high" data-value="paneElement.selectors.ts"><a href="paneElement.selectors.ts.html">paneElement.selectors.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -117,7 +117,7 @@
</tr>
<tr>
<td class="file high" data-value="twoPaneElement.types.ts"><a href="twoPaneElement.types.ts.html">twoPaneElement.types.ts</a></td>
<td class="file high" data-value="paneElement.types.ts"><a href="paneElement.types.ts.html">paneElement.types.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -139,7 +139,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.action.ts</title>
<title>Code coverage report for src/Shared/screenStore/paneElementStore/paneElement.action.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/screenStore/twoPaneElementStore</a> twoPaneElement.action.ts</h1>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/screenStore/paneElementStore</a> paneElement.action.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -126,38 +126,38 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { PUSH_TWOPANE_ELEMENT, REMOVE_KEY_TWOPANE_ELEMENT, REPLACE_TWOPANE_ELEMENT } from "./twoPaneElement.types";
import { ReactElement } from "react";
import { ITwoPaneElementAction } from "./twoPaneElement.interface";
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { PUSH_PANE_ELEMENT, REMOVE_KEY_PANE_ELEMENT, REPLACE_PANE_ELEMENT } from "./paneElement.types";
import react, { ReactElement } from "react";
import { IPaneElementAction } from "./paneElement.interface";
import { IKeyOnlyAction } from "../keyStore/key.interface";
&nbsp;
export const pushElement = (
key: string,
twoPaneElement: ReactElement
): ITwoPaneElementAction =&gt; ({
type: PUSH_TWOPANE_ELEMENT,
paneElement: ReactElement
): IPaneElementAction =&gt; ({
type: PUSH_PANE_ELEMENT,
payload: {
key: key,
twoPaneElement: twoPaneElement
paneElement: paneElement
}
});
&nbsp;
export const replacetwoPaneElement = (
export const replacePaneElement = (
key: string,
twoPaneElement: ReactElement
): ITwoPaneElementAction =&gt; ({
type: REPLACE_TWOPANE_ELEMENT,
paneElement: ReactElement
): IPaneElementAction =&gt; ({
type: REPLACE_PANE_ELEMENT,
payload: {
key: key,
twoPaneElement: twoPaneElement
paneElement: paneElement
}
});
&nbsp;
&nbsp;
export const removetwoPaneElementByKey = (
export const removePaneElementByKey = (
twoPaneElementKey: string
): IKeyOnlyAction =&gt; ({
type: REMOVE_KEY_TWOPANE_ELEMENT,
type: REMOVE_KEY_PANE_ELEMENT,
payload: {
key: twoPaneElementKey
}
@ -168,7 +168,7 @@ export const removetwoPaneElementByKey = (
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.reducer.ts</title>
<title>Code coverage report for src/Shared/screenStore/paneElementStore/paneElement.reducer.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/screenStore/twoPaneElementStore</a> twoPaneElement.reducer.ts</h1>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/screenStore/paneElementStore</a> paneElement.reducer.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -153,45 +153,45 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&nbsp;
import { PUSH_TWOPANE_ELEMENT, REMOVE_KEY_TWOPANE_ELEMENT, REPLACE_TWOPANE_ELEMENT } from './twoPaneElement.types';
import { ITwoPaneElementState, ITwoPaneElementAction } from './twoPaneElement.interface';
import { PUSH_PANE_ELEMENT, REMOVE_KEY_PANE_ELEMENT, REPLACE_PANE_ELEMENT } from './paneElement.types';
import { IPaneElementState, IPaneElementAction } from './paneElement.interface';
&nbsp;
const initialState: ITwoPaneElementState = {
twoPaneElements: {}
const initialState: IPaneElementState = {
PaneElements: {}
};
&nbsp;
const twoPaneElementReducer = (
state: ITwoPaneElementState = initialState,
action: ITwoPaneElementAction
): ITwoPaneElementState =&gt; {
const PaneElementReducer = (
state: IPaneElementState = initialState,
action: IPaneElementAction
): IPaneElementState =&gt; {
switch (action.type) {
case PUSH_TWOPANE_ELEMENT: {
case PUSH_PANE_ELEMENT: {
return {
...state,
twoPaneElements: {
...state.twoPaneElements,
[action.payload.key as string]: action.payload.twoPaneElement
PaneElements: {
...state.PaneElements,
[action.payload.key as string]: action.payload.paneElement
}
};
}
case REPLACE_TWOPANE_ELEMENT: {
const hasKey = action.payload.key in state.twoPaneElements;
case REPLACE_PANE_ELEMENT: {
const hasKey = action.payload.key in state.PaneElements;
if (!hasKey) {
return { ...state };
}
return {
...state,
twoPaneElements: {
...state.twoPaneElements,
[action.payload.key as string]: action.payload.twoPaneElement
PaneElements: {
...state.PaneElements,
[action.payload.key as string]: action.payload.paneElement
},
};
&nbsp;
}
case REMOVE_KEY_TWOPANE_ELEMENT: {
case REMOVE_KEY_PANE_ELEMENT: {
// using delete over lodash.omit to reduce dependencies on external libraries
const newData = state;
delete newData.twoPaneElements[action.payload.key];
delete newData.PaneElements[action.payload.key];
return { ...newData }
}
default:
@ -199,7 +199,7 @@ const twoPaneElementReducer = (
}
};
&nbsp;
export default twoPaneElementReducer;
export default PaneElementReducer;
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
@ -207,7 +207,7 @@ export default twoPaneElementReducer;
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.selectors.ts</title>
<title>Code coverage report for src/Shared/screenStore/paneElementStore/paneElement.selectors.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/screenStore/twoPaneElementStore</a> twoPaneElement.selectors.ts</h1>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/screenStore/paneElementStore</a> paneElement.selectors.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -72,10 +72,10 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { useSelector } from "react-redux";
import { rootReducerType } from "../../../appStore";
import { ITwoPaneElementState } from "./twoPaneElement.interface";
import { IPaneElementState} from "./paneElement.interface";
&nbsp;
export const getTwoPaneElementSelector = (): ITwoPaneElementState =&gt; {
return useSelector((state: rootReducerType) =&gt; state.twoPaneElementReducer);
export const getPaneElementSelector = (): IPaneElementState =&gt; {
return useSelector((state: rootReducerType) =&gt; state.PaneElementReducer);
};
&nbsp;</pre></td></tr></table></pre>
@ -84,7 +84,7 @@ export const getTwoPaneElementSelector = (): ITwoPaneElementState =&gt; {
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/twoPaneElementStore/twoPaneElement.types.ts</title>
<title>Code coverage report for src/Shared/screenStore/paneElementStore/paneElement.types.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/screenStore/twoPaneElementStore</a> twoPaneElement.types.ts</h1>
<h1><a href="..\..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/screenStore/paneElementStore</a> paneElement.types.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -70,11 +70,11 @@
<span class="cline-any cline-yes">8x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export const PUSH_TWOPANE_ELEMENT: string = 'PUSH_TWOPANE_ELEMENT';
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export const PUSH_PANE_ELEMENT: string = 'PUSH_PANE_ELEMENT';
&nbsp;
export const REMOVE_KEY_TWOPANE_ELEMENT: string = 'REMOVE_KEY_TWOPANE_ELEMENT';
export const REMOVE_KEY_PANE_ELEMENT: string = 'REMOVE_KEY_PANE_ELEMENT';
&nbsp;
export const REPLACE_TWOPANE_ELEMENT: string = 'REPLACE_TWOPANE_ELEMENT';
export const REPLACE_PANE_ELEMENT: string = 'REPLACE_PANE_ELEMENT';
&nbsp;
&nbsp;
&nbsp;</pre></td></tr></table></pre>
@ -84,7 +84,7 @@ export const REPLACE_TWOPANE_ELEMENT: string = 'REPLACE_TWOPANE_ELEMENT';
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/twoPaneElementStore/tests</title>
<title>Code coverage report for src/Shared/screenStore/paneElementStore/tests</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\..\index.html">All files</a> twopane-navigation/Shared/screenStore/twoPaneElementStore/tests</h1>
<h1><a href="..\..\..\..\..\index.html">All files</a> src/Shared/screenStore/paneElementStore/tests</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -72,7 +72,7 @@
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="twoPaneElement.methods.helpers.tsx"><a href="twoPaneElement.methods.helpers.tsx.html">twoPaneElement.methods.helpers.tsx</a></td>
<td class="file high" data-value="paneElement.methods.helpers.tsx"><a href="paneElement.methods.helpers.tsx.html">paneElement.methods.helpers.tsx</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -94,7 +94,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/screenStore/twoPaneElementStore/tests/twoPaneElement.methods.helpers.tsx</title>
<title>Code coverage report for src/Shared/screenStore/paneElementStore/tests/paneElement.methods.helpers.tsx</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/screenStore/twoPaneElementStore/tests</a> twoPaneElement.methods.helpers.tsx</h1>
<h1><a href="..\..\..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/screenStore/paneElementStore/tests</a> paneElement.methods.helpers.tsx</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -94,24 +94,24 @@
<span class="cline-any cline-yes">4x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { ITwoPaneElementAction, ITwoPaneElementObject } from "../twoPaneElement.interface"
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IPaneElementAction, IPaneElementObject } from "../paneElement.interface"
import React, { ReactElement } from 'react';
&nbsp;
export const twoPaneElementActionBuilder = (type: string, key: string, twoPaneElement: React.ReactElement): ITwoPaneElementAction =&gt; {
export const paneElementActionBuilder = (type: string, key: string, paneElement: React.ReactElement): IPaneElementAction =&gt; {
return {
type: type,
payload: {
key: key,
twoPaneElement: twoPaneElement
paneElement: paneElement
}
}
}
&nbsp;
&nbsp;
&nbsp;
export const twoPaneElementObjectBuilder = (key: string, twoPaneElement: ReactElement): ITwoPaneElementObject =&gt; {
export const paneElementObjectBuilder = (key: string, paneElement: ReactElement): IPaneElementObject =&gt; {
return {
[key]: twoPaneElement
[key]: paneElement
}
}</pre></td></tr></table></pre>
@ -120,7 +120,7 @@ export const twoPaneElementObjectBuilder = (key: string, twoPaneElement: ReactEl
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/utilityStore</title>
<title>Code coverage report for src/Shared/utilityStore</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> twopane-navigation/Shared/utilityStore</h1>
<h1><a href="..\..\..\index.html">All files</a> src/Shared/utilityStore</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -139,7 +139,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/utilityStore/utilityStore.actions.ts</title>
<title>Code coverage report for src/Shared/utilityStore/utilityStore.actions.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/utilityStore</a> utilityStore.actions.ts</h1>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/utilityStore</a> utilityStore.actions.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -77,13 +77,13 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IUtilityStoreAction } from "./utilityStore.interfaces";
import { IS_DUALSCREEN } from "./utilityStore.types";
import { IS_TWOPANE } from "./utilityStore.types";
&nbsp;
export const isDualScreenAction = (isDualScreen: boolean):
export const isTwoPaneAction = (isTwoPane: boolean):
IUtilityStoreAction =&gt; ({
type: IS_DUALSCREEN,
type: IS_TWOPANE,
payload: {
isDualScreen: isDualScreen
isTwoPane: isTwoPane
}
});
&nbsp;</pre></td></tr></table></pre>
@ -93,7 +93,7 @@ export const isDualScreenAction = (isDualScreen: boolean):
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/utilityStore/utilityStore.methods.ts</title>
<title>Code coverage report for src/Shared/utilityStore/utilityStore.methods.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/utilityStore</a> utilityStore.methods.ts</h1>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/utilityStore</a> utilityStore.methods.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -89,14 +89,14 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { store } from "../../appStore";
import { isDualScreenAction } from "./utilityStore.actions";
import { isTwoPaneAction } from "./utilityStore.actions";
&nbsp;
const isDualScreen = (isDualScreen: boolean) =&gt; {
store.dispatch(isDualScreenAction(isDualScreen));
const isTwoPane = (isTwoPane: boolean) =&gt; {
store.dispatch(isTwoPaneAction(isTwoPane));
};
&nbsp;
const _UtilityFunctions = {
isDualScreen,
isTwoPane,
};
&nbsp;
type utilityFunctions = typeof _UtilityFunctions;
@ -111,7 +111,7 @@ export default utilityStore;
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/utilityStore/utilityStore.reducer.ts</title>
<title>Code coverage report for src/Shared/utilityStore/utilityStore.reducer.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/utilityStore</a> utilityStore.reducer.ts</h1>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/utilityStore</a> utilityStore.reducer.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -101,9 +101,9 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IUtilityStoreState, IUtilityStoreAction } from "./utilityStore.interfaces";
import { IS_DUALSCREEN } from './utilityStore.types'
import { IS_TWOPANE } from './utilityStore.types'
const initialState: IUtilityStoreState = {
isDualScreen: false
isTwoPane: false
};
&nbsp;
const utilityStoreReducer = (
@ -111,9 +111,9 @@ const utilityStoreReducer = (
action: IUtilityStoreAction
): IUtilityStoreState =&gt; {
switch (action.type) {
case IS_DUALSCREEN: {
case IS_TWOPANE: {
return {
isDualScreen: action.payload.isDualScreen
isTwoPane: action.payload.isTwoPane
};
}
default:
@ -129,7 +129,7 @@ export default utilityStoreReducer;
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/Shared/utilityStore/utilityStore.types.ts</title>
<title>Code coverage report for src/Shared/utilityStore/utilityStore.types.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/Shared/utilityStore</a> utilityStore.types.ts</h1>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">src/Shared/utilityStore</a> utilityStore.types.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -56,14 +56,14 @@
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">8x</span></td><td class="text"><pre class="prettyprint lang-js">export const IS_DUALSCREEN: string = 'IS_DUALSCREEN';</pre></td></tr></table></pre>
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">8x</span></td><td class="text"><pre class="prettyprint lang-js">export const IS_TWOPANE: string = 'IS_TWOPANE';</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/appStore.ts</title>
<title>Code coverage report for src/appStore.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\prettify.css" />
<link rel="stylesheet" href="..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\index.html">All files</a> / <a href="index.html">twopane-navigation</a> appStore.ts</h1>
<h1><a href="..\index.html">All files</a> / <a href="index.html">src</a> appStore.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -146,7 +146,7 @@
&nbsp;
&nbsp;
import keyReducers from './Shared/screenStore/keyStore/key.reducer';
import twoPaneElementReducer from './Shared/screenStore/twoPaneElementStore/twoPaneElement.reducer';
import PaneElementReducer from './Shared/screenStore/paneElementStore/paneElement.reducer';
import headerReducer from './Shared/screenStore/headerStore/header.reducer';
import utilityStoreReducer from './Shared/utilityStore/utilityStore.reducer';
&nbsp;
@ -156,7 +156,7 @@ require('./utilities/extensionMethods');
const rootReducer = combineReducers({
KeyReducers: keyReducers,
headerReducer,
twoPaneElementReducer,
PaneElementReducer,
utilityStoreReducer
});
&nbsp;
@ -192,7 +192,7 @@ export const store = createStore(TestReducer);
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/components/screenHeader/ScreenHeader.style.ts</title>
<title>Code coverage report for src/components/paneHeader/PaneHeader.style.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/components/screenHeader</a> ScreenHeader.style.ts</h1>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">src/components/paneHeader</a> PaneHeader.style.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -96,7 +96,7 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { StyleSheet } from 'react-native';
&nbsp;
export const ScreenHeaderStyles = StyleSheet.create({
export const PaneHeaderStyles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'flex-start',
@ -120,7 +120,7 @@ export const ScreenHeaderStyles = StyleSheet.create({
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/components/screenHeader/ScreenHeader.tsx</title>
<title>Code coverage report for src/components/paneHeader/PaneHeader.tsx</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/components/screenHeader</a> ScreenHeader.tsx</h1>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">src/components/paneHeader</a> PaneHeader.tsx</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -87,13 +87,7 @@
<a name='L29'></a><a href='#L29'>29</a>
<a name='L30'></a><a href='#L30'>30</a>
<a name='L31'></a><a href='#L31'>31</a>
<a name='L32'></a><a href='#L32'>32</a>
<a name='L33'></a><a href='#L33'>33</a>
<a name='L34'></a><a href='#L34'>34</a>
<a name='L35'></a><a href='#L35'>35</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<a name='L32'></a><a href='#L32'>32</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
@ -126,21 +120,18 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { Fragment } from 'react';
import { Text, TouchableOpacity, View } from 'react-native';
import { ScreenHeaderStyles } from './ScreenHeader.style';
import { IHeader } from '../../Shared/screenStore/headerStore/header.interface';
import { PaneHeaderStyles } from './PaneHeader.style';
import { IPaneHeaderProps } from '../../utilities/interfaces';
&nbsp;
export interface IScreenheaderProps extends IHeader {
}
&nbsp;
const ScreenHeader = (props: IScreenheaderProps) =&gt; {
const PaneHeader = (props: IPaneHeaderProps) =&gt; {
return (
&lt;View
style={[ScreenHeaderStyles.container, props.style]} //prop
style={[PaneHeaderStyles.container, props.style]} //prop
&gt;
{props?.leftIcon! !== undefined &amp;&amp; (
<span class="branch-1 cbranch-no" title="branch not covered" > &lt;Fragment&gt;</span>
&lt;TouchableOpacity
style={ScreenHeaderStyles.leftButton}
style={PaneHeaderStyles.leftButton}
onPress={<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >props?.IconPress!()}</span> //element
&gt;
{props.leftIcon}
@ -149,7 +140,7 @@ const ScreenHeader = (props: IScreenheaderProps) =&gt; {
)}
&nbsp;
&lt;Text
style={ScreenHeaderStyles.title} //prop
style={PaneHeaderStyles.title} //prop
&gt;
{props?.title}
&lt;/Text&gt;
@ -157,7 +148,7 @@ const ScreenHeader = (props: IScreenheaderProps) =&gt; {
);
};
&nbsp;
export default ScreenHeader;
export default PaneHeader;
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
@ -165,7 +156,7 @@ export default ScreenHeader;
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/components/screenHeader</title>
<title>Code coverage report for src/components/paneHeader</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> twopane-navigation/components/screenHeader</h1>
<h1><a href="..\..\..\index.html">All files</a> src/components/paneHeader</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -72,7 +72,7 @@
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="ScreenHeader.style.ts"><a href="ScreenHeader.style.ts.html">ScreenHeader.style.ts</a></td>
<td class="file high" data-value="PaneHeader.style.ts"><a href="PaneHeader.style.ts.html">PaneHeader.style.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -87,7 +87,7 @@
</tr>
<tr>
<td class="file medium" data-value="ScreenHeader.tsx"><a href="ScreenHeader.tsx.html">ScreenHeader.tsx</a></td>
<td class="file medium" data-value="PaneHeader.tsx"><a href="PaneHeader.tsx.html">PaneHeader.tsx</a></td>
<td data-value="66.67" class="pic medium">
<div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
</td>
@ -109,7 +109,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/components/screenHeaderContainer/ScreenHeaderContainer.style.ts</title>
<title>Code coverage report for src/components/paneHeaderContainer/PaneHeaderContainer.style.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/components/screenHeaderContainer</a> ScreenHeaderContainer.style.ts</h1>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">src/components/paneHeaderContainer</a> PaneHeaderContainer.style.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -74,7 +74,7 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { StyleSheet } from 'react-native';
&nbsp;
export const screenHeaderContainerStyles = StyleSheet.create({
export const paneHeaderContainerStyles = StyleSheet.create({
HeaderDefault: {
paddingHorizontal: 25,
backgroundColor: '#212121'
@ -87,7 +87,7 @@ export const screenHeaderContainerStyles = StyleSheet.create({
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/components/screenHeaderContainer/ScreenHeaderContainer.tsx</title>
<title>Code coverage report for src/components/paneHeaderContainer/PaneHeaderContainer.tsx</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/components/screenHeaderContainer</a> ScreenHeaderContainer.tsx</h1>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">src/components/paneHeaderContainer</a> PaneHeaderContainer.tsx</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -174,20 +174,20 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { } from 'react';
import { Text, View } from 'react-native';
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React from 'react';
import { View } from 'react-native';
import Icon from 'react-native-vector-icons/MaterialIcons';
import ScreenHeader from '../screenHeader/ScreenHeader';
import { screenHeaderContainerStyles } from './ScreenHeaderContainer.style';
import ScreenHeader from '../paneHeader/PaneHeader';
import { paneHeaderContainerStyles } from './PaneHeaderContainer.style';
import { IHeader } from '../../Shared/screenStore/headerStore/header.interface';
&nbsp;
interface IScreenHeaderContainerProps {
interface IPaneHeaderContainerProps {
isGoBack: boolean;
screenHeader: IHeader | undefined;
goBack: () =&gt; any;
}
&nbsp;
const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) =&gt; {
const PaneHeaderContainer = (props: IPaneHeaderContainerProps) =&gt; {
&nbsp;
const { isGoBack, screenHeader, goBack } = props;
&nbsp;
@ -196,7 +196,7 @@ const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) =&gt; {
{isGoBack ? (
<span class="branch-0 cbranch-no" title="branch not covered" > &lt;ScreenHeader</span>
style={{
...screenHeaderContainerStyles.HeaderDefault //look into header
...paneHeaderContainerStyles.HeaderDefault //look into header
}}
title={screenHeader?.title}
leftIcon={
@ -216,7 +216,7 @@ const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) =&gt; {
//&lt;/View&gt;
&lt;ScreenHeader
style={{
...screenHeaderContainerStyles.HeaderDefault
...paneHeaderContainerStyles.HeaderDefault
}}
title={screenHeader?.title}
leftIcon={
@ -233,14 +233,14 @@ const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) =&gt; {
)
}
&nbsp;
export default ScreenHeaderContainer;</pre></td></tr></table></pre>
export default PaneHeaderContainer;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/components/screenHeaderContainer</title>
<title>Code coverage report for src/components/paneHeaderContainer</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> twopane-navigation/components/screenHeaderContainer</h1>
<h1><a href="..\..\..\index.html">All files</a> src/components/paneHeaderContainer</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -72,7 +72,7 @@
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="ScreenHeaderContainer.style.ts"><a href="ScreenHeaderContainer.style.ts.html">ScreenHeaderContainer.style.ts</a></td>
<td class="file high" data-value="PaneHeaderContainer.style.ts"><a href="PaneHeaderContainer.style.ts.html">PaneHeaderContainer.style.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -87,7 +87,7 @@
</tr>
<tr>
<td class="file medium" data-value="ScreenHeaderContainer.tsx"><a href="ScreenHeaderContainer.tsx.html">ScreenHeaderContainer.tsx</a></td>
<td class="file medium" data-value="PaneHeaderContainer.tsx"><a href="PaneHeaderContainer.tsx.html">PaneHeaderContainer.tsx</a></td>
<td data-value="75" class="pic medium">
<div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
</td>
@ -109,7 +109,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/components/screenOverlay/ScreenOverlay.styles.ts</title>
<title>Code coverage report for src/components/paneOverlay/PaneOverlay.styles.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/components/screenOverlay</a> ScreenOverlay.styles.ts</h1>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">src/components/paneOverlay</a> PaneOverlay.styles.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -96,7 +96,7 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { StyleSheet } from 'react-native';
&nbsp;
export const ScreenOverlayStyles = StyleSheet.create({
export const PaneOverlayStyles = StyleSheet.create({
backdrop: {
flex: 1,
position: 'absolute',
@ -120,7 +120,7 @@ export const ScreenOverlayStyles = StyleSheet.create({
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/components/screenOverlay/ScreenOverlay.tsx</title>
<title>Code coverage report for src/components/paneOverlay/PaneOverlay.tsx</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/components/screenOverlay</a> ScreenOverlay.tsx</h1>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">src/components/paneOverlay</a> PaneOverlay.tsx</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -179,9 +179,9 @@
import {
View, ViewStyle, StyleProp,
} from 'react-native';
import { ScreenOverlayStyles } from './ScreenOverlay.styles';
import { PaneOverlayStyles } from './PaneOverlay.styles';
&nbsp;
interface IScreenOverlayProps {
interface IPaneOverlayProps {
/**
* Content of the overlay
*/
@ -204,12 +204,12 @@ interface IScreenOverlayProps {
onBackdropPress?:()=&gt; void;
}
&nbsp;
const ScreenOverlay = (props: IScreenOverlayProps) =&gt; {
const PaneOverlay = (props: IPaneOverlayProps) =&gt; {
return (
&lt;Fragment&gt;
{props.isVisible &amp;&amp; (
&lt;View
style={[ScreenOverlayStyles.backdrop, props.backdropStyle]}
style={[PaneOverlayStyles.backdrop, props.backdropStyle]}
onTouchEndCapture={<span class="fstat-no" title="function not covered" >ev</span>ent =&gt; {
//check if we are clicking ourselves or a different component
<span class="cstat-no" title="statement not covered" > if (</span>
@ -223,7 +223,7 @@ const ScreenOverlay = (props: IScreenOverlayProps) =&gt; {
}}&gt;
&lt;View
pointerEvents={'box-none'}
style={[ScreenOverlayStyles.overlay, props.overlayStyle]}&gt;
style={[PaneOverlayStyles.overlay, props.overlayStyle]}&gt;
{props.children}
&lt;/View&gt;
&lt;/View&gt;
@ -232,7 +232,7 @@ const ScreenOverlay = (props: IScreenOverlayProps) =&gt; {
);
};
&nbsp;
export default ScreenOverlay;
export default PaneOverlay;
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
@ -240,7 +240,7 @@ export default ScreenOverlay;
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/components/screenOverlay</title>
<title>Code coverage report for src/components/paneOverlay</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> twopane-navigation/components/screenOverlay</h1>
<h1><a href="..\..\..\index.html">All files</a> src/components/paneOverlay</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -72,7 +72,7 @@
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="ScreenOverlay.styles.ts"><a href="ScreenOverlay.styles.ts.html">ScreenOverlay.styles.ts</a></td>
<td class="file high" data-value="PaneOverlay.styles.ts"><a href="PaneOverlay.styles.ts.html">PaneOverlay.styles.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -87,7 +87,7 @@
</tr>
<tr>
<td class="file low" data-value="ScreenOverlay.tsx"><a href="ScreenOverlay.tsx.html">ScreenOverlay.tsx</a></td>
<td class="file low" data-value="PaneOverlay.tsx"><a href="PaneOverlay.tsx.html">PaneOverlay.tsx</a></td>
<td data-value="40" class="pic low">
<div class="chart"><div class="cover-fill" style="width: 40%"></div><div class="cover-empty" style="width: 60%"></div></div>
</td>
@ -109,7 +109,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/components/screenRenderer/ScreenRenderer.tsx</title>
<title>Code coverage report for src/components/paneRenderer/PaneRenderer.tsx</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/components/screenRenderer</a> ScreenRenderer.tsx</h1>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">src/components/paneRenderer</a> PaneRenderer.tsx</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -184,34 +184,34 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IScreenComponent, screenType } from "../../utilities/interfaces";
import { StyleSheet, View, StyleProp, ViewStyle } from "react-native";
import ScreenHeaderContainer from "../screenHeaderContainer/ScreenHeaderContainer";
import singleScreen from "../../singleScreen/singleScreenStore/singleScreen.methods";
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IPaneComponent, paneType } from "../../utilities/interfaces";
import { StyleSheet, View} from "react-native";
import ScreenHeaderContainer from "../paneHeaderContainer/PaneHeaderContainer";
import onePane from "../../onePane/onePaneStore/onePane.methods";
import React, { Fragment } from "react";
import dualScreen from "../../dualScreen/dualScreenStore/dualScreen.methods";
import twoPane from "../../twoPane/twoPaneStore/twoPane.methods";
&nbsp;
interface IScreenRendererProps {
prependKey: string;
screenComponent: IScreenComponent[];
screenComponent: IPaneComponent[];
}
&nbsp;
const ScreenRenderer = (props: IScreenRendererProps) =&gt; {
const { prependKey, screenComponent } = props;
&nbsp;
const isGoBackSingle = screenComponent.filter(x =&gt; x.screen === screenType.SINGLE).length &gt; 1;
const isGoBackDual = screenComponent.filter(x =&gt; x.screen === screenType.DUAL).length &gt; 1;
const isGoBackONE = screenComponent.filter(x =&gt; x.screen === paneType.ONE).length &gt; 1;
const isGoBackTWO = screenComponent.filter(x =&gt; x.screen === paneType.TWO).length &gt; 1;
return (
&lt;Fragment&gt;
{
screenComponent.map((val: IScreenComponent) =&gt;
screenComponent.map((val: IPaneComponent) =&gt;
&lt;View key={prependKey + val.key}
style={[ScreenRendererStyles.container, (val.screen === screenType.SINGLE ? ScreenRendererStyles.isSingle : ScreenRendererStyles.isDual)]}&gt;
style={[ScreenRendererStyles.container, (val.screen === paneType.ONE ? ScreenRendererStyles.isONE : ScreenRendererStyles.isTWO)]}&gt;
&lt;View style={ScreenRendererStyles.header}&gt;
&lt;ScreenHeaderContainer
isGoBack={(val.screen === screenType.SINGLE ? isGoBackSingle : isGoBackDual)}
isGoBack={(val.screen === paneType.ONE ? isGoBackONE : isGoBackTWO)}
screenHeader={val.header}
goBack={<span class="fstat-no" title="function not covered" >()</span> =&gt; (<span class="cstat-no" title="statement not covered" >val.screen === screenType.SINGLE ? singleScreen.GoBack() : dualScreen.GoBack())</span>}
goBack={<span class="fstat-no" title="function not covered" >()</span> =&gt; (<span class="cstat-no" title="statement not covered" >val.screen === paneType.ONE ? onePane.GoBack() : twoPane.GoBack())</span>}
/&gt;
&lt;/View&gt;
&lt;View
@ -233,10 +233,10 @@ const ScreenRendererStyles = StyleSheet.create({
width: 540,
backgroundColor: 'black',
},
isSingle: {
isONE: {
left: 0,
},
isDual: {
isTWO: {
left: 570,
},
&nbsp;
@ -255,7 +255,7 @@ export default ScreenRenderer;</pre></td></tr></table></pre>
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/components/screenRenderer</title>
<title>Code coverage report for src/components/paneRenderer</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> twopane-navigation/components/screenRenderer</h1>
<h1><a href="..\..\..\index.html">All files</a> src/components/paneRenderer</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -72,7 +72,7 @@
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="ScreenRenderer.tsx"><a href="ScreenRenderer.tsx.html">ScreenRenderer.tsx</a></td>
<td class="file high" data-value="PaneRenderer.tsx"><a href="PaneRenderer.tsx.html">PaneRenderer.tsx</a></td>
<td data-value="90" class="pic high">
<div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
</td>
@ -94,7 +94,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/components/dualApp/DualApp.tsx</title>
<title>Code coverage report for src/components/twoPaneApp/TwoPaneApp.tsx</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/components/dualApp</a> DualApp.tsx</h1>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">src/components/twoPaneApp</a> TwoPaneApp.tsx</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -96,49 +96,7 @@
<a name='L38'></a><a href='#L38'>38</a>
<a name='L39'></a><a href='#L39'>39</a>
<a name='L40'></a><a href='#L40'>40</a>
<a name='L41'></a><a href='#L41'>41</a>
<a name='L42'></a><a href='#L42'>42</a>
<a name='L43'></a><a href='#L43'>43</a>
<a name='L44'></a><a href='#L44'>44</a>
<a name='L45'></a><a href='#L45'>45</a>
<a name='L46'></a><a href='#L46'>46</a>
<a name='L47'></a><a href='#L47'>47</a>
<a name='L48'></a><a href='#L48'>48</a>
<a name='L49'></a><a href='#L49'>49</a>
<a name='L50'></a><a href='#L50'>50</a>
<a name='L51'></a><a href='#L51'>51</a>
<a name='L52'></a><a href='#L52'>52</a>
<a name='L53'></a><a href='#L53'>53</a>
<a name='L54'></a><a href='#L54'>54</a>
<a name='L55'></a><a href='#L55'>55</a>
<a name='L56'></a><a href='#L56'>56</a>
<a name='L57'></a><a href='#L57'>57</a>
<a name='L58'></a><a href='#L58'>58</a>
<a name='L59'></a><a href='#L59'>59</a>
<a name='L60'></a><a href='#L60'>60</a>
<a name='L61'></a><a href='#L61'>61</a>
<a name='L62'></a><a href='#L62'>62</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<a name='L41'></a><a href='#L41'>41</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
@ -182,44 +140,23 @@
import { Provider } from 'react-redux';
&nbsp;
import { store } from '../../appStore';
import { IScreenComponent } from '../../utilities/interfaces';
import DualHub from '../dualHub/DualHub';
import singleScreen from '../../singleScreen/singleScreenStore/singleScreen.methods';
import dualScreen from '../../dualScreen/dualScreenStore/dualScreen.methods';
import { ITwoPaneAppProps } from '../../utilities/interfaces';
import TwoPaneHub from '../twoPaneHub/TwoPaneHub';
import onePane from '../../onePane/onePaneStore/onePane.methods';
import twoPane from '../../twoPane/twoPaneStore/twoPane.methods';
&nbsp;
export interface IDualAppProps {
/**
* Default element for single screen mode
*/
singleScreen: IScreenComponent;
&nbsp;
/**
* Default element for dual screen mode
*/
dualScreen: IScreenComponent;
&nbsp;
/**
* AppContainer if using React Navigation
*/
navigationContainer?: JSX.Element;
&nbsp;
/**
* Items to render in app drawer. If empty, drawer will not be included.
*/
drawerItems?: JSX.Element[];
}
&nbsp;
const DualApp = (props: IDualAppProps) =&gt; {
const TwoPaneApp = (props: ITwoPaneAppProps) =&gt; {
&nbsp;
const screenState = store.getState().KeyReducers.keys;
//TODO: possibly look into utility state for things like isMount to keep data between renders
const hasSingle: boolean = screenState.some(<span class="fstat-no" title="function not covered" >va</span>l =&gt; <span class="cstat-no" title="statement not covered" >val.key === (`SINGLE_${props.singleScreen.key}`))</span>;
const hasDual: boolean = screenState.some(<span class="fstat-no" title="function not covered" >va</span>l =&gt; <span class="cstat-no" title="statement not covered" >val.key === (`DUAL_${props.singleScreen.key}`))</span>;
const hasOnePaneDefault: boolean = screenState.some(<span class="fstat-no" title="function not covered" >va</span>l =&gt; <span class="cstat-no" title="statement not covered" >val.key === (`ONE_${props.onePaneDefault.key}`))</span>;
const hasTwoPaneDefault: boolean = screenState.some(<span class="fstat-no" title="function not covered" >va</span>l =&gt; <span class="cstat-no" title="statement not covered" >val.key === (`TWO_${props.twoPaneDefault.key}`))</span>;
&nbsp;
useEffect(() =&gt; {
<span class="missing-if-branch" title="else path not taken" >E</span>if (!hasSingle &amp;&amp; !hasDual) {
singleScreen.Add(props.singleScreen.key, props.singleScreen.twoPaneElement, props?.singleScreen?.header!);
dualScreen.Add(props.dualScreen.key, props.dualScreen.twoPaneElement, props?.dualScreen?.header!);
<span class="missing-if-branch" title="else path not taken" >E</span>if (!hasOnePaneDefault &amp;&amp; !hasTwoPaneDefault) {
onePane.Add(props.onePaneDefault.key, props.onePaneDefault.twoPaneElement, props?.onePaneDefault?.header!);
twoPane.Add(props.twoPaneDefault.key, props.twoPaneDefault.twoPaneElement, props?.twoPaneDefault?.header!);
}
}, []);
&nbsp;
@ -230,7 +167,7 @@ const DualApp = (props: IDualAppProps) =&gt; {
<span class="branch-0 cbranch-no" title="branch not covered" > props.navigationContainer</span>
) : (
&lt;Fragment&gt;
&lt;DualHub /&gt;
&lt;TwoPaneHub /&gt;
&lt;/Fragment&gt;
)}
&lt;/Provider&gt;
@ -238,7 +175,7 @@ const DualApp = (props: IDualAppProps) =&gt; {
);
};
&nbsp;
export default DualApp;
export default TwoPaneApp;
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
@ -246,7 +183,7 @@ export default DualApp;
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/components/dualApp</title>
<title>Code coverage report for src/components/twoPaneApp</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> twopane-navigation/components/dualApp</h1>
<h1><a href="..\..\..\index.html">All files</a> src/components/twoPaneApp</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -72,7 +72,7 @@
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="DualApp.tsx"><a href="DualApp.tsx.html">DualApp.tsx</a></td>
<td class="file high" data-value="TwoPaneApp.tsx"><a href="TwoPaneApp.tsx.html">TwoPaneApp.tsx</a></td>
<td data-value="81.82" class="pic high">
<div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
</td>
@ -94,7 +94,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/components/dualHub/DualHub.tsx</title>
<title>Code coverage report for src/components/twoPaneHub/TwoPaneHub.tsx</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/components/dualHub</a> DualHub.tsx</h1>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">src/components/twoPaneHub</a> TwoPaneHub.tsx</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -186,30 +186,30 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useMemo, useEffect } from 'react';
import { View } from 'react-native';
import { IScreenComponent } from '../../utilities/interfaces';
import { IPaneComponent } from '../../utilities/interfaces';
&nbsp;
import { getTwoPaneElementSelector } from '../../Shared/screenStore/twoPaneElementStore/twoPaneElement.selectors';
import { getPaneElementSelector } from '../../Shared/screenStore/paneElementStore/paneElement.selectors';
import { getHeaderSelector } from '../../Shared/screenStore/headerStore/header.selector';
import { IHeaderState } from '../../Shared/screenStore/headerStore/header.interface';
import { ITwoPaneElementState } from '../../Shared/screenStore/twoPaneElementStore/twoPaneElement.interface';
import { IPaneElementState } from '../../Shared/screenStore/paneElementStore/paneElement.interface';
&nbsp;
import ScreenRenderer from '../screenRenderer/ScreenRenderer';
import ScreenRenderer from '../paneRenderer/PaneRenderer';
import { getScreenKeyState } from '../../Shared/screenStore/keyStore/key.selector';
import { DualScreenInfo, DualScreenInfoPayload } from 'react-native-dualscreeninfo';
import utilityStore from '../../Shared/utilityStore/utilityStore.methods';
import singleScreen from '../../singleScreen/singleScreenStore/singleScreen.methods';
import dualScreen from '../../dualScreen/dualScreenStore/dualScreen.methods';
import onePane from '../../onePane/onePaneStore/onePane.methods';
import twoPane from '../../twoPane/twoPaneStore/twoPane.methods';
&nbsp;
&nbsp;
const DualHub = () =&gt; {
const TwoPaneHub = () =&gt; {
&nbsp;
const twoPaneElementState: ITwoPaneElementState = getTwoPaneElementSelector();
const twoPaneElementState: IPaneElementState = getPaneElementSelector();
const headerState: IHeaderState = getHeaderSelector();
&nbsp;
const keyState = getScreenKeyState();
&nbsp;
useEffect(() =&gt; {
utilityStore.isDualScreen(DualScreenInfo.isSpanning)
utilityStore.isTwoPane(DualScreenInfo.isSpanning)
DualScreenInfo.addEventListener('didUpdateSpanning', _handleSpanningChanged);
&nbsp;
return <span class="fstat-no" title="function not covered" >()</span> =&gt; {
@ -217,11 +217,11 @@ const DualHub = () =&gt; {
}
}, [])
&nbsp;
const screenStack: IScreenComponent[] = useMemo(() =&gt; {
const screenStack: IPaneComponent[] = useMemo(() =&gt; {
return keyState.keys.map((val, index) =&gt; {
return {
key: val.key,
twoPaneElement: twoPaneElementState.twoPaneElements[val.key],
twoPaneElement: twoPaneElementState.PaneElements[val.key],
header: headerState.headers[val.key],
screen: val.screen
}
@ -229,11 +229,11 @@ const DualHub = () =&gt; {
}, [keyState, twoPaneElementState, headerState])
&nbsp;
const _handleSpanningChanged = <span class="fstat-no" title="function not covered" >(u</span>pdate: DualScreenInfoPayload) =&gt; {
<span class="cstat-no" title="statement not covered" > utilityStore.isDualScreen(update.isSpanning)</span>
<span class="cstat-no" title="statement not covered" > utilityStore.isTwoPane(update.isSpanning)</span>
<span class="cstat-no" title="statement not covered" > if (update.isSpanning) {</span>
<span class="cstat-no" title="statement not covered" > singleScreen.mergeToOppositeScreen();</span>
<span class="cstat-no" title="statement not covered" > onePane.mergeToOppositeScreen();</span>
} else {
<span class="cstat-no" title="statement not covered" > dualScreen.mergeToOppositeScreen();</span>
<span class="cstat-no" title="statement not covered" > twoPane.mergeToOppositeScreen();</span>
}
};
&nbsp;
@ -247,7 +247,7 @@ const DualHub = () =&gt; {
);
};
&nbsp;
export default DualHub;
export default TwoPaneHub;
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
@ -255,7 +255,7 @@ export default DualHub;
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/components/dualHub</title>
<title>Code coverage report for src/components/twoPaneHub</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> twopane-navigation/components/dualHub</h1>
<h1><a href="..\..\..\index.html">All files</a> src/components/twoPaneHub</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -72,7 +72,7 @@
</tr>
</thead>
<tbody><tr>
<td class="file medium" data-value="DualHub.tsx"><a href="DualHub.tsx.html">DualHub.tsx</a></td>
<td class="file medium" data-value="TwoPaneHub.tsx"><a href="TwoPaneHub.tsx.html">TwoPaneHub.tsx</a></td>
<td data-value="72.22" class="pic medium">
<div class="chart"><div class="cover-fill" style="width: 72%"></div><div class="cover-empty" style="width: 28%"></div></div>
</td>
@ -94,7 +94,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation</title>
<title>Code coverage report for src</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\prettify.css" />
<link rel="stylesheet" href="..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\index.html">All files</a> twopane-navigation</h1>
<h1><a href="..\index.html">All files</a> src</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -94,7 +94,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/dualScreen/dualScreenStore</title>
<title>Code coverage report for src/onePane/onePaneStore</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> twopane-navigation/dualScreen/dualScreenStore</h1>
<h1><a href="..\..\..\index.html">All files</a> src/onePane/onePaneStore</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -72,7 +72,7 @@
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="dualScreen.methods.ts"><a href="dualScreen.methods.ts.html">dualScreen.methods.ts</a></td>
<td class="file high" data-value="onePane.methods.ts"><a href="onePane.methods.ts.html">onePane.methods.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -94,7 +94,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/singleScreen/singleScreenStore/singleScreen.methods.ts</title>
<title>Code coverage report for src/onePane/onePaneStore/onePane.methods.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/singleScreen/singleScreenStore</a> singleScreen.methods.ts</h1>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">src/onePane/onePaneStore</a> onePane.methods.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -276,99 +276,99 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { store } from '../../appStore';
import {
screenType
paneType
} from '../../utilities/interfaces';
import { pushKey, popToFront, popScreen, moveToFront, changeScreen } from '../../Shared/screenStore/keyStore/key.actions';
import { pushHeader, replaceHeader, removeHeaderByKey } from '../../Shared/screenStore/headerStore/header.actions';
import { pushElement, removetwoPaneElementByKey, replacetwoPaneElement } from '../../Shared/screenStore/twoPaneElementStore/twoPaneElement.action';
import { pushElement, removePaneElementByKey, replacePaneElement } from '../../Shared/screenStore/paneElementStore/paneElement.action';
import { ReactElement } from 'react';
import { IHeader } from '../../Shared/screenStore/headerStore/header.interface';
import { IKeyState, IKeyObject } from '../../Shared/screenStore/keyStore/key.interface';
&nbsp;
/**
* Pushes element to the top of the single screen stack
* Pushes element to the top of the onePane stack
*/
const Add = (key: string, element: ReactElement, header?: IHeader, isMerge: boolean = false) =&gt; {
store.dispatch(pushKey(screenType.SINGLE, key, isMerge));
store.dispatch(pushElement(`${screenType.SINGLE}_${key}`, element));
store.dispatch(pushKey(paneType.ONE, key, isMerge));
store.dispatch(pushElement(`${paneType.ONE}_${key}`, element));
if (header) {
store.dispatch(pushHeader(`${screenType.SINGLE}_${key}`, header));
store.dispatch(pushHeader(`${paneType.ONE}_${key}`, header));
}
};
&nbsp;
/**
* Pushes element to the top of the single screen stack or if the key is already in the stack,
move that key to the top ofthe stack
* Pushes element to the top of the onePane stack or if the key is already in the stack,
move that key to the top of the stack
*/
const AddOrMoveToFront = (key: string, element: React.ReactElement, header?: IHeader, isMerge: boolean = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span> =&gt; {
const keys: IKeyState = store.getState().KeyReducers;
const singleScreenState: IKeyObject[] = keys.keys.filter(x =&gt; x.screen === screenType.SINGLE)
const onePaneState: IKeyObject[] = keys.keys.filter(x =&gt; x.screen === paneType.ONE)
&nbsp;
if (!singleScreenState.some(val =&gt; val.key === `${screenType.SINGLE}_${key}`)) {
if (!onePaneState.some(val =&gt; val.key === `${paneType.ONE}_${key}`)) {
Add(key, element, header, isMerge)
} else {
store.dispatch(moveToFront(screenType.SINGLE, `${screenType.SINGLE}_${key}`));
store.dispatch(moveToFront(paneType.ONE, `${paneType.ONE}_${key}`));
}
}
&nbsp;
/**
* when the app screensize changes move screens marked as isMerged to the DualScreen
* when the app screen size changes move screens marked as isMerged to twoPane
*/
const mergeToOppositeScreen = () =&gt; {
const keys: IKeyState = store.getState().KeyReducers;
keys.keys.map(val =&gt; {
if (val.screen === screenType.SINGLE &amp;&amp; val.isMerge) {
store.dispatch(changeScreen(screenType.DUAL, val.key))
if (val.screen === paneType.ONE &amp;&amp; val.isMerge) {
store.dispatch(changeScreen(paneType.TWO, val.key))
}
})
}
&nbsp;
&nbsp;
/**
* Removes all elements of the single screen stack
* and returns the base element of the single screen stack
* Removes all elements of the onePane stack
* and returns the base element of the onePane stack
*/
const BackToHome = () =&gt; {
const keys: IKeyState = store.getState().KeyReducers;
const singleScreenState: IKeyObject[] = keys.keys.filter(x =&gt; x.screen === screenType.SINGLE)
const onePaneState: IKeyObject[] = keys.keys.filter(x =&gt; x.screen === paneType.ONE)
&nbsp;
for (let i = 1; i &lt; singleScreenState.length; i++) {
store.dispatch(removeHeaderByKey(singleScreenState[i].key));
store.dispatch(removetwoPaneElementByKey(singleScreenState[i].key));
for (let i = 1; i &lt; onePaneState.length; i++) {
store.dispatch(removeHeaderByKey(onePaneState[i].key));
store.dispatch(removePaneElementByKey(onePaneState[i].key));
}
&nbsp;
store.dispatch(popToFront(screenType.SINGLE));
store.dispatch(popToFront(paneType.ONE));
};
&nbsp;
/**
* Go back one element in the single screen stack
* Go back one element in the onePane stack
*/
const GoBack = () =&gt; {
const keys: IKeyState = store.getState().KeyReducers;
const singleScreenState: IKeyObject[] = keys.keys.filter(x =&gt; x.screen === screenType.SINGLE)
const onePaneState: IKeyObject[] = keys.keys.filter(x =&gt; x.screen === paneType.ONE)
&nbsp;
store.dispatch(removeHeaderByKey(singleScreenState.peek().key));
store.dispatch(removetwoPaneElementByKey(singleScreenState.peek().key));
store.dispatch(popScreen(screenType.SINGLE));
store.dispatch(removeHeaderByKey(onePaneState.peek().key));
store.dispatch(removePaneElementByKey(onePaneState.peek().key));
store.dispatch(popScreen(paneType.ONE));
&nbsp;
};
&nbsp;
&nbsp;
/**
* Replace the current element for this single screen component
* Replace the current element for this onePane component
*/
const ReplaceScreen = (key: string, element: React.ReactElement) =&gt; {
store.dispatch(replacetwoPaneElement(`${screenType.SINGLE}_${key}`, element))
store.dispatch(replacePaneElement(`${paneType.ONE}_${key}`, element))
}
&nbsp;
/**
* Replace the default header for this single screen component
* Replace the default header for this onePane component
*/
const ReplaceHeader = (key: string, header: IHeader) =&gt; {
store.dispatch(replaceHeader(`${screenType.SINGLE}_${key}`, header));
store.dispatch(replaceHeader(`${paneType.ONE}_${key}`, header));
};
&nbsp;
const _singleScreenFunctions = {
const _onePaneFunctions = {
Add,
AddOrMoveToFront,
mergeToOppositeScreen,
@ -378,11 +378,11 @@ const _singleScreenFunctions = {
ReplaceHeader,
};
&nbsp;
type singleScreenFunctions = typeof _singleScreenFunctions;
type onePaneFunctions = typeof _onePaneFunctions;
&nbsp;
const singleScreen: singleScreenFunctions = _singleScreenFunctions;
const onePane: onePaneFunctions = _onePaneFunctions;
&nbsp;
export default singleScreen;
export default onePane;
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
@ -390,7 +390,7 @@ export default singleScreen;
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/singleScreen/singleScreenStore</title>
<title>Code coverage report for src/twoPane/twoPaneStore</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> twopane-navigation/singleScreen/singleScreenStore</h1>
<h1><a href="..\..\..\index.html">All files</a> src/twoPane/twoPaneStore</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -72,7 +72,7 @@
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="singleScreen.methods.ts"><a href="singleScreen.methods.ts.html">singleScreen.methods.ts</a></td>
<td class="file high" data-value="twoPane.methods.ts"><a href="twoPane.methods.ts.html">twoPane.methods.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -94,7 +94,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/dualScreen/dualScreenStore/dualScreen.methods.ts</title>
<title>Code coverage report for src/twoPane/twoPaneStore/twoPane.methods.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\..\prettify.css" />
<link rel="stylesheet" href="..\..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/dualScreen/dualScreenStore</a> dualScreen.methods.ts</h1>
<h1><a href="..\..\..\index.html">All files</a> / <a href="index.html">src/twoPane/twoPaneStore</a> twoPane.methods.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -270,96 +270,96 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { store } from '../../appStore';
import {
screenType
paneType
} from '../../utilities/interfaces';
import { pushKey, popToFront, popScreen, moveToFront, changeScreen } from '../../Shared/screenStore/keyStore/key.actions';
import { pushHeader, replaceHeader, removeHeaderByKey } from '../../Shared/screenStore/headerStore/header.actions';
import { pushElement, removetwoPaneElementByKey, replacetwoPaneElement } from '../../Shared/screenStore/twoPaneElementStore/twoPaneElement.action';
import { pushElement, removePaneElementByKey, replacePaneElement } from '../../Shared/screenStore/paneElementStore/paneElement.action';
import { IHeader } from '../../Shared/screenStore/headerStore/header.interface';
import { IKeyState, IKeyObject } from '../../Shared/screenStore/keyStore/key.interface';
&nbsp;
/**
* Pushes element to the top of the dual screen stack.
* Pushes element to the top of the Twopane stack.
*/
const Add = (key: string, element: React.ReactElement, header?: IHeader, isMerge: boolean = false) =&gt; {
&nbsp;
store.dispatch(pushKey(screenType.DUAL, key, isMerge));
store.dispatch(pushElement(`${screenType.DUAL}_${key}`, element));
store.dispatch(pushKey(paneType.TWO, key, isMerge));
store.dispatch(pushElement(`${paneType.TWO}_${key}`, element));
if (header) {
store.dispatch(pushHeader(`${screenType.DUAL}_${key}`, header));
store.dispatch(pushHeader(`${paneType.TWO}_${key}`, header));
}
};
&nbsp;
/**
* Pushes element to the top of the dual screen stack or if the key is already in the stack,
move that key to the top ofthe stack
* Pushes element to the top of the twopane stack or if the key is already in the stack,
move that key to the top of the stack
*/
const AddOrMoveToFront = (key: string, element: React.ReactElement, header?: IHeader, isMerge: boolean = <span class="branch-0 cbranch-no" title="branch not covered" >false,</span>) =&gt; {
const keys: IKeyState = store.getState().KeyReducers;
const dualScreenState: IKeyObject[] = keys.keys.filter(x =&gt; x.screen === screenType.DUAL)
const twoPaneState: IKeyObject[] = keys.keys.filter(x =&gt; x.screen === paneType.TWO)
&nbsp;
if (!dualScreenState.some(val =&gt; val.key === `${screenType.DUAL}_${key}`)) {
if (!twoPaneState.some(val =&gt; val.key === `${paneType.TWO}_${key}`)) {
Add(key, element, header, isMerge)
} else {
store.dispatch(moveToFront(screenType.DUAL, `${screenType.DUAL}_${key}`));
store.dispatch(moveToFront(paneType.TWO, `${paneType.TWO}_${key}`));
}
}
/**
* when the app screensize changes move screens marked as isMerged to the singleScreen
* when the app screen size changes move screens marked as isMerged to onePane
*/
const mergeToOppositeScreen = () =&gt; {
const keys: IKeyState = store.getState().KeyReducers;
keys.keys.map(val =&gt; {
if (val.screen === screenType.DUAL &amp;&amp; val.isMerge) {
store.dispatch(changeScreen(screenType.SINGLE, val.key))
if (val.screen === paneType.TWO &amp;&amp; val.isMerge) {
store.dispatch(changeScreen(paneType.ONE, val.key))
}
})
&nbsp;
}
&nbsp;
/**
* Removes all elements of the dual screen stack
* and returns the base element of the dual screen stack
* Removes all elements of the twoPane stack
* and returns the base element of the twoPane stack
*/
const BackToHome = () =&gt; {
const keys: IKeyState = store.getState().KeyReducers;
const dualScreenState: IKeyObject[] = keys.keys.filter(x =&gt; x.screen === screenType.DUAL)
const twoPaneState: IKeyObject[] = keys.keys.filter(x =&gt; x.screen === paneType.TWO)
&nbsp;
for (let i = 1; i &lt; dualScreenState.length; i++) {
store.dispatch(removeHeaderByKey(dualScreenState[i].key));
store.dispatch(removetwoPaneElementByKey(dualScreenState[i].key));
for (let i = 1; i &lt; twoPaneState.length; i++) {
store.dispatch(removeHeaderByKey(twoPaneState[i].key));
store.dispatch(removePaneElementByKey(twoPaneState[i].key));
}
store.dispatch(popToFront(screenType.DUAL));
store.dispatch(popToFront(paneType.TWO));
};
&nbsp;
/**
* Go back one element in the dual screen stack
* Go back one element in the twoPane stack
*/
const GoBack = () =&gt; {
const keys: IKeyState = store.getState().KeyReducers;
const dualScreenState: IKeyObject[] = keys.keys.filter(x =&gt; x.screen === screenType.DUAL)
const twoPaneState: IKeyObject[] = keys.keys.filter(x =&gt; x.screen === paneType.TWO)
&nbsp;
store.dispatch(removeHeaderByKey(dualScreenState.peek().key));
store.dispatch(removetwoPaneElementByKey(dualScreenState.peek().key));
store.dispatch(popScreen(screenType.DUAL));
store.dispatch(removeHeaderByKey(twoPaneState.peek().key));
store.dispatch(removePaneElementByKey(twoPaneState.peek().key));
store.dispatch(popScreen(paneType.TWO));
&nbsp;
};
&nbsp;
/**
* Replace the current element for this dual screen component
* Replace the current element for this twoPane component
*/
const ReplaceScreen = (key: string, element: React.ReactElement) =&gt; {
store.dispatch(replacetwoPaneElement(`${screenType.DUAL}_${key}`, element))
store.dispatch(replacePaneElement(`${paneType.TWO}_${key}`, element))
}
&nbsp;
/**
* Replace the default header for this dual screen component
* Replace the default header for this twoPane component
*/
const ReplaceHeader = (key: string, header: IHeader) =&gt; {
store.dispatch(replaceHeader(key, header));
};
&nbsp;
const _dualScreenFunctions = {
const _twoPaneFunctions = {
Add,
AddOrMoveToFront,
mergeToOppositeScreen,
@ -369,11 +369,11 @@ const _dualScreenFunctions = {
ReplaceHeader,
};
&nbsp;
type dualScreenFunctions = typeof _dualScreenFunctions;
type twoPaneFunctions = typeof _twoPaneFunctions;
&nbsp;
const dualScreen: dualScreenFunctions = _dualScreenFunctions;
const twoPane: twoPaneFunctions = _twoPaneFunctions;
&nbsp;
export default dualScreen;
export default twoPane;
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
@ -381,7 +381,7 @@ export default dualScreen;
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/utilities/auto.methods.ts</title>
<title>Code coverage report for src/utilities/autoPane.methods.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\prettify.css" />
<link rel="stylesheet" href="..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/utilities</a> auto.methods.ts</h1>
<h1><a href="..\..\index.html">All files</a> / <a href="index.html">src/utilities</a> autoPane.methods.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -293,20 +293,20 @@
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import utility from './utility.methods';
import dualScreen from '../dualScreen/dualScreenStore/dualScreen.methods';
import singleScreen from '../singleScreen/singleScreenStore/singleScreen.methods';
import { ReactElement } from 'react';
import twoPane from '../twoPane/twoPaneStore/twoPane.methods';
import onePane from '../onePane/onePaneStore/onePane.methods';
import react, { ReactElement } from 'react';
import { IHeader } from '../Shared/screenStore/headerStore/header.interface';
&nbsp;
&nbsp;
/**
* Automatically pushes element to the top of the stack based on screen size.
*/
const Add = (key: string, element: ReactElement, header?: IHeader, isMergeSingle = false, isMergeDual = false) =&gt; {
if (utility.isDualScreen()) {
dualScreen.Add(key, element, header, isMergeDual);
const Add = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false) =&gt; {
if (utility.isTwoPane()) {
twoPane.Add(key, element, header, isMergeTWO);
} else {
singleScreen.Add(key, element, header, isMergeSingle);
onePane.Add(key, element, header, isMergeONE);
}
};
&nbsp;
@ -314,35 +314,35 @@ const Add = (key: string, element: ReactElement, header?: IHeader, isMergeSingle
* Automatically pushes element to the top of stack or if the key is already in the stack,
move that key to the top of the stack based on screen size
*/
const AddOrMoveToFront = (key: string, element: ReactElement, header?: IHeader, isMergeSingle = false, isMergeDual = false,) =&gt; {
if (utility.isDualScreen()) {
dualScreen.AddOrMoveToFront(key, element, header, isMergeDual);
const AddOrMoveToFront = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false,) =&gt; {
if (utility.isTwoPane()) {
twoPane.AddOrMoveToFront(key, element, header, isMergeTWO);
} else {
singleScreen.AddOrMoveToFront(key, element, header, isMergeSingle);
onePane.AddOrMoveToFront(key, element, header, isMergeONE);
}
};
&nbsp;
/**
* Automatically pushes element to the top of stack or if the key is already in the dual screen stack,
move that key to the top of the dual screen stack based on screen size
* Automatically pushes element to the top of stack or if the key is already in the TWO screen stack,
move that key to the top of the TWO screen stack based on screen size
*/
const AddOrMoveToFrontDual = (key: string, element: ReactElement, header?: IHeader, isMergeSingle = false, isMergeDual = false,) =&gt; {
if (utility.isDualScreen()) {
dualScreen.AddOrMoveToFront(key, element, header, isMergeDual);
const AddOrMoveToFrontTWO = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false,) =&gt; {
if (utility.isTwoPane()) {
twoPane.AddOrMoveToFront(key, element, header, isMergeTWO);
} else {
singleScreen.Add(key, element, header, isMergeSingle);
onePane.Add(key, element, header, isMergeONE);
}
};
&nbsp;
/**
* Automatically pushes element to the top of stack or if the key is already in the single screen stack,
move that key to the top of the single screen stack based on screen size
* Automatically pushes element to the top of stack or if the key is already in the ONE screen stack,
move that key to the top of the ONE screen stack based on screen size
*/
const AddOrMoveToFrontSingle = (key: string, element: ReactElement, header?: IHeader, isMergeSingle = false, isMergeDual = false,) =&gt; {
if (utility.isDualScreen()) {
dualScreen.Add(key, element, header, isMergeDual);
const AddOrMoveToFrontONE = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false,) =&gt; {
if (utility.isTwoPane()) {
twoPane.Add(key, element, header, isMergeTWO);
} else {
singleScreen.AddOrMoveToFront(key, element, header, isMergeSingle);
onePane.AddOrMoveToFront(key, element, header, isMergeONE);
}
};
&nbsp;
@ -350,10 +350,10 @@ const AddOrMoveToFrontSingle = (key: string, element: ReactElement, header?: IHe
* Automatically Removes all elements of the stack and returns the base element of the screen stack based on screen size
*/
const BackToHome = () =&gt; {
if (utility.isDualScreen()) {
dualScreen.BackToHome();
if (utility.isTwoPane()) {
twoPane.BackToHome();
} else {
singleScreen.BackToHome();
onePane.BackToHome();
}
};
&nbsp;
@ -362,10 +362,10 @@ const BackToHome = () =&gt; {
* Automatically go back one element in the stack based on screen size
*/
const GoBack = () =&gt; {
if (utility.isDualScreen()) {
dualScreen.GoBack();
if (utility.isTwoPane()) {
twoPane.GoBack();
} else {
singleScreen.GoBack();
onePane.GoBack();
}
};
&nbsp;
@ -373,10 +373,10 @@ const GoBack = () =&gt; {
* Automatically replace element in the stack based on screen size
*/
const ReplaceScreen = (key: string, twoPaneElement: React.ReactElement) =&gt; {
if (utility.isDualScreen()) {
dualScreen.ReplaceScreen(key, twoPaneElement);
if (utility.isTwoPane()) {
twoPane.ReplaceScreen(key, twoPaneElement);
} else {
singleScreen.ReplaceScreen(key, twoPaneElement);
onePane.ReplaceScreen(key, twoPaneElement);
}
};
&nbsp;
@ -385,31 +385,31 @@ const ReplaceScreen = (key: string, twoPaneElement: React.ReactElement) =&gt; {
* Automatically replace header in the stack based on screen size
*/
const ReplaceHeader = (key: string, header: IHeader) =&gt; {
if (utility.isDualScreen()) {
dualScreen.ReplaceHeader(key, header);
if (utility.isTwoPane()) {
twoPane.ReplaceHeader(key, header);
} else {
singleScreen.ReplaceHeader(key, header);
onePane.ReplaceHeader(key, header);
}
};
&nbsp;
&nbsp;
&nbsp;
const _autoScreenFunctions = {
const _autoPaneFunctions = {
Add,
AddOrMoveToFront,
AddOrMoveToFrontDual,
AddOrMoveToFrontSingle,
AddOrMoveToFrontTWO,
AddOrMoveToFrontONE,
BackToHome,
GoBack,
ReplaceScreen,
ReplaceHeader
};
&nbsp;
type autoScreenFunctions = typeof _autoScreenFunctions;
type autoPaneFunctions = typeof _autoPaneFunctions;
&nbsp;
const autoScreen: autoScreenFunctions = _autoScreenFunctions;
const autoPane: autoPaneFunctions = _autoPaneFunctions;
&nbsp;
export default autoScreen;
export default autoPane;
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
@ -417,7 +417,7 @@ export default autoScreen;
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/utilities/extensionMethods.ts</title>
<title>Code coverage report for src/utilities/extensionMethods.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\prettify.css" />
<link rel="stylesheet" href="..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/utilities</a> extensionMethods.ts</h1>
<h1><a href="..\..\index.html">All files</a> / <a href="index.html">src/utilities</a> extensionMethods.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -120,7 +120,7 @@ export {}</pre></td></tr></table></pre>
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/utilities</title>
<title>Code coverage report for src/utilities</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\prettify.css" />
<link rel="stylesheet" href="..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\index.html">All files</a> twopane-navigation/utilities</h1>
<h1><a href="..\..\index.html">All files</a> src/utilities</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -72,7 +72,7 @@
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="auto.methods.ts"><a href="auto.methods.ts.html">auto.methods.ts</a></td>
<td class="file high" data-value="autoPane.methods.ts"><a href="autoPane.methods.ts.html">autoPane.methods.ts</a></td>
<td data-value="100" class="pic high">
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
</td>
@ -139,7 +139,7 @@
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/utilities/interfaces.ts</title>
<title>Code coverage report for src/utilities/interfaces.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\prettify.css" />
<link rel="stylesheet" href="..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/utilities</a> interfaces.ts</h1>
<h1><a href="..\..\index.html">All files</a> / <a href="index.html">src/utilities</a> interfaces.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -81,7 +81,59 @@
<a name='L23'></a><a href='#L23'>23</a>
<a name='L24'></a><a href='#L24'>24</a>
<a name='L25'></a><a href='#L25'>25</a>
<a name='L26'></a><a href='#L26'>26</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<a name='L26'></a><a href='#L26'>26</a>
<a name='L27'></a><a href='#L27'>27</a>
<a name='L28'></a><a href='#L28'>28</a>
<a name='L29'></a><a href='#L29'>29</a>
<a name='L30'></a><a href='#L30'>30</a>
<a name='L31'></a><a href='#L31'>31</a>
<a name='L32'></a><a href='#L32'>32</a>
<a name='L33'></a><a href='#L33'>33</a>
<a name='L34'></a><a href='#L34'>34</a>
<a name='L35'></a><a href='#L35'>35</a>
<a name='L36'></a><a href='#L36'>36</a>
<a name='L37'></a><a href='#L37'>37</a>
<a name='L38'></a><a href='#L38'>38</a>
<a name='L39'></a><a href='#L39'>39</a>
<a name='L40'></a><a href='#L40'>40</a>
<a name='L41'></a><a href='#L41'>41</a>
<a name='L42'></a><a href='#L42'>42</a>
<a name='L43'></a><a href='#L43'>43</a>
<a name='L44'></a><a href='#L44'>44</a>
<a name='L45'></a><a href='#L45'>45</a>
<a name='L46'></a><a href='#L46'>46</a>
<a name='L47'></a><a href='#L47'>47</a>
<a name='L48'></a><a href='#L48'>48</a>
<a name='L49'></a><a href='#L49'>49</a>
<a name='L50'></a><a href='#L50'>50</a>
<a name='L51'></a><a href='#L51'>51</a>
<a name='L52'></a><a href='#L52'>52</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
@ -109,28 +161,54 @@
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { ReactElement } from 'react';
import { IHeader } from '../Shared/screenStore/headerStore/header.interface';
&nbsp;
export interface IScreenComponent {
export interface IPaneComponent {
key: string;
twoPaneElement: ReactElement;
header?: IHeader;
screen?: screenType;
screen?: paneType;
}
&nbsp;
export interface IScreenState {
screen: Array&lt;IScreenComponent&gt;;
export interface IPaneState {
screen: Array&lt;IPaneComponent&gt;;
}
&nbsp;
&nbsp;
export interface IEmptyAction {
type: string;
payload: {
};
}
&nbsp;
export enum screenType {
SINGLE = 'SINGLE',
DUAL = 'DUAL'
export enum paneType {
ONE = 'ONE',
TWO = 'TWO'
}
&nbsp;
export interface ITwoPaneAppProps {
/**
* Default element for ONE screen mode
*/
onePaneDefault: IPaneComponent;
&nbsp;
/**
* Default element for TWO screen mode
*/
twoPaneDefault: IPaneComponent;
&nbsp;
/**
* AppContainer if using React Navigation
*/
navigationContainer?: JSX.Element;
&nbsp;
/**
* Items to render in app drawer. If empty, drawer will not be included.
*/
drawerItems?: JSX.Element[];
}
&nbsp;
export interface IPaneHeaderProps extends IHeader {
}
&nbsp;
&nbsp;
&nbsp;</pre></td></tr></table></pre>
<div class='push'></div><!-- for sticky footer -->
@ -138,7 +216,7 @@ export enum screenType {
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\prettify.js"></script>

Просмотреть файл

@ -3,7 +3,7 @@
<html lang="en">
<head>
<title>Code coverage report for twopane-navigation/utilities/utility.methods.ts</title>
<title>Code coverage report for src/utilities/utility.methods.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="..\..\prettify.css" />
<link rel="stylesheet" href="..\..\base.css" />
@ -18,7 +18,7 @@
<body>
<div class='wrapper'>
<div class='pad1'>
<h1><a href="..\..\index.html">All files</a> / <a href="index.html">twopane-navigation/utilities</a> utility.methods.ts</h1>
<h1><a href="..\..\index.html">All files</a> / <a href="index.html">src/utilities</a> utility.methods.ts</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
@ -91,12 +91,12 @@
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { useRef, useEffect } from 'react';
import { store } from '../appStore';
&nbsp;
const isDualScreen = <span class="fstat-no" title="function not covered" >()</span>: boolean =&gt; {
<span class="cstat-no" title="statement not covered" > return store.getState().utilityStoreReducer.isDualScreen</span>
const isTwoPane = <span class="fstat-no" title="function not covered" >()</span>: boolean =&gt; {
<span class="cstat-no" title="statement not covered" > return store.getState().utilityStoreReducer.isTwoPane</span>
};
&nbsp;
const _utilityFunctions = {
isDualScreen,
isTwoPane,
};
&nbsp;
type utilityFunctions = typeof _utilityFunctions;
@ -111,7 +111,7 @@ export default utility;
<div class='footer quiet pad2 space-top1 center small'>
Code coverage generated by
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
at Fri Aug 14 2020 15:47:06 GMT-0700 (Pacific Daylight Time)
at Mon Aug 17 2020 12:07:07 GMT-0700 (Pacific Daylight Time)
</div>
</div>
<script src="..\..\prettify.js"></script>

Просмотреть файл

@ -1,5 +1,5 @@
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\appStore.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\appStore.ts
FN:27,(anonymous_0)
FN:39,(anonymous_1)
FNF:2
@ -24,7 +24,7 @@ BRF:2
BRH:2
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\headerStore\header.actions.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\headerStore\header.actions.ts
FN:5,(anonymous_0)
FN:16,(anonymous_1)
FN:27,(anonymous_2)
@ -45,7 +45,7 @@ BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\headerStore\header.reducer.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\headerStore\header.reducer.ts
FN:10,(anonymous_0)
FNF:1
FNH:1
@ -75,7 +75,7 @@ BRF:7
BRH:7
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\headerStore\header.selector.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\headerStore\header.selector.ts
FN:5,(anonymous_0)
FN:6,(anonymous_1)
FNF:2
@ -90,7 +90,7 @@ BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\headerStore\header.types.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\headerStore\header.types.ts
FNF:0
FNH:0
DA:1,8
@ -102,7 +102,7 @@ BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\headerStore\tests\header.methods.helpers.tsx
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\headerStore\tests\header.methods.helpers.tsx
FN:3,(anonymous_0)
FN:13,(anonymous_1)
FNF:2
@ -119,7 +119,7 @@ BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\keyStore\key.actions.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\keyStore\key.actions.ts
FN:5,(anonymous_0)
FN:21,(anonymous_1)
FN:32,(anonymous_2)
@ -146,7 +146,7 @@ BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\keyStore\key.reducer.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\keyStore\key.reducer.ts
FN:12,(anonymous_0)
FN:29,(anonymous_1)
FN:30,(anonymous_2)
@ -228,7 +228,7 @@ BRF:19
BRH:19
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\keyStore\key.selector.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\keyStore\key.selector.ts
FN:5,(anonymous_0)
FN:6,(anonymous_1)
FNF:2
@ -243,7 +243,7 @@ BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\keyStore\key.types.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\keyStore\key.types.ts
FNF:0
FNH:0
DA:1,8
@ -258,7 +258,7 @@ BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\keyStore\tests\key.methods.helpers.tsx
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\keyStore\tests\key.methods.helpers.tsx
FN:6,(anonymous_0)
FN:20,(anonymous_1)
FN:29,(anonymous_2)
@ -290,7 +290,7 @@ BRF:1
BRH:1
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\twoPaneElementStore\twoPaneElement.action.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\paneElementStore\paneElement.action.ts
FN:6,(anonymous_0)
FN:17,(anonymous_1)
FN:29,(anonymous_2)
@ -311,7 +311,7 @@ BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\twoPaneElementStore\twoPaneElement.reducer.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\paneElementStore\paneElement.reducer.ts
FN:9,(anonymous_0)
FNF:1
FNH:1
@ -341,7 +341,7 @@ BRF:7
BRH:7
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\twoPaneElementStore\twoPaneElement.selectors.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\paneElementStore\paneElement.selectors.ts
FN:5,(anonymous_0)
FN:6,(anonymous_1)
FNF:2
@ -356,7 +356,7 @@ BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\twoPaneElementStore\twoPaneElement.types.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\paneElementStore\paneElement.types.ts
FNF:0
FNH:0
DA:1,8
@ -368,7 +368,7 @@ BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\screenStore\twoPaneElementStore\tests\twoPaneElement.methods.helpers.tsx
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\screenStore\paneElementStore\tests\paneElement.methods.helpers.tsx
FN:4,(anonymous_0)
FN:16,(anonymous_1)
FNF:2
@ -385,7 +385,7 @@ BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\utilityStore\utilityStore.actions.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\utilityStore\utilityStore.actions.ts
FN:4,(anonymous_0)
FNF:1
FNH:1
@ -398,7 +398,7 @@ BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\utilityStore\utilityStore.methods.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\utilityStore\utilityStore.methods.ts
FN:4,(anonymous_0)
FNF:1
FNH:1
@ -413,7 +413,7 @@ BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\utilityStore\utilityStore.reducer.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\utilityStore\utilityStore.reducer.ts
FN:7,(anonymous_0)
FNF:1
FNH:1
@ -432,7 +432,7 @@ BRF:3
BRH:3
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\Shared\utilityStore\utilityStore.types.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\Shared\utilityStore\utilityStore.types.ts
FNF:0
FNH:0
DA:1,8
@ -442,39 +442,171 @@ BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\dualApp\DualApp.tsx
FN:32,(anonymous_0)
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneHeader\PaneHeader.style.ts
FNF:0
FNH:0
DA:3,1
LF:1
LH:1
BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneHeader\PaneHeader.tsx
FN:6,(anonymous_0)
FN:15,(anonymous_1)
FNF:2
FNH:1
FNDA:2,(anonymous_0)
FNDA:0,(anonymous_1)
DA:6,1
DA:7,2
DA:15,0
LF:3
LH:2
BRDA:11,0,0,2
BRDA:11,0,1,0
BRF:2
BRH:1
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneHeaderContainer\PaneHeaderContainer.style.ts
FNF:0
FNH:0
DA:3,1
LF:1
LH:1
BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneHeaderContainer\PaneHeaderContainer.tsx
FN:14,(anonymous_0)
FN:36,(anonymous_1)
FN:37,(anonymous_2)
FN:39,(anonymous_3)
FNF:2
FNH:1
FNDA:2,(anonymous_0)
FNDA:0,(anonymous_1)
DA:14,1
DA:16,2
DA:18,2
DA:36,0
LF:4
LH:3
BRDA:20,0,0,0
BRDA:20,0,1,2
BRDA:27,1,0,0
BRDA:27,1,1,0
BRDA:34,2,0,0
BRDA:34,2,1,0
BRDA:47,3,0,2
BRDA:47,3,1,0
BRDA:51,4,0,2
BRDA:51,4,1,0
BRF:10
BRH:3
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneOverlay\PaneOverlay.styles.ts
FNF:0
FNH:0
DA:3,1
LF:1
LH:1
BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneOverlay\PaneOverlay.tsx
FN:31,(anonymous_0)
FN:37,(anonymous_1)
FNF:2
FNH:1
FNDA:1,(anonymous_0)
FNDA:0,(anonymous_1)
DA:31,1
DA:32,1
DA:39,0
DA:42,0
DA:44,0
LF:5
LH:2
BRDA:34,0,0,1
BRDA:34,0,1,1
BRDA:39,1,0,0
BRDA:39,1,1,0
BRDA:42,2,0,0
BRDA:42,2,1,0
BRF:6
BRH:2
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\paneRenderer\PaneRenderer.tsx
FN:13,(anonymous_0)
FN:16,(anonymous_1)
FN:17,(anonymous_2)
FN:21,(anonymous_3)
FN:28,(anonymous_4)
FNF:5
FNH:4
FNDA:2,(anonymous_0)
FNDA:2,(anonymous_1)
FNDA:2,(anonymous_2)
FNDA:2,(anonymous_3)
FNDA:0,(anonymous_4)
DA:13,1
DA:14,2
DA:16,2
DA:17,2
DA:18,2
DA:22,2
DA:28,0
DA:42,1
LF:8
LH:7
BRDA:23,0,0,1
BRDA:23,0,1,1
BRDA:26,1,0,1
BRDA:26,1,1,1
BRDA:28,2,0,0
BRDA:28,2,1,0
BRF:6
BRH:4
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\twoPaneApp\TwoPaneApp.tsx
FN:11,(anonymous_0)
FN:15,(anonymous_1)
FN:16,(anonymous_2)
FN:18,(anonymous_3)
FNF:4
FNH:2
FNDA:1,(anonymous_0)
FNDA:0,(anonymous_1)
FNDA:0,(anonymous_2)
FNDA:1,(anonymous_3)
DA:32,1
DA:34,1
DA:36,1
DA:37,1
DA:39,1
DA:40,1
DA:41,1
DA:42,1
DA:46,1
DA:11,1
DA:13,1
DA:15,1
DA:16,1
DA:18,1
DA:19,1
DA:20,1
DA:21,1
DA:25,1
LF:9
LH:9
BRDA:40,0,0,1
BRDA:40,0,1,0
BRDA:40,1,0,1
BRDA:40,1,1,1
BRDA:49,2,0,0
BRDA:49,2,1,1
BRDA:19,0,0,1
BRDA:19,0,1,0
BRDA:19,1,0,1
BRDA:19,1,1,1
BRDA:28,2,0,0
BRDA:28,2,1,1
BRF:6
BRH:4
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\dualHub\DualHub.tsx
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\components\twoPaneHub\TwoPaneHub.tsx
FN:18,(anonymous_0)
FN:25,(anonymous_1)
FN:29,(anonymous_2)
@ -515,217 +647,7 @@ BRF:2
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenHeader\ScreenHeader.style.ts
FNF:0
FNH:0
DA:3,1
LF:1
LH:1
BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenHeader\ScreenHeader.tsx
FN:9,(anonymous_0)
FN:18,(anonymous_1)
FNF:2
FNH:1
FNDA:2,(anonymous_0)
FNDA:0,(anonymous_1)
DA:9,1
DA:10,2
DA:18,0
LF:3
LH:2
BRDA:14,0,0,2
BRDA:14,0,1,0
BRF:2
BRH:1
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenHeaderContainer\ScreenHeaderContainer.style.ts
FNF:0
FNH:0
DA:3,1
LF:1
LH:1
BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenHeaderContainer\ScreenHeaderContainer.tsx
FN:14,(anonymous_0)
FN:36,(anonymous_1)
FNF:2
FNH:1
FNDA:2,(anonymous_0)
FNDA:0,(anonymous_1)
DA:14,1
DA:16,2
DA:18,2
DA:36,0
LF:4
LH:3
BRDA:20,0,0,0
BRDA:20,0,1,2
BRDA:27,1,0,0
BRDA:27,1,1,0
BRDA:34,2,0,0
BRDA:34,2,1,0
BRDA:47,3,0,2
BRDA:47,3,1,0
BRDA:51,4,0,2
BRDA:51,4,1,0
BRF:10
BRH:3
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenOverlay\ScreenOverlay.styles.ts
FNF:0
FNH:0
DA:3,1
LF:1
LH:1
BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenOverlay\ScreenOverlay.tsx
FN:31,(anonymous_0)
FN:37,(anonymous_1)
FNF:2
FNH:1
FNDA:1,(anonymous_0)
FNDA:0,(anonymous_1)
DA:31,1
DA:32,1
DA:39,0
DA:42,0
DA:44,0
LF:5
LH:2
BRDA:34,0,0,1
BRDA:34,0,1,1
BRDA:39,1,0,0
BRDA:39,1,1,0
BRDA:42,2,0,0
BRDA:42,2,1,0
BRF:6
BRH:2
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\components\screenRenderer\ScreenRenderer.tsx
FN:13,(anonymous_0)
FN:16,(anonymous_1)
FN:17,(anonymous_2)
FN:21,(anonymous_3)
FN:28,(anonymous_4)
FNF:5
FNH:4
FNDA:2,(anonymous_0)
FNDA:2,(anonymous_1)
FNDA:2,(anonymous_2)
FNDA:2,(anonymous_3)
FNDA:0,(anonymous_4)
DA:13,1
DA:14,2
DA:16,2
DA:17,2
DA:18,2
DA:22,2
DA:28,0
DA:42,1
LF:8
LH:7
BRDA:23,0,0,1
BRDA:23,0,1,1
BRDA:26,1,0,1
BRDA:26,1,1,1
BRDA:28,2,0,0
BRDA:28,2,1,0
BRF:6
BRH:4
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\dualScreen\dualScreenStore\dualScreen.methods.ts
FN:14,(anonymous_0)
FN:27,(anonymous_1)
FN:29,(anonymous_2)
FN:31,(anonymous_3)
FN:40,(anonymous_4)
FN:42,(anonymous_5)
FN:54,(anonymous_6)
FN:56,(anonymous_7)
FN:68,(anonymous_8)
FN:70,(anonymous_9)
FN:81,(anonymous_10)
FN:88,(anonymous_11)
FNF:12
FNH:12
FNDA:8,(anonymous_0)
FNDA:4,(anonymous_1)
FNDA:11,(anonymous_2)
FNDA:7,(anonymous_3)
FNDA:1,(anonymous_4)
FNDA:5,(anonymous_5)
FNDA:2,(anonymous_6)
FNDA:10,(anonymous_7)
FNDA:2,(anonymous_8)
FNDA:8,(anonymous_9)
FNDA:2,(anonymous_10)
FNDA:2,(anonymous_11)
DA:14,3
DA:16,8
DA:17,8
DA:18,8
DA:19,4
DA:27,3
DA:28,4
DA:29,11
DA:31,7
DA:32,1
DA:34,3
DA:40,3
DA:41,1
DA:42,1
DA:43,5
DA:44,3
DA:54,3
DA:55,2
DA:56,10
DA:58,2
DA:59,5
DA:60,5
DA:62,2
DA:68,3
DA:69,2
DA:70,8
DA:72,2
DA:73,2
DA:74,2
DA:81,3
DA:82,2
DA:88,3
DA:89,2
DA:92,3
DA:104,3
LF:35
LH:35
BRDA:14,0,0,3
BRDA:18,1,0,4
BRDA:18,1,1,4
BRDA:27,2,0,0
BRDA:31,3,0,1
BRDA:31,3,1,3
BRDA:43,4,0,3
BRDA:43,4,1,2
BRDA:43,5,0,5
BRDA:43,5,1,5
BRF:10
BRH:9
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\singleScreen\singleScreenStore\singleScreen.methods.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\onePane\onePaneStore\onePane.methods.ts
FN:15,(anonymous_0)
FN:27,(anonymous_1)
FN:29,(anonymous_2)
@ -803,7 +725,85 @@ BRF:10
BRH:9
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\utilities\auto.methods.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\twoPane\twoPaneStore\twoPane.methods.ts
FN:14,(anonymous_0)
FN:27,(anonymous_1)
FN:29,(anonymous_2)
FN:31,(anonymous_3)
FN:40,(anonymous_4)
FN:42,(anonymous_5)
FN:54,(anonymous_6)
FN:56,(anonymous_7)
FN:68,(anonymous_8)
FN:70,(anonymous_9)
FN:81,(anonymous_10)
FN:88,(anonymous_11)
FNF:12
FNH:12
FNDA:8,(anonymous_0)
FNDA:4,(anonymous_1)
FNDA:11,(anonymous_2)
FNDA:7,(anonymous_3)
FNDA:1,(anonymous_4)
FNDA:5,(anonymous_5)
FNDA:2,(anonymous_6)
FNDA:10,(anonymous_7)
FNDA:2,(anonymous_8)
FNDA:8,(anonymous_9)
FNDA:2,(anonymous_10)
FNDA:2,(anonymous_11)
DA:14,3
DA:16,8
DA:17,8
DA:18,8
DA:19,4
DA:27,3
DA:28,4
DA:29,11
DA:31,7
DA:32,1
DA:34,3
DA:40,3
DA:41,1
DA:42,1
DA:43,5
DA:44,3
DA:54,3
DA:55,2
DA:56,10
DA:58,2
DA:59,5
DA:60,5
DA:62,2
DA:68,3
DA:69,2
DA:70,8
DA:72,2
DA:73,2
DA:74,2
DA:81,3
DA:82,2
DA:88,3
DA:89,2
DA:92,3
DA:104,3
LF:35
LH:35
BRDA:14,0,0,3
BRDA:18,1,0,4
BRDA:18,1,1,4
BRDA:27,2,0,0
BRDA:31,3,0,1
BRDA:31,3,1,3
BRDA:43,4,0,3
BRDA:43,4,1,2
BRDA:43,5,0,5
BRDA:43,5,1,5
BRF:10
BRH:9
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\utilities\autoPane.methods.ts
FN:11,(anonymous_0)
FN:23,(anonymous_1)
FN:35,(anonymous_2)
@ -886,7 +886,7 @@ BRF:24
BRH:24
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\utilities\extensionMethods.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\utilities\extensionMethods.ts
FN:11,(anonymous_0)
FNF:1
FNH:1
@ -903,7 +903,7 @@ BRF:2
BRH:1
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\utilities\interfaces.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\utilities\interfaces.ts
FNF:0
FNH:0
LF:0
@ -912,7 +912,7 @@ BRF:0
BRH:0
end_of_record
TN:
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\utilities\utility.methods.ts
SF:C:\Users\v-kealoi\Documents\DEV\react-native-dualscreen\twopane-navigation\packages\twopane-navigation\src\utilities\utility.methods.ts
FN:4,(anonymous_0)
FNF:1
FNH:0

Просмотреть файл

@ -1,6 +1,6 @@
import { IHeaderAction, IHeader } from "./header.interface";
import { PUSH_HEADER, REPLACE_HEADER, REMOVE_KEY_HEADER } from "./header.types";
import { IKeyAction, IKeyOnlyAction } from "../keyStore/key.interface";
import { IKeyOnlyAction } from "../keyStore/key.interface";
export const pushHeader = (
key: string,

Просмотреть файл

@ -1,5 +1,5 @@
import { StyleProp, ViewStyle } from "react-native";
import { ReactElement } from "react";
import react, { ReactElement } from "react";
export interface IHeader {
title?: string;

Просмотреть файл

@ -1,9 +1,9 @@
import { screenType } from "../../../utilities/interfaces";
import { paneType } from "../../../utilities/interfaces";
import { IKeyAction, IScreenOnlyAction, IKeyScreenAction } from "./key.interface";
import { PUSH_KEY, POP_KEY, MOVE_TO_FRONT_KEY, REMOVE_KEY, CHANGE_SCREEN_KEY, POP_TO_FRONT_KEY } from "./key.types";
export const pushKey = (
screen: screenType,
screen: paneType,
key: string,
isMerge: boolean
): IKeyAction => ({
@ -18,7 +18,7 @@ export const pushKey = (
/**
* Removes all elements of the stack and returns element in index 0
*/
export const popToFront = (screen: screenType): IScreenOnlyAction => ({
export const popToFront = (screen: paneType): IScreenOnlyAction => ({
type: POP_TO_FRONT_KEY,
payload: {
screen: screen
@ -29,14 +29,14 @@ export const popToFront = (screen: screenType): IScreenOnlyAction => ({
/**
* Go back one element in the stack
*/
export const popScreen = (screen: screenType): IScreenOnlyAction => ({
export const popScreen = (screen: paneType): IScreenOnlyAction => ({
type: POP_KEY,
payload: {
screen: screen
}
});
export const moveToFront = (screen: screenType,
export const moveToFront = (screen: paneType,
key: string
): IKeyScreenAction => ({
type: MOVE_TO_FRONT_KEY,
@ -46,7 +46,7 @@ export const moveToFront = (screen: screenType,
}
});
export const changeScreen = (screen: screenType,
export const changeScreen = (screen: paneType,
key: string
): IKeyScreenAction => ({
type: CHANGE_SCREEN_KEY,

Просмотреть файл

@ -1,4 +1,4 @@
import { screenType } from "../../../utilities/interfaces";
import { paneType } from "../../../utilities/interfaces";
export interface IKeyState {
keys: Array<IKeyObject>;
@ -7,7 +7,7 @@ export interface IKeyState {
export interface IKeyAction {
type: string;
payload: {
screen: screenType,
screen: paneType,
key: string;
isMerge: boolean;
};
@ -23,14 +23,14 @@ export interface IKeyOnlyAction {
export interface IScreenOnlyAction {
type: string;
payload: {
screen: screenType;
screen: paneType;
};
}
export interface IKeyScreenAction {
type: string;
payload: {
screen: screenType;
screen: paneType;
key: string;
};
}
@ -40,5 +40,5 @@ export interface IKeyScreenAction {
export interface IKeyObject {
key: string,
isMerge: boolean;
screen: screenType;
screen: paneType;
}

Просмотреть файл

@ -1,5 +1,5 @@
import {
screenType,
paneType,
} from '../../../utilities/interfaces';
import { IKeyState, IKeyAction, IKeyObject } from './key.interface';
import _ from 'lodash';
@ -26,59 +26,59 @@ const keyReducers = (
};
}
case POP_TO_FRONT_KEY: {
const singleScreenState = state.keys.filter(x => x.screen === screenType.SINGLE);
const dualScreenState = state.keys.filter(x => x.screen === screenType.DUAL);
const onePaneState = state.keys.filter(x => x.screen === paneType.ONE);
const twoPaneState = state.keys.filter(x => x.screen === paneType.TWO);
if (action.payload.screen === screenType.SINGLE) {
if (action.payload.screen === paneType.ONE) {
return {
...state, //state retains state for all variables
keys: [singleScreenState[0], ...dualScreenState]
keys: [onePaneState[0], ...twoPaneState]
};
};
return {
...state, //state retains state for all variables
keys: [...singleScreenState, dualScreenState[0]]
keys: [...onePaneState, twoPaneState[0]]
};
}
case POP_KEY: {
const singleScreenState = state.keys.filter(x => x.screen === screenType.SINGLE);
const dualScreenState = state.keys.filter(x => x.screen === screenType.DUAL);
const onePaneState = state.keys.filter(x => x.screen === paneType.ONE);
const twoPaneState = state.keys.filter(x => x.screen === paneType.TWO);
if (action.payload.screen === screenType.SINGLE) {
singleScreenState.pop();
if (action.payload.screen === paneType.ONE) {
onePaneState.pop();
} else {
dualScreenState.pop();
twoPaneState.pop();
}
return {
...state,
keys: [...singleScreenState, ...dualScreenState]
keys: [...onePaneState, ...twoPaneState]
};
}
case MOVE_TO_FRONT_KEY: {
//TODO: REMOVE LODASH AND CREATE OUR OWN
const singleScreenState = state.keys.filter(x => x.screen === screenType.SINGLE);
const dualScreenState = state.keys.filter(x => x.screen === screenType.DUAL);
const onePaneState = state.keys.filter(x => x.screen === paneType.ONE);
const twoPaneState = state.keys.filter(x => x.screen === paneType.TWO);
if (action.payload.screen === screenType.SINGLE) {
const sorted = _.sortBy(singleScreenState, function (item) {
if (action.payload.screen === paneType.ONE) {
const sorted = _.sortBy(onePaneState, function (item) {
return item.key === `${action.payload.key}` ? 1 : 0;
});
return {
...state, //retains state for all variables
keys: [...sorted, ...dualScreenState]
keys: [...sorted, ...twoPaneState]
};
};
const sorted = _.sortBy(dualScreenState, function (item) {
const sorted = _.sortBy(twoPaneState, function (item) {
return item.key === `${action.payload.key}` ? 1 : 0;
});
return {
...state, //retains state for all variables
keys: [...singleScreenState, ...sorted]
keys: [...onePaneState, ...sorted]
};
}
case CHANGE_SCREEN_KEY: {

Просмотреть файл

@ -1,9 +1,9 @@
import { IKeyAction, IKeyState, IKeyObject } from '../key.interface';
import { screenType } from '../../../../utilities/interfaces';
import { paneType } from '../../../../utilities/interfaces';
import { store } from '../../../../appStore';
import * as keyActions from '../key.actions';
export const KeyActionBuilder = (type: string, screen: screenType, key: string, isMerge: boolean): IKeyAction => {
export const KeyActionBuilder = (type: string, screen: paneType, key: string, isMerge: boolean): IKeyAction => {
return {
type: type,
payload: {
@ -17,7 +17,7 @@ export const KeyActionBuilder = (type: string, screen: screenType, key: string,
* mocks keyState building 3 objects for the final state
*/
//TODO: TURN INTO FOR LOOP AUTO INCREMENT FUNCTION
export const mockKeyState = (screen: screenType, isMerge: boolean, prependKey: string = ''): IKeyState => {
export const mockKeyState = (screen: paneType, isMerge: boolean, prependKey: string = ''): IKeyState => {
const first = keyObjectBuilder(`${prependKey}first`, isMerge, screen)
const second = keyObjectBuilder(`${prependKey}second`, isMerge, screen)
const third = keyObjectBuilder(`${prependKey}third`, isMerge, screen)
@ -26,7 +26,7 @@ export const mockKeyState = (screen: screenType, isMerge: boolean, prependKey: s
}
}
export const keyObjectBuilder = (key: string, isMerge: boolean, screen: screenType): IKeyObject => {
export const keyObjectBuilder = (key: string, isMerge: boolean, screen: paneType): IKeyObject => {
return {
key: key,
isMerge: isMerge,
@ -34,7 +34,7 @@ export const keyObjectBuilder = (key: string, isMerge: boolean, screen: screenTy
}
}
export const populateKeyStore3 = (screen: screenType, isMerge: boolean) => {
export const populateKeyStore3 = (screen: paneType, isMerge: boolean) => {
const keyState = mockKeyState(screen, isMerge);
keyState.keys.map(val => store.dispatch(keyActions.pushKey(val.screen, val.key, val.isMerge)))
}

Просмотреть файл

@ -1,7 +1,7 @@
import { store, resetApp } from "../../../../appStore"
import { IKeyState } from "../key.interface";
import { populateKeyStore3, mockKeyState, keyObjectBuilder } from "./key.methods.helpers";
import { screenType } from "../../../../utilities/interfaces";
import { paneType } from "../../../../utilities/interfaces";
import { pushKey, popToFront, popScreen, moveToFront, changeScreen } from "../key.actions";
describe('keyStore tests', () => {
@ -9,16 +9,16 @@ describe('keyStore tests', () => {
store.dispatch(resetApp())
});
describe('singleScreen', () => {
describe('onePane', () => {
it('PUSH_KEY', () => {
// Arrange
const expectedState = mockKeyState(screenType.SINGLE, false, `${screenType.SINGLE}_`);
const expectedState = mockKeyState(paneType.ONE, false, `${paneType.ONE}_`);
// Act
store.dispatch(pushKey(screenType.SINGLE, `first`, false));
store.dispatch(pushKey(screenType.SINGLE, `second`, false));
store.dispatch(pushKey(screenType.SINGLE, `third`, false));
store.dispatch(pushKey(paneType.ONE, `first`, false));
store.dispatch(pushKey(paneType.ONE, `second`, false));
store.dispatch(pushKey(paneType.ONE, `third`, false));
const data = store.getState().KeyReducers;
// Assert
expect(data).toStrictEqual(expectedState)
@ -27,19 +27,19 @@ describe('keyStore tests', () => {
it('PUSH_KEY_EXPECT_DUPLICATION', () => {
// Arrange
const original = mockKeyState(screenType.SINGLE, false, `${screenType.SINGLE}_`);
const duplicate = mockKeyState(screenType.SINGLE, false, `${screenType.SINGLE}_`);
const original = mockKeyState(paneType.ONE, false, `${paneType.ONE}_`);
const duplicate = mockKeyState(paneType.ONE, false, `${paneType.ONE}_`);
const expectedState: IKeyState = {
keys: [...original.keys, ...duplicate.keys]
}
// Act
store.dispatch(pushKey(screenType.SINGLE, `first`, false));
store.dispatch(pushKey(screenType.SINGLE, `second`, false));
store.dispatch(pushKey(screenType.SINGLE, `third`, false));
store.dispatch(pushKey(screenType.SINGLE, `first`, false));
store.dispatch(pushKey(screenType.SINGLE, `second`, false));
store.dispatch(pushKey(screenType.SINGLE, `third`, false));
store.dispatch(pushKey(paneType.ONE, `first`, false));
store.dispatch(pushKey(paneType.ONE, `second`, false));
store.dispatch(pushKey(paneType.ONE, `third`, false));
store.dispatch(pushKey(paneType.ONE, `first`, false));
store.dispatch(pushKey(paneType.ONE, `second`, false));
store.dispatch(pushKey(paneType.ONE, `third`, false));
const data = store.getState().KeyReducers;
// Assert
@ -50,178 +50,178 @@ describe('keyStore tests', () => {
// Arrange
const expectedState: IKeyState =
{
keys: [keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE)]
keys: [keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE)]
}
populateKeyStore3(screenType.SINGLE, false);
populateKeyStore3(paneType.ONE, false);
// Act
store.dispatch(popToFront(screenType.SINGLE))
store.dispatch(popToFront(paneType.ONE))
const data = store.getState().KeyReducers;
// Assert
expect(data).toStrictEqual(expectedState)
})
it('POP_TO_FRONT_KEY dualScreen untouched', () => {
it('POP_TO_FRONT_KEY twoPane untouched', () => {
// Arrange
const expectedSingleState: IKeyState =
const expectedONEState: IKeyState =
{
keys: [keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE)]
keys: [keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE)]
}
const expectedDualState: IKeyState = mockKeyState(screenType.DUAL, false, `${screenType.DUAL}_`)
populateKeyStore3(screenType.SINGLE, false);
populateKeyStore3(screenType.DUAL, false);
const expectedTWOState: IKeyState = mockKeyState(paneType.TWO, false, `${paneType.TWO}_`)
populateKeyStore3(paneType.ONE, false);
populateKeyStore3(paneType.TWO, false);
// Act
store.dispatch(popToFront(screenType.SINGLE))
store.dispatch(popToFront(paneType.ONE))
const data = store.getState().KeyReducers;
const singleScreenState = data.keys.filter(x => x.screen === screenType.SINGLE);
const dualScreenState = data.keys.filter(x => x.screen === screenType.DUAL);
const onePaneState = data.keys.filter(x => x.screen === paneType.ONE);
const twoPaneState = data.keys.filter(x => x.screen === paneType.TWO);
// Assert
expect(singleScreenState).toStrictEqual(expectedSingleState.keys)
expect(dualScreenState).toStrictEqual(expectedDualState.keys)
expect(onePaneState).toStrictEqual(expectedONEState.keys)
expect(twoPaneState).toStrictEqual(expectedTWOState.keys)
})
it('POP_KEY', () => {
// Arrange
const expectedSingleState: IKeyState =
const expectedONEState: IKeyState =
{
keys: [keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE),
keyObjectBuilder(`${screenType.SINGLE}_second`, false, screenType.SINGLE)]
keys: [keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE),
keyObjectBuilder(`${paneType.ONE}_second`, false, paneType.ONE)]
}
populateKeyStore3(screenType.SINGLE, false);
populateKeyStore3(paneType.ONE, false);
// Act
store.dispatch(popScreen(screenType.SINGLE))
store.dispatch(popScreen(paneType.ONE))
const data = store.getState().KeyReducers;
// Assert
expect(data).toStrictEqual(expectedSingleState)
expect(data).toStrictEqual(expectedONEState)
})
it('POP_KEY Multiple', () => {
// Arrange
const expectedSingleState: IKeyState =
const expectedONEState: IKeyState =
{
keys: [keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE)]
keys: [keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE)]
}
populateKeyStore3(screenType.SINGLE, false);
populateKeyStore3(screenType.SINGLE, false);
populateKeyStore3(paneType.ONE, false);
populateKeyStore3(paneType.ONE, false);
// Act
store.dispatch(popScreen(screenType.SINGLE))
store.dispatch(popScreen(screenType.SINGLE))
store.dispatch(popScreen(screenType.SINGLE))
store.dispatch(popScreen(screenType.SINGLE))
store.dispatch(popScreen(screenType.SINGLE))
store.dispatch(popScreen(paneType.ONE))
store.dispatch(popScreen(paneType.ONE))
store.dispatch(popScreen(paneType.ONE))
store.dispatch(popScreen(paneType.ONE))
store.dispatch(popScreen(paneType.ONE))
const data = store.getState().KeyReducers;
// Assert
expect(data).toStrictEqual(expectedSingleState)
expect(data).toStrictEqual(expectedONEState)
})
it('POP_KEY dualScreen untouched', () => {
it('POP_KEY twoPane untouched', () => {
// Arrange
const expectedSingleState: IKeyState =
const expectedONEState: IKeyState =
{
keys: [keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE),
keyObjectBuilder(`${screenType.SINGLE}_second`, false, screenType.SINGLE)]
keys: [keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE),
keyObjectBuilder(`${paneType.ONE}_second`, false, paneType.ONE)]
}
const expectedDualState: IKeyState = mockKeyState(screenType.DUAL, false, `${screenType.DUAL}_`);
const expectedTWOState: IKeyState = mockKeyState(paneType.TWO, false, `${paneType.TWO}_`);
populateKeyStore3(screenType.SINGLE, false);
populateKeyStore3(screenType.DUAL, false);
populateKeyStore3(paneType.ONE, false);
populateKeyStore3(paneType.TWO, false);
// Act
store.dispatch(popScreen(screenType.SINGLE))
store.dispatch(popScreen(paneType.ONE))
const data = store.getState().KeyReducers;
const singleScreenState = data.keys.filter(x => x.screen === screenType.SINGLE);
const dualScreenState = data.keys.filter(x => x.screen === screenType.DUAL);
const onePaneState = data.keys.filter(x => x.screen === paneType.ONE);
const twoPaneState = data.keys.filter(x => x.screen === paneType.TWO);
// Assert
expect(singleScreenState).toStrictEqual(expectedSingleState.keys)
expect(dualScreenState).toStrictEqual(expectedDualState.keys)
expect(onePaneState).toStrictEqual(expectedONEState.keys)
expect(twoPaneState).toStrictEqual(expectedTWOState.keys)
})
it('MOVE_TO_FRONT_KEY', () => {
// Arrange
const expectedSingleState: IKeyState =
const expectedONEState: IKeyState =
{
keys: [keyObjectBuilder(`${screenType.SINGLE}_second`, false, screenType.SINGLE),
keyObjectBuilder(`${screenType.SINGLE}_third`, false, screenType.SINGLE),
keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE)]
keys: [keyObjectBuilder(`${paneType.ONE}_second`, false, paneType.ONE),
keyObjectBuilder(`${paneType.ONE}_third`, false, paneType.ONE),
keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE)]
}
// Act
populateKeyStore3(screenType.SINGLE, false);
store.dispatch(moveToFront(screenType.SINGLE, `${screenType.SINGLE}_first`));
populateKeyStore3(paneType.ONE, false);
store.dispatch(moveToFront(paneType.ONE, `${paneType.ONE}_first`));
const data = store.getState().KeyReducers;
// Assert
expect(data).toStrictEqual(expectedSingleState)
expect(data).toStrictEqual(expectedONEState)
})
it('MOVE_TO_FRONT_KEY dualScreen untouched', () => {
it('MOVE_TO_FRONT_KEY twoPane untouched', () => {
// Arrange
const expectedSingleState: IKeyState =
const expectedONEState: IKeyState =
{
keys: [keyObjectBuilder(`${screenType.SINGLE}_second`, false, screenType.SINGLE),
keyObjectBuilder(`${screenType.SINGLE}_third`, false, screenType.SINGLE),
keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE)]
keys: [keyObjectBuilder(`${paneType.ONE}_second`, false, paneType.ONE),
keyObjectBuilder(`${paneType.ONE}_third`, false, paneType.ONE),
keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE)]
}
const expectedDualState: IKeyState = mockKeyState(screenType.DUAL, false, `${screenType.DUAL}_`);
populateKeyStore3(screenType.SINGLE, false);
populateKeyStore3(screenType.DUAL, false);
const expectedTWOState: IKeyState = mockKeyState(paneType.TWO, false, `${paneType.TWO}_`);
populateKeyStore3(paneType.ONE, false);
populateKeyStore3(paneType.TWO, false);
// Act
store.dispatch(moveToFront(screenType.SINGLE, `${screenType.SINGLE}_first`));
store.dispatch(moveToFront(paneType.ONE, `${paneType.ONE}_first`));
const data = store.getState().KeyReducers;
const singleScreenState = data.keys.filter(x => x.screen === screenType.SINGLE);
const dualScreenState = data.keys.filter(x => x.screen === screenType.DUAL);
const onePaneState = data.keys.filter(x => x.screen === paneType.ONE);
const twoPaneState = data.keys.filter(x => x.screen === paneType.TWO);
// Assert
expect(singleScreenState).toStrictEqual(expectedSingleState.keys)
expect(dualScreenState).toStrictEqual(expectedDualState.keys)
expect(onePaneState).toStrictEqual(expectedONEState.keys)
expect(twoPaneState).toStrictEqual(expectedTWOState.keys)
})
it('CHANGE_SCREEN_KEY', () => {
// Arrange
const expectedSingleState: IKeyState =
const expectedONEState: IKeyState =
{
keys: [keyObjectBuilder(`${screenType.SINGLE}_first`, false, screenType.SINGLE),
keyObjectBuilder(`${screenType.SINGLE}_second`, false, screenType.DUAL),
keyObjectBuilder(`${screenType.SINGLE}_third`, false, screenType.SINGLE)]
keys: [keyObjectBuilder(`${paneType.ONE}_first`, false, paneType.ONE),
keyObjectBuilder(`${paneType.ONE}_second`, false, paneType.TWO),
keyObjectBuilder(`${paneType.ONE}_third`, false, paneType.ONE)]
}
// Act
populateKeyStore3(screenType.SINGLE, false);
store.dispatch(changeScreen(screenType.DUAL, `${screenType.SINGLE}_second`));
populateKeyStore3(paneType.ONE, false);
store.dispatch(changeScreen(paneType.TWO, `${paneType.ONE}_second`));
const data = store.getState().KeyReducers;
// Assert
expect(data).toStrictEqual(expectedSingleState)
expect(data).toStrictEqual(expectedONEState)
})
});
describe('dualScreen', () => {
describe('twoPane', () => {
it('PUSH_KEY', () => {
// Arrange
const expectedState = mockKeyState(screenType.DUAL, false, `${screenType.DUAL}_`);
const expectedState = mockKeyState(paneType.TWO, false, `${paneType.TWO}_`);
// Act
store.dispatch(pushKey(screenType.DUAL, `first`, false));
store.dispatch(pushKey(screenType.DUAL, `second`, false));
store.dispatch(pushKey(screenType.DUAL, `third`, false));
store.dispatch(pushKey(paneType.TWO, `first`, false));
store.dispatch(pushKey(paneType.TWO, `second`, false));
store.dispatch(pushKey(paneType.TWO, `third`, false));
const data = store.getState().KeyReducers;
// Assert
@ -230,19 +230,19 @@ describe('keyStore tests', () => {
it('PUSH_KEY_EXPECT_DUPLICATION', () => {
// Arrange
const original = mockKeyState(screenType.DUAL, false, `${screenType.DUAL}_`);
const duplicate = mockKeyState(screenType.DUAL, false, `${screenType.DUAL}_`);
const original = mockKeyState(paneType.TWO, false, `${paneType.TWO}_`);
const duplicate = mockKeyState(paneType.TWO, false, `${paneType.TWO}_`);
const expectedState: IKeyState = {
keys: [...original.keys, ...duplicate.keys]
}
// Act
store.dispatch(pushKey(screenType.DUAL, `first`, false));
store.dispatch(pushKey(screenType.DUAL, `second`, false));
store.dispatch(pushKey(screenType.DUAL, `third`, false));
store.dispatch(pushKey(screenType.DUAL, `first`, false));
store.dispatch(pushKey(screenType.DUAL, `second`, false));
store.dispatch(pushKey(screenType.DUAL, `third`, false));
store.dispatch(pushKey(paneType.TWO, `first`, false));
store.dispatch(pushKey(paneType.TWO, `second`, false));
store.dispatch(pushKey(paneType.TWO, `third`, false));
store.dispatch(pushKey(paneType.TWO, `first`, false));
store.dispatch(pushKey(paneType.TWO, `second`, false));
store.dispatch(pushKey(paneType.TWO, `third`, false));
const data = store.getState().KeyReducers;
// Assert
@ -253,165 +253,165 @@ describe('keyStore tests', () => {
// Arrange
const expectedState: IKeyState =
{
keys: [keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL)]
keys: [keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO)]
}
populateKeyStore3(screenType.DUAL, false);
populateKeyStore3(paneType.TWO, false);
// Act
store.dispatch(popToFront(screenType.DUAL))
store.dispatch(popToFront(paneType.TWO))
const data = store.getState().KeyReducers;
// Assert
expect(data).toStrictEqual(expectedState)
})
it('POP_TO_FRONT_KEY singleScreen untouched', () => {
it('POP_TO_FRONT_KEY onePane untouched', () => {
// Arrange
const expectedSingleState: IKeyState = mockKeyState(screenType.SINGLE, false, `${screenType.SINGLE}_`)
const expectedDualState: IKeyState = {
keys: [keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL)]
const expectedONEState: IKeyState = mockKeyState(paneType.ONE, false, `${paneType.ONE}_`)
const expectedTWOState: IKeyState = {
keys: [keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO)]
}
populateKeyStore3(screenType.SINGLE, false);
populateKeyStore3(screenType.DUAL, false);
populateKeyStore3(paneType.ONE, false);
populateKeyStore3(paneType.TWO, false);
// Act
store.dispatch(popToFront(screenType.DUAL))
store.dispatch(popToFront(paneType.TWO))
const data = store.getState().KeyReducers;
const singleScreenState = data.keys.filter(x => x.screen === screenType.SINGLE);
const dualScreenState = data.keys.filter(x => x.screen === screenType.DUAL);
const onePaneState = data.keys.filter(x => x.screen === paneType.ONE);
const twoPaneState = data.keys.filter(x => x.screen === paneType.TWO);
// Assert
expect(singleScreenState).toStrictEqual(expectedSingleState.keys)
expect(dualScreenState).toStrictEqual(expectedDualState.keys)
expect(onePaneState).toStrictEqual(expectedONEState.keys)
expect(twoPaneState).toStrictEqual(expectedTWOState.keys)
})
it('POP_KEY', () => {
// Arrange
const expectedDualState: IKeyState =
const expectedTWOState: IKeyState =
{
keys: [keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL),
keyObjectBuilder(`${screenType.DUAL}_second`, false, screenType.DUAL)]
keys: [keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO),
keyObjectBuilder(`${paneType.TWO}_second`, false, paneType.TWO)]
}
populateKeyStore3(screenType.DUAL, false);
populateKeyStore3(paneType.TWO, false);
// Act
store.dispatch(popScreen(screenType.DUAL))
store.dispatch(popScreen(paneType.TWO))
const data = store.getState().KeyReducers;
// Assert
expect(data).toStrictEqual(expectedDualState)
expect(data).toStrictEqual(expectedTWOState)
})
it('POP_KEY Multiple', () => {
// Arrange
const expectedDualState: IKeyState =
const expectedTWOState: IKeyState =
{
keys: [keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL)]
keys: [keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO)]
}
populateKeyStore3(screenType.DUAL, false);
populateKeyStore3(screenType.DUAL, false);
populateKeyStore3(paneType.TWO, false);
populateKeyStore3(paneType.TWO, false);
// Act
store.dispatch(popScreen(screenType.DUAL))
store.dispatch(popScreen(screenType.DUAL))
store.dispatch(popScreen(screenType.DUAL))
store.dispatch(popScreen(screenType.DUAL))
store.dispatch(popScreen(screenType.DUAL))
store.dispatch(popScreen(paneType.TWO))
store.dispatch(popScreen(paneType.TWO))
store.dispatch(popScreen(paneType.TWO))
store.dispatch(popScreen(paneType.TWO))
store.dispatch(popScreen(paneType.TWO))
const data = store.getState().KeyReducers;
// Assert
expect(data).toStrictEqual(expectedDualState)
expect(data).toStrictEqual(expectedTWOState)
})
it('POP_KEY singleScreen untouched', () => {
it('POP_KEY onePane untouched', () => {
// Arrange
const expectedSingleState: IKeyState = mockKeyState(screenType.SINGLE, false, `${screenType.SINGLE}_`);
const expectedDualState: IKeyState =
const expectedONEState: IKeyState = mockKeyState(paneType.ONE, false, `${paneType.ONE}_`);
const expectedTWOState: IKeyState =
{
keys: [keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL),
keyObjectBuilder(`${screenType.DUAL}_second`, false, screenType.DUAL)]
keys: [keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO),
keyObjectBuilder(`${paneType.TWO}_second`, false, paneType.TWO)]
}
populateKeyStore3(screenType.SINGLE, false);
populateKeyStore3(screenType.DUAL, false);
populateKeyStore3(paneType.ONE, false);
populateKeyStore3(paneType.TWO, false);
// Act
store.dispatch(popScreen(screenType.DUAL))
store.dispatch(popScreen(paneType.TWO))
const data = store.getState().KeyReducers;
const singleScreenState = data.keys.filter(x => x.screen === screenType.SINGLE);
const dualScreenState = data.keys.filter(x => x.screen === screenType.DUAL);
const onePaneState = data.keys.filter(x => x.screen === paneType.ONE);
const twoPaneState = data.keys.filter(x => x.screen === paneType.TWO);
// Assert
expect(singleScreenState).toStrictEqual(expectedSingleState.keys)
expect(dualScreenState).toStrictEqual(expectedDualState.keys)
expect(onePaneState).toStrictEqual(expectedONEState.keys)
expect(twoPaneState).toStrictEqual(expectedTWOState.keys)
})
it('MOVE_TO_FRONT_KEY', () => {
// Arrange
const expectedDualState: IKeyState =
const expectedTWOState: IKeyState =
{
keys: [keyObjectBuilder(`${screenType.DUAL}_second`, false, screenType.DUAL),
keyObjectBuilder(`${screenType.DUAL}_third`, false, screenType.DUAL),
keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL)]
keys: [keyObjectBuilder(`${paneType.TWO}_second`, false, paneType.TWO),
keyObjectBuilder(`${paneType.TWO}_third`, false, paneType.TWO),
keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO)]
}
// Act
populateKeyStore3(screenType.DUAL, false);
store.dispatch(moveToFront(screenType.DUAL, `${screenType.DUAL}_first`));
populateKeyStore3(paneType.TWO, false);
store.dispatch(moveToFront(paneType.TWO, `${paneType.TWO}_first`));
const data = store.getState().KeyReducers;
// Assert
expect(data).toStrictEqual(expectedDualState)
expect(data).toStrictEqual(expectedTWOState)
})
it('MOVE_TO_FRONT_KEY singleScreen untouched', () => {
it('MOVE_TO_FRONT_KEY onePane untouched', () => {
// Arrange
const expectedDualState: IKeyState =
const expectedTWOState: IKeyState =
{
keys: [keyObjectBuilder(`${screenType.DUAL}_second`, false, screenType.DUAL),
keyObjectBuilder(`${screenType.DUAL}_third`, false, screenType.DUAL),
keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL)]
keys: [keyObjectBuilder(`${paneType.TWO}_second`, false, paneType.TWO),
keyObjectBuilder(`${paneType.TWO}_third`, false, paneType.TWO),
keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO)]
}
const expectedSingleState: IKeyState = mockKeyState(screenType.SINGLE, false, `${screenType.SINGLE}_`);
populateKeyStore3(screenType.SINGLE, false);
populateKeyStore3(screenType.DUAL, false);
const expectedONEState: IKeyState = mockKeyState(paneType.ONE, false, `${paneType.ONE}_`);
populateKeyStore3(paneType.ONE, false);
populateKeyStore3(paneType.TWO, false);
// Act
store.dispatch(moveToFront(screenType.DUAL, `${screenType.DUAL}_first`));
store.dispatch(moveToFront(paneType.TWO, `${paneType.TWO}_first`));
const data = store.getState().KeyReducers;
const singleScreenState = data.keys.filter(x => x.screen === screenType.SINGLE);
const dualScreenState = data.keys.filter(x => x.screen === screenType.DUAL);
const onePaneState = data.keys.filter(x => x.screen === paneType.ONE);
const twoPaneState = data.keys.filter(x => x.screen === paneType.TWO);
// Assert
expect(singleScreenState).toStrictEqual(expectedSingleState.keys)
expect(dualScreenState).toStrictEqual(expectedDualState.keys)
expect(onePaneState).toStrictEqual(expectedONEState.keys)
expect(twoPaneState).toStrictEqual(expectedTWOState.keys)
})
it('CHANGE_SCREEN_KEY', () => {
// Arrange
const expectedSingleState: IKeyState =
const expectedONEState: IKeyState =
{
keys: [keyObjectBuilder(`${screenType.DUAL}_first`, false, screenType.DUAL),
keyObjectBuilder(`${screenType.DUAL}_second`, false, screenType.SINGLE),
keyObjectBuilder(`${screenType.DUAL}_third`, false, screenType.DUAL)]
keys: [keyObjectBuilder(`${paneType.TWO}_first`, false, paneType.TWO),
keyObjectBuilder(`${paneType.TWO}_second`, false, paneType.ONE),
keyObjectBuilder(`${paneType.TWO}_third`, false, paneType.TWO)]
}
// Act
populateKeyStore3(screenType.DUAL, false);
store.dispatch(changeScreen(screenType.SINGLE, `${screenType.DUAL}_second`));
populateKeyStore3(paneType.TWO, false);
store.dispatch(changeScreen(paneType.ONE, `${paneType.TWO}_second`));
const data = store.getState().KeyReducers;
// Assert
expect(data).toStrictEqual(expectedSingleState)
expect(data).toStrictEqual(expectedONEState)
})
});

Просмотреть файл

@ -0,0 +1,36 @@
import { PUSH_PANE_ELEMENT, REMOVE_KEY_PANE_ELEMENT, REPLACE_PANE_ELEMENT } from "./paneElement.types";
import react, { ReactElement } from "react";
import { IPaneElementAction } from "./paneElement.interface";
import { IKeyOnlyAction } from "../keyStore/key.interface";
export const pushElement = (
key: string,
paneElement: ReactElement
): IPaneElementAction => ({
type: PUSH_PANE_ELEMENT,
payload: {
key: key,
paneElement: paneElement
}
});
export const replacePaneElement = (
key: string,
paneElement: ReactElement
): IPaneElementAction => ({
type: REPLACE_PANE_ELEMENT,
payload: {
key: key,
paneElement: paneElement
}
});
export const removePaneElementByKey = (
twoPaneElementKey: string
): IKeyOnlyAction => ({
type: REMOVE_KEY_PANE_ELEMENT,
payload: {
key: twoPaneElementKey
}
});

Просмотреть файл

@ -0,0 +1,17 @@
import react, { ReactElement } from "react";
export interface IPaneElementObject {
[key: string]: ReactElement;
}
export interface IPaneElementState {
PaneElements: IPaneElementObject;
}
export interface IPaneElementAction {
type: string;
payload: {
key: string
paneElement: ReactElement;
};
}

Просмотреть файл

@ -0,0 +1,48 @@
import { PUSH_PANE_ELEMENT, REMOVE_KEY_PANE_ELEMENT, REPLACE_PANE_ELEMENT } from './paneElement.types';
import { IPaneElementState, IPaneElementAction } from './paneElement.interface';
const initialState: IPaneElementState = {
PaneElements: {}
};
const PaneElementReducer = (
state: IPaneElementState = initialState,
action: IPaneElementAction
): IPaneElementState => {
switch (action.type) {
case PUSH_PANE_ELEMENT: {
return {
...state,
PaneElements: {
...state.PaneElements,
[action.payload.key as string]: action.payload.paneElement
}
};
}
case REPLACE_PANE_ELEMENT: {
const hasKey = action.payload.key in state.PaneElements;
if (!hasKey) {
return { ...state };
}
return {
...state,
PaneElements: {
...state.PaneElements,
[action.payload.key as string]: action.payload.paneElement
},
};
}
case REMOVE_KEY_PANE_ELEMENT: {
// using delete over lodash.omit to reduce dependencies on external libraries
const newData = state;
delete newData.PaneElements[action.payload.key];
return { ...newData }
}
default:
return state;
}
};
export default PaneElementReducer;

Просмотреть файл

@ -0,0 +1,7 @@
import { useSelector } from "react-redux";
import { rootReducerType } from "../../../appStore";
import { IPaneElementState} from "./paneElement.interface";
export const getPaneElementSelector = (): IPaneElementState => {
return useSelector((state: rootReducerType) => state.PaneElementReducer);
};

Просмотреть файл

@ -0,0 +1,7 @@
export const PUSH_PANE_ELEMENT: string = 'PUSH_PANE_ELEMENT';
export const REMOVE_KEY_PANE_ELEMENT: string = 'REMOVE_KEY_PANE_ELEMENT';
export const REPLACE_PANE_ELEMENT: string = 'REPLACE_PANE_ELEMENT';

Просмотреть файл

@ -0,0 +1,20 @@
import { IPaneElementAction, IPaneElementObject } from "../paneElement.interface"
import React, { ReactElement } from 'react';
export const paneElementActionBuilder = (type: string, key: string, paneElement: React.ReactElement): IPaneElementAction => {
return {
type: type,
payload: {
key: key,
paneElement: paneElement
}
}
}
export const paneElementObjectBuilder = (key: string, paneElement: ReactElement): IPaneElementObject => {
return {
[key]: paneElement
}
}

Просмотреть файл

@ -1,35 +1,35 @@
import { ITwoPaneElementState } from "../twoPaneElement.interface"
import { twoPaneElementObjectBuilder } from "./twoPaneElement.methods.helpers"
import { IPaneElementState } from "../paneElement.interface"
import { paneElementObjectBuilder } from "./paneElement.methods.helpers"
import React, { Fragment } from 'react';
import { pushElement, replacetwoPaneElement, removetwoPaneElementByKey } from "../twoPaneElement.action"
import { pushElement, replacePaneElement, removePaneElementByKey } from "../PaneElement.action"
import { store, resetApp } from "../../../../appStore";
import { Text } from "react-native";
describe('twoPaneElementStore tests', () => {
describe('PaneElementStore tests', () => {
beforeEach(() => {
store.dispatch(resetApp())
});
it('PUSH_TWOPANE_ELEMENT', () => {
it('PUSH_PANE_ELEMENT', () => {
// Arrange
const expectedState: ITwoPaneElementState =
const expectedState: IPaneElementState =
{
twoPaneElements: twoPaneElementObjectBuilder('first', <Fragment />)
PaneElements: paneElementObjectBuilder('first', <Fragment />)
}
// Act
store.dispatch(pushElement('first', <Fragment />))
const data = store.getState().twoPaneElementReducer
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);
})
it('PUSH_TWOPANE_ELEMENT Multiple', () => {
it('PUSH_PANE_ELEMENT Multiple', () => {
// Arrange
const expectedState: ITwoPaneElementState =
const expectedState: IPaneElementState =
{
twoPaneElements: {
PaneElements: {
'first': <Fragment />,
'second': <Fragment />,
'third': <Fragment />,
@ -40,66 +40,66 @@ describe('twoPaneElementStore tests', () => {
store.dispatch(pushElement('first', <Fragment />))
store.dispatch(pushElement('second', <Fragment />))
store.dispatch(pushElement('third', <Fragment />))
const data = store.getState().twoPaneElementReducer
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);
})
it('REPLACE_TWOPANE_ELEMENT', () => {
it('REPLACE_PANE_ELEMENT', () => {
// Arrange
const expectedState: ITwoPaneElementState = {
twoPaneElements: twoPaneElementObjectBuilder('first', <Text>second</Text>)
const expectedState: IPaneElementState = {
PaneElements: paneElementObjectBuilder('first', <Text>second</Text>)
}
// Act
store.dispatch(pushElement('first', <Text>first</Text>))
store.dispatch(replacetwoPaneElement('first', <Text>second</Text>))
const data = store.getState().twoPaneElementReducer
store.dispatch(replacePaneElement('first', <Text>second</Text>))
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);
})
it('REPLACE_TWOPANE_ELEMENT Multiple', () => {
it('REPLACE_PANE_ELEMENT Multiple', () => {
// Arrange
const expectedState: ITwoPaneElementState = {
twoPaneElements: twoPaneElementObjectBuilder('first', <Text>fifth</Text>)
const expectedState: IPaneElementState = {
PaneElements: paneElementObjectBuilder('first', <Text>fifth</Text>)
}
// Act
store.dispatch(pushElement('first', <Text>first</Text>))
store.dispatch(replacetwoPaneElement('first', <Text>second</Text>))
store.dispatch(replacetwoPaneElement('first', <Text>third</Text>))
store.dispatch(replacetwoPaneElement('first', <Text>fourth</Text>))
store.dispatch(replacetwoPaneElement('first', <Text>fifth</Text>))
const data = store.getState().twoPaneElementReducer
store.dispatch(replacePaneElement('first', <Text>second</Text>))
store.dispatch(replacePaneElement('first', <Text>third</Text>))
store.dispatch(replacePaneElement('first', <Text>fourth</Text>))
store.dispatch(replacePaneElement('first', <Text>fifth</Text>))
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);
})
it('REPLACE_TWOPANE_ELEMENT not found', () => {
it('REPLACE_PANE_ELEMENT not found', () => {
// Arrange
const expectedState: ITwoPaneElementState = {
twoPaneElements: twoPaneElementObjectBuilder('first', <Text>first</Text>)
const expectedState: IPaneElementState = {
PaneElements: paneElementObjectBuilder('first', <Text>first</Text>)
}
// Act
store.dispatch(pushElement('first', <Text>first</Text>))
store.dispatch(replacetwoPaneElement('does not exist', <Text>second</Text>))
const data = store.getState().twoPaneElementReducer
store.dispatch(replacePaneElement('does not exist', <Text>second</Text>))
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);
})
it('REMOVE_KEY_TWOPANE_ELEMENT', () => {
it('REMOVE_KEY_PANE_ELEMENT', () => {
// Arrange
const expectedState: ITwoPaneElementState =
const expectedState: IPaneElementState =
{
twoPaneElements: {
PaneElements: {
'first': <Text>first</Text>,
'third': <Text>third</Text>,
}
@ -109,18 +109,18 @@ describe('twoPaneElementStore tests', () => {
store.dispatch(pushElement('first', <Text>first</Text>))
store.dispatch(pushElement('second', <Text>second</Text>))
store.dispatch(pushElement('third', <Text>third</Text>))
store.dispatch(removetwoPaneElementByKey('second'))
const data = store.getState().twoPaneElementReducer
store.dispatch(removePaneElementByKey('second'))
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);
})
it('REMOVE_KEY_TWOPANE_ELEMENT Multiple', () => {
it('REMOVE_KEY_PANE_ELEMENT Multiple', () => {
// Arrange
const expectedState: ITwoPaneElementState =
const expectedState: IPaneElementState =
{
twoPaneElements: {
PaneElements: {
'first': <Text>first</Text>,
'third': <Text>third</Text>,
'fifth': <Text>fifth</Text>,
@ -133,19 +133,19 @@ describe('twoPaneElementStore tests', () => {
store.dispatch(pushElement('third', <Text>third</Text>,))
store.dispatch(pushElement('fourth', <Text>fourth</Text>,))
store.dispatch(pushElement('fifth', <Text>fifth</Text>,))
store.dispatch(removetwoPaneElementByKey('second'))
store.dispatch(removetwoPaneElementByKey('fourth'))
const data = store.getState().twoPaneElementReducer
store.dispatch(removePaneElementByKey('second'))
store.dispatch(removePaneElementByKey('fourth'))
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);
})
it('REMOVE_KEY_TWOPANE_ELEMENT not found ', () => {
it('REMOVE_KEY_PANE_ELEMENT not found ', () => {
// Arrange
const expectedState: ITwoPaneElementState =
const expectedState: IPaneElementState =
{
twoPaneElements: {
PaneElements: {
'first': <Text>first</Text>,
'second': <Text>second</Text>,
'third': <Text>third</Text>,
@ -156,8 +156,8 @@ describe('twoPaneElementStore tests', () => {
store.dispatch(pushElement('first', <Text>first</Text>,))
store.dispatch(pushElement('second', <Text>second</Text>,))
store.dispatch(pushElement('third', <Text>third</Text>,))
store.dispatch(removetwoPaneElementByKey('does not exist'))
const data = store.getState().twoPaneElementReducer
store.dispatch(removePaneElementByKey('does not exist'))
const data = store.getState().PaneElementReducer
// Assert
expect(data).toStrictEqual(expectedState);

Просмотреть файл

@ -1,20 +0,0 @@
import { ITwoPaneElementAction, ITwoPaneElementObject } from "../twoPaneElement.interface"
import React, { ReactElement } from 'react';
export const twoPaneElementActionBuilder = (type: string, key: string, twoPaneElement: React.ReactElement): ITwoPaneElementAction => {
return {
type: type,
payload: {
key: key,
twoPaneElement: twoPaneElement
}
}
}
export const twoPaneElementObjectBuilder = (key: string, twoPaneElement: ReactElement): ITwoPaneElementObject => {
return {
[key]: twoPaneElement
}
}

Просмотреть файл

@ -1,36 +0,0 @@
import { PUSH_TWOPANE_ELEMENT, REMOVE_KEY_TWOPANE_ELEMENT, REPLACE_TWOPANE_ELEMENT } from "./twoPaneElement.types";
import { ReactElement } from "react";
import { ITwoPaneElementAction } from "./twoPaneElement.interface";
import { IKeyOnlyAction } from "../keyStore/key.interface";
export const pushElement = (
key: string,
twoPaneElement: ReactElement
): ITwoPaneElementAction => ({
type: PUSH_TWOPANE_ELEMENT,
payload: {
key: key,
twoPaneElement: twoPaneElement
}
});
export const replacetwoPaneElement = (
key: string,
twoPaneElement: ReactElement
): ITwoPaneElementAction => ({
type: REPLACE_TWOPANE_ELEMENT,
payload: {
key: key,
twoPaneElement: twoPaneElement
}
});
export const removetwoPaneElementByKey = (
twoPaneElementKey: string
): IKeyOnlyAction => ({
type: REMOVE_KEY_TWOPANE_ELEMENT,
payload: {
key: twoPaneElementKey
}
});

Просмотреть файл

@ -1,17 +0,0 @@
import { ReactElement } from "react";
export interface ITwoPaneElementObject {
[key: string]: ReactElement;
}
export interface ITwoPaneElementState {
twoPaneElements: ITwoPaneElementObject;
}
export interface ITwoPaneElementAction {
type: string;
payload: {
key: string
twoPaneElement: ReactElement;
};
}

Просмотреть файл

@ -1,48 +0,0 @@
import { PUSH_TWOPANE_ELEMENT, REMOVE_KEY_TWOPANE_ELEMENT, REPLACE_TWOPANE_ELEMENT } from './twoPaneElement.types';
import { ITwoPaneElementState, ITwoPaneElementAction } from './twoPaneElement.interface';
const initialState: ITwoPaneElementState = {
twoPaneElements: {}
};
const twoPaneElementReducer = (
state: ITwoPaneElementState = initialState,
action: ITwoPaneElementAction
): ITwoPaneElementState => {
switch (action.type) {
case PUSH_TWOPANE_ELEMENT: {
return {
...state,
twoPaneElements: {
...state.twoPaneElements,
[action.payload.key as string]: action.payload.twoPaneElement
}
};
}
case REPLACE_TWOPANE_ELEMENT: {
const hasKey = action.payload.key in state.twoPaneElements;
if (!hasKey) {
return { ...state };
}
return {
...state,
twoPaneElements: {
...state.twoPaneElements,
[action.payload.key as string]: action.payload.twoPaneElement
},
};
}
case REMOVE_KEY_TWOPANE_ELEMENT: {
// using delete over lodash.omit to reduce dependencies on external libraries
const newData = state;
delete newData.twoPaneElements[action.payload.key];
return { ...newData }
}
default:
return state;
}
};
export default twoPaneElementReducer;

Просмотреть файл

@ -1,7 +0,0 @@
import { useSelector } from "react-redux";
import { rootReducerType } from "../../../appStore";
import { ITwoPaneElementState } from "./twoPaneElement.interface";
export const getTwoPaneElementSelector = (): ITwoPaneElementState => {
return useSelector((state: rootReducerType) => state.twoPaneElementReducer);
};

Просмотреть файл

@ -1,7 +0,0 @@
export const PUSH_TWOPANE_ELEMENT: string = 'PUSH_TWOPANE_ELEMENT';
export const REMOVE_KEY_TWOPANE_ELEMENT: string = 'REMOVE_KEY_TWOPANE_ELEMENT';
export const REPLACE_TWOPANE_ELEMENT: string = 'REPLACE_TWOPANE_ELEMENT';

Просмотреть файл

@ -1,31 +1,31 @@
import { IUtilityStoreState } from "../utilityStore.interfaces"
import { store } from "../../../appStore"
import { isDualScreenAction } from "../utilityStore.actions"
import { isTwoPaneAction } from "../utilityStore.actions"
describe('utilityStore reducer tests', () => {
it('is DualScreen', () => {
it('is twoPane', () => {
// Arrange
const expectedState: IUtilityStoreState = {
isDualScreen: true
isTwoPane: true
}
// Act
store.dispatch(isDualScreenAction(true));
store.dispatch(isTwoPaneAction(true));
const data = store.getState().utilityStoreReducer;
// Assert
expect(data).toStrictEqual(expectedState)
})
it('is DualScreen false', () => {
it('is twoPane false', () => {
// Arrange
const expectedState: IUtilityStoreState = {
isDualScreen: false
isTwoPane: false
}
// Act
store.dispatch(isDualScreenAction(false));
store.dispatch(isTwoPaneAction(false));
const data = store.getState().utilityStoreReducer;
// Assert

Просмотреть файл

@ -1,10 +1,10 @@
import { IUtilityStoreAction } from "./utilityStore.interfaces";
import { IS_DUALSCREEN } from "./utilityStore.types";
import { IS_TWOPANE } from "./utilityStore.types";
export const isDualScreenAction = (isDualScreen: boolean):
export const isTwoPaneAction = (isTwoPane: boolean):
IUtilityStoreAction => ({
type: IS_DUALSCREEN,
type: IS_TWOPANE,
payload: {
isDualScreen: isDualScreen
isTwoPane: isTwoPane
}
});

Просмотреть файл

@ -1,10 +1,10 @@
export interface IUtilityStoreState {
isDualScreen: boolean;
isTwoPane: boolean;
}
export interface IUtilityStoreAction {
type: string;
payload: {
isDualScreen: boolean;
isTwoPane: boolean;
};
}

Просмотреть файл

@ -1,12 +1,12 @@
import { store } from "../../appStore";
import { isDualScreenAction } from "./utilityStore.actions";
import { isTwoPaneAction } from "./utilityStore.actions";
const isDualScreen = (isDualScreen: boolean) => {
store.dispatch(isDualScreenAction(isDualScreen));
const isTwoPane = (isTwoPane: boolean) => {
store.dispatch(isTwoPaneAction(isTwoPane));
};
const _UtilityFunctions = {
isDualScreen,
isTwoPane,
};
type utilityFunctions = typeof _UtilityFunctions;

Просмотреть файл

@ -1,7 +1,7 @@
import { IUtilityStoreState, IUtilityStoreAction } from "./utilityStore.interfaces";
import { IS_DUALSCREEN } from './utilityStore.types'
import { IS_TWOPANE } from './utilityStore.types'
const initialState: IUtilityStoreState = {
isDualScreen: false
isTwoPane: false
};
const utilityStoreReducer = (
@ -9,9 +9,9 @@ const utilityStoreReducer = (
action: IUtilityStoreAction
): IUtilityStoreState => {
switch (action.type) {
case IS_DUALSCREEN: {
case IS_TWOPANE: {
return {
isDualScreen: action.payload.isDualScreen
isTwoPane: action.payload.isTwoPane
};
}
default:

Просмотреть файл

@ -2,6 +2,6 @@ import { rootReducerType } from "../../appStore";
import { useSelector } from "react-redux";
import { IUtilityStoreState } from "./utilityStore.interfaces";
export const getIsDualScreen = (): IUtilityStoreState => {
export const getIsTwoPane = (): IUtilityStoreState => {
return useSelector((state: rootReducerType) => state.utilityStoreReducer);
};

Просмотреть файл

@ -1 +1 @@
export const IS_DUALSCREEN: string = 'IS_DUALSCREEN';
export const IS_TWOPANE: string = 'IS_TWOPANE';

Просмотреть файл

@ -2,7 +2,7 @@ import { combineReducers, createStore } from 'redux';
import keyReducers from './Shared/screenStore/keyStore/key.reducer';
import twoPaneElementReducer from './Shared/screenStore/twoPaneElementStore/twoPaneElement.reducer';
import PaneElementReducer from './Shared/screenStore/paneElementStore/paneElement.reducer';
import headerReducer from './Shared/screenStore/headerStore/header.reducer';
import utilityStoreReducer from './Shared/utilityStore/utilityStore.reducer';
@ -12,7 +12,7 @@ require('./utilities/extensionMethods');
const rootReducer = combineReducers({
KeyReducers: keyReducers,
headerReducer,
twoPaneElementReducer,
PaneElementReducer,
utilityStoreReducer
});

Просмотреть файл

@ -1,61 +0,0 @@
import React, { Fragment, useEffect } from 'react';
import { Provider } from 'react-redux';
import { store } from '../../appStore';
import { IScreenComponent } from '../../utilities/interfaces';
import DualHub from '../dualHub/DualHub';
import singleScreen from '../../singleScreen/singleScreenStore/singleScreen.methods';
import dualScreen from '../../dualScreen/dualScreenStore/dualScreen.methods';
export interface IDualAppProps {
/**
* Default element for single screen mode
*/
singleScreen: IScreenComponent;
/**
* Default element for dual screen mode
*/
dualScreen: IScreenComponent;
/**
* AppContainer if using React Navigation
*/
navigationContainer?: JSX.Element;
/**
* Items to render in app drawer. If empty, drawer will not be included.
*/
drawerItems?: JSX.Element[];
}
const DualApp = (props: IDualAppProps) => {
const screenState = store.getState().KeyReducers.keys;
//TODO: possibly look into utility state for things like isMount to keep data between renders
const hasSingle: boolean = screenState.some(val => val.key === (`SINGLE_${props.singleScreen.key}`));
const hasDual: boolean = screenState.some(val => val.key === (`DUAL_${props.singleScreen.key}`));
useEffect(() => {
if (!hasSingle && !hasDual) {
singleScreen.Add(props.singleScreen.key, props.singleScreen.twoPaneElement, props?.singleScreen?.header!);
dualScreen.Add(props.dualScreen.key, props.dualScreen.twoPaneElement, props?.dualScreen?.header!);
}
}, []);
return (
<Fragment key={'App Component'}>
<Provider store={store}>
{props.navigationContainer !== undefined ? (
props.navigationContainer
) : (
<Fragment>
<DualHub />
</Fragment>
)}
</Provider>
</Fragment>
);
};
export default DualApp;

Просмотреть файл

@ -1,4 +0,0 @@
import { StyleSheet } from 'react-native';
export const DualHeaderStyles = StyleSheet.create({
});

Просмотреть файл

@ -1,6 +1,6 @@
import { StyleSheet } from 'react-native';
export const ScreenHeaderStyles = StyleSheet.create({
export const PaneHeaderStyles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'flex-start',

Просмотреть файл

@ -1,20 +1,17 @@
import React, { Fragment } from 'react';
import { Text, TouchableOpacity, View } from 'react-native';
import { ScreenHeaderStyles } from './ScreenHeader.style';
import { IHeader } from '../../Shared/screenStore/headerStore/header.interface';
import { PaneHeaderStyles } from './PaneHeader.style';
import { IPaneHeaderProps } from '../../utilities/interfaces';
export interface IScreenheaderProps extends IHeader {
}
const ScreenHeader = (props: IScreenheaderProps) => {
const PaneHeader = (props: IPaneHeaderProps) => {
return (
<View
style={[ScreenHeaderStyles.container, props.style]} //prop
style={[PaneHeaderStyles.container, props.style]} //prop
>
{props?.leftIcon! !== undefined && (
<Fragment>
<TouchableOpacity
style={ScreenHeaderStyles.leftButton}
style={PaneHeaderStyles.leftButton}
onPress={() => props?.IconPress!()} //element
>
{props.leftIcon}
@ -23,7 +20,7 @@ const ScreenHeader = (props: IScreenheaderProps) => {
)}
<Text
style={ScreenHeaderStyles.title} //prop
style={PaneHeaderStyles.title} //prop
>
{props?.title}
</Text>
@ -31,4 +28,4 @@ const ScreenHeader = (props: IScreenheaderProps) => {
);
};
export default ScreenHeader;
export default PaneHeader;

Просмотреть файл

@ -1,6 +1,6 @@
import { StyleSheet } from 'react-native';
export const screenHeaderContainerStyles = StyleSheet.create({
export const paneHeaderContainerStyles = StyleSheet.create({
HeaderDefault: {
paddingHorizontal: 25,
backgroundColor: '#212121'

Просмотреть файл

@ -1,17 +1,17 @@
import React, { } from 'react';
import { Text, View } from 'react-native';
import React from 'react';
import { View } from 'react-native';
import Icon from 'react-native-vector-icons/MaterialIcons';
import ScreenHeader from '../screenHeader/ScreenHeader';
import { screenHeaderContainerStyles } from './ScreenHeaderContainer.style';
import ScreenHeader from '../paneHeader/PaneHeader';
import { paneHeaderContainerStyles } from './PaneHeaderContainer.style';
import { IHeader } from '../../Shared/screenStore/headerStore/header.interface';
interface IScreenHeaderContainerProps {
interface IPaneHeaderContainerProps {
isGoBack: boolean;
screenHeader: IHeader | undefined;
goBack: () => any;
}
const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) => {
const PaneHeaderContainer = (props: IPaneHeaderContainerProps) => {
const { isGoBack, screenHeader, goBack } = props;
@ -20,7 +20,7 @@ const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) => {
{isGoBack ? (
<ScreenHeader
style={{
...screenHeaderContainerStyles.HeaderDefault //look into header
...paneHeaderContainerStyles.HeaderDefault //look into header
}}
title={screenHeader?.title}
leftIcon={
@ -40,7 +40,7 @@ const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) => {
//</View>
<ScreenHeader
style={{
...screenHeaderContainerStyles.HeaderDefault
...paneHeaderContainerStyles.HeaderDefault
}}
title={screenHeader?.title}
leftIcon={
@ -57,4 +57,4 @@ const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) => {
)
}
export default ScreenHeaderContainer;
export default PaneHeaderContainer;

Просмотреть файл

@ -1,6 +1,6 @@
import { StyleSheet } from 'react-native';
export const ScreenOverlayStyles = StyleSheet.create({
export const PaneOverlayStyles = StyleSheet.create({
backdrop: {
flex: 1,
position: 'absolute',

Просмотреть файл

@ -3,9 +3,9 @@ import React, { Fragment} from 'react';
import {
View, ViewStyle, StyleProp,
} from 'react-native';
import { ScreenOverlayStyles } from './ScreenOverlay.styles';
import { PaneOverlayStyles } from './PaneOverlay.styles';
interface IScreenOverlayProps {
interface IPaneOverlayProps {
/**
* Content of the overlay
*/
@ -28,12 +28,12 @@ interface IScreenOverlayProps {
onBackdropPress?:()=> void;
}
const ScreenOverlay = (props: IScreenOverlayProps) => {
const PaneOverlay = (props: IPaneOverlayProps) => {
return (
<Fragment>
{props.isVisible && (
<View
style={[ScreenOverlayStyles.backdrop, props.backdropStyle]}
style={[PaneOverlayStyles.backdrop, props.backdropStyle]}
onTouchEndCapture={event => {
//check if we are clicking ourselves or a different component
if (
@ -47,7 +47,7 @@ const ScreenOverlay = (props: IScreenOverlayProps) => {
}}>
<View
pointerEvents={'box-none'}
style={[ScreenOverlayStyles.overlay, props.overlayStyle]}>
style={[PaneOverlayStyles.overlay, props.overlayStyle]}>
{props.children}
</View>
</View>
@ -56,4 +56,4 @@ const ScreenOverlay = (props: IScreenOverlayProps) => {
);
};
export default ScreenOverlay;
export default PaneOverlay;

Просмотреть файл

@ -1,6 +1,6 @@
import React, { Fragment } from 'react';
import renderer from 'react-test-renderer';
import ScreenOverlay from '../ScreenOverlay';
import PaneOverlay from '../PaneOverlay';
describe('ScreenOverlay Tests', () => {
it('should render', () => {
@ -9,9 +9,9 @@ describe('ScreenOverlay Tests', () => {
// Act
const tree = renderer.create(
<ScreenOverlay isVisible={true}>
<PaneOverlay isVisible={true}>
<Fragment />
</ScreenOverlay>
</PaneOverlay>
);
// Assert

Просмотреть файл

@ -1,31 +1,31 @@
import { IScreenComponent, screenType } from "../../utilities/interfaces";
import { StyleSheet, View, StyleProp, ViewStyle } from "react-native";
import ScreenHeaderContainer from "../screenHeaderContainer/ScreenHeaderContainer";
import singleScreen from "../../singleScreen/singleScreenStore/singleScreen.methods";
import { IPaneComponent, paneType } from "../../utilities/interfaces";
import { StyleSheet, View} from "react-native";
import ScreenHeaderContainer from "../paneHeaderContainer/PaneHeaderContainer";
import onePane from "../../onePane/onePaneStore/onePane.methods";
import React, { Fragment } from "react";
import dualScreen from "../../dualScreen/dualScreenStore/dualScreen.methods";
import twoPane from "../../twoPane/twoPaneStore/twoPane.methods";
interface IScreenRendererProps {
prependKey: string;
screenComponent: IScreenComponent[];
screenComponent: IPaneComponent[];
}
const ScreenRenderer = (props: IScreenRendererProps) => {
const { prependKey, screenComponent } = props;
const isGoBackSingle = screenComponent.filter(x => x.screen === screenType.SINGLE).length > 1;
const isGoBackDual = screenComponent.filter(x => x.screen === screenType.DUAL).length > 1;
const isGoBackONE = screenComponent.filter(x => x.screen === paneType.ONE).length > 1;
const isGoBackTWO = screenComponent.filter(x => x.screen === paneType.TWO).length > 1;
return (
<Fragment>
{
screenComponent.map((val: IScreenComponent) =>
screenComponent.map((val: IPaneComponent) =>
<View key={prependKey + val.key}
style={[ScreenRendererStyles.container, (val.screen === screenType.SINGLE ? ScreenRendererStyles.isSingle : ScreenRendererStyles.isDual)]}>
style={[ScreenRendererStyles.container, (val.screen === paneType.ONE ? ScreenRendererStyles.isONE : ScreenRendererStyles.isTWO)]}>
<View style={ScreenRendererStyles.header}>
<ScreenHeaderContainer
isGoBack={(val.screen === screenType.SINGLE ? isGoBackSingle : isGoBackDual)}
isGoBack={(val.screen === paneType.ONE ? isGoBackONE : isGoBackTWO)}
screenHeader={val.header}
goBack={() => (val.screen === screenType.SINGLE ? singleScreen.GoBack() : dualScreen.GoBack())}
goBack={() => (val.screen === paneType.ONE ? onePane.GoBack() : twoPane.GoBack())}
/>
</View>
<View
@ -47,10 +47,10 @@ const ScreenRendererStyles = StyleSheet.create({
width: 540,
backgroundColor: 'black',
},
isSingle: {
isONE: {
left: 0,
},
isDual: {
isTWO: {
left: 570,
},

Просмотреть файл

@ -0,0 +1,40 @@
import React, { Fragment, useEffect } from 'react';
import { Provider } from 'react-redux';
import { store } from '../../appStore';
import { ITwoPaneAppProps } from '../../utilities/interfaces';
import TwoPaneHub from '../twoPaneHub/TwoPaneHub';
import onePane from '../../onePane/onePaneStore/onePane.methods';
import twoPane from '../../twoPane/twoPaneStore/twoPane.methods';
const TwoPaneApp = (props: ITwoPaneAppProps) => {
const screenState = store.getState().KeyReducers.keys;
//TODO: possibly look into utility state for things like isMount to keep data between renders
const hasOnePaneDefault: boolean = screenState.some(val => val.key === (`ONE_${props.onePaneDefault.key}`));
const hasTwoPaneDefault: boolean = screenState.some(val => val.key === (`TWO_${props.twoPaneDefault.key}`));
useEffect(() => {
if (!hasOnePaneDefault && !hasTwoPaneDefault) {
onePane.Add(props.onePaneDefault.key, props.onePaneDefault.twoPaneElement, props?.onePaneDefault?.header!);
twoPane.Add(props.twoPaneDefault.key, props.twoPaneDefault.twoPaneElement, props?.twoPaneDefault?.header!);
}
}, []);
return (
<Fragment key={'App Component'}>
<Provider store={store}>
{props.navigationContainer !== undefined ? (
props.navigationContainer
) : (
<Fragment>
<TwoPaneHub />
</Fragment>
)}
</Provider>
</Fragment>
);
};
export default TwoPaneApp;

Просмотреть файл

@ -1,13 +1,13 @@
import React, { Fragment } from 'react';
import DualApp from '../DualApp';
import { IScreenComponent } from '../../../utilities/interfaces';
import DualApp from '../twoPaneApp';
import { IPaneComponent } from '../../../utilities/interfaces';
import { render, toJSON } from '@testing-library/react-native';
describe('DualApp Tests', () => {
it('should render singleScreen', () => {
// Arrange
jest.useFakeTimers();
const singleScreenDefault: IScreenComponent = {
const _onePaneDefault: IPaneComponent = {
key: 'singleDefault',
twoPaneElement: <Fragment />,
header: {
@ -15,19 +15,19 @@ describe('DualApp Tests', () => {
}
};
const dualScreenDefault: IScreenComponent = {
const _twoPaneDefault: IPaneComponent = {
key: 'dualDefault',
twoPaneElement: <Fragment />,
header: {
title: 'dualScreenDefaultTitle'
title: 'onePaneDefaultTitle'
}
};
// Act
const { container } = render(
<DualApp
singleScreen={singleScreenDefault}
dualScreen={dualScreenDefault}
onePaneDefault={_onePaneDefault}
twoPaneDefault={_twoPaneDefault}
/>
);

Просмотреть файл

@ -144,7 +144,7 @@ exports[`DualApp Tests should render singleScreen 1`] = `
}
}
>
dualScreenDefaultTitle
onePaneDefaultTitle
</Text>
</View>
</View>

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше