renamed everything from single,dual,screen to one,two, pane
This commit is contained in:
Родитель
e5ef361d7a
Коммит
c1c8090509
|
@ -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"> </span>
|
||||
<span class="cline-any cline-neutral"> </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";
|
||||
|
||||
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 => {
|
|||
<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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { screenType } from "../../../utilities/interfaces";
|
||||
<span class="cline-any cline-neutral"> </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";
|
||||
|
||||
export const pushKey = (
|
||||
screen: screenType,
|
||||
screen: paneType,
|
||||
key: string,
|
||||
isMerge: boolean
|
||||
): IKeyAction => ({
|
||||
|
@ -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 => ({
|
||||
export const popToFront = (screen: paneType): IScreenOnlyAction => ({
|
||||
type: POP_TO_FRONT_KEY,
|
||||
payload: {
|
||||
screen: screen
|
||||
|
@ -205,14 +205,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,
|
||||
|
@ -222,7 +222,7 @@ export const moveToFront = (screen: screenType,
|
|||
}
|
||||
});
|
||||
|
||||
export const changeScreen = (screen: screenType,
|
||||
export const changeScreen = (screen: paneType,
|
||||
key: string
|
||||
): IKeyScreenAction => ({
|
||||
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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </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 => 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: {
|
||||
|
@ -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 => {
|
|||
<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"> </span>
|
||||
<span class="cline-any cline-neutral"> </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';
|
||||
|
||||
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: {
|
||||
|
@ -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 => {
|
||||
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)
|
||||
|
@ -164,7 +164,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,
|
||||
|
@ -172,7 +172,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)))
|
||||
}
|
||||
|
@ -183,7 +183,7 @@ export const populateKeyStore3 = (screen: screenType, isMerge: 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/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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </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"> </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";
|
||||
|
||||
export const pushElement = (
|
||||
key: string,
|
||||
twoPaneElement: ReactElement
|
||||
): ITwoPaneElementAction => ({
|
||||
type: PUSH_TWOPANE_ELEMENT,
|
||||
paneElement: ReactElement
|
||||
): IPaneElementAction => ({
|
||||
type: PUSH_PANE_ELEMENT,
|
||||
payload: {
|
||||
key: key,
|
||||
twoPaneElement: twoPaneElement
|
||||
paneElement: paneElement
|
||||
}
|
||||
});
|
||||
|
||||
export const replacetwoPaneElement = (
|
||||
export const replacePaneElement = (
|
||||
key: string,
|
||||
twoPaneElement: ReactElement
|
||||
): ITwoPaneElementAction => ({
|
||||
type: REPLACE_TWOPANE_ELEMENT,
|
||||
paneElement: ReactElement
|
||||
): IPaneElementAction => ({
|
||||
type: REPLACE_PANE_ELEMENT,
|
||||
payload: {
|
||||
key: key,
|
||||
twoPaneElement: twoPaneElement
|
||||
paneElement: paneElement
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
export const removetwoPaneElementByKey = (
|
||||
export const removePaneElementByKey = (
|
||||
twoPaneElementKey: string
|
||||
): IKeyOnlyAction => ({
|
||||
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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </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 { 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';
|
||||
|
||||
const initialState: ITwoPaneElementState = {
|
||||
twoPaneElements: {}
|
||||
const initialState: IPaneElementState = {
|
||||
PaneElements: {}
|
||||
};
|
||||
|
||||
const twoPaneElementReducer = (
|
||||
state: ITwoPaneElementState = initialState,
|
||||
action: ITwoPaneElementAction
|
||||
): ITwoPaneElementState => {
|
||||
const PaneElementReducer = (
|
||||
state: IPaneElementState = initialState,
|
||||
action: IPaneElementAction
|
||||
): IPaneElementState => {
|
||||
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
|
||||
},
|
||||
};
|
||||
|
||||
}
|
||||
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 = (
|
|||
}
|
||||
};
|
||||
|
||||
export default twoPaneElementReducer;
|
||||
export default PaneElementReducer;
|
||||
</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"> </span>
|
||||
<span class="cline-any cline-neutral"> </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";
|
||||
|
||||
export const getTwoPaneElementSelector = (): ITwoPaneElementState => {
|
||||
return useSelector((state: rootReducerType) => state.twoPaneElementReducer);
|
||||
export const getPaneElementSelector = (): IPaneElementState => {
|
||||
return useSelector((state: rootReducerType) => state.PaneElementReducer);
|
||||
};
|
||||
</pre></td></tr></table></pre>
|
||||
|
||||
|
@ -84,7 +84,7 @@ export const getTwoPaneElementSelector = (): ITwoPaneElementState => {
|
|||
<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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </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"> </span></td><td class="text"><pre class="prettyprint lang-js">export const PUSH_PANE_ELEMENT: string = 'PUSH_PANE_ELEMENT';
|
||||
|
||||
export const REMOVE_KEY_TWOPANE_ELEMENT: string = 'REMOVE_KEY_TWOPANE_ELEMENT';
|
||||
export const REMOVE_KEY_PANE_ELEMENT: string = 'REMOVE_KEY_PANE_ELEMENT';
|
||||
|
||||
export const REPLACE_TWOPANE_ELEMENT: string = 'REPLACE_TWOPANE_ELEMENT';
|
||||
export const REPLACE_PANE_ELEMENT: string = 'REPLACE_PANE_ELEMENT';
|
||||
|
||||
|
||||
</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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ITwoPaneElementAction, ITwoPaneElementObject } from "../twoPaneElement.interface"
|
||||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { IPaneElementAction, IPaneElementObject } from "../paneElement.interface"
|
||||
import React, { ReactElement } from 'react';
|
||||
|
||||
export const twoPaneElementActionBuilder = (type: string, key: string, twoPaneElement: React.ReactElement): ITwoPaneElementAction => {
|
||||
export const paneElementActionBuilder = (type: string, key: string, paneElement: React.ReactElement): IPaneElementAction => {
|
||||
return {
|
||||
type: type,
|
||||
payload: {
|
||||
key: key,
|
||||
twoPaneElement: twoPaneElement
|
||||
paneElement: paneElement
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
export const twoPaneElementObjectBuilder = (key: string, twoPaneElement: ReactElement): ITwoPaneElementObject => {
|
||||
export const paneElementObjectBuilder = (key: string, paneElement: ReactElement): IPaneElementObject => {
|
||||
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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </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";
|
||||
|
||||
export const isDualScreenAction = (isDualScreen: boolean):
|
||||
export const isTwoPaneAction = (isTwoPane: boolean):
|
||||
IUtilityStoreAction => ({
|
||||
type: IS_DUALSCREEN,
|
||||
type: IS_TWOPANE,
|
||||
payload: {
|
||||
isDualScreen: isDualScreen
|
||||
isTwoPane: isTwoPane
|
||||
}
|
||||
});
|
||||
</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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">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;
|
||||
|
@ -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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </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
|
||||
};
|
||||
|
||||
const utilityStoreReducer = (
|
||||
|
@ -111,9 +111,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:
|
||||
|
@ -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 @@
|
|||
|
||||
|
||||
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';
|
||||
|
||||
|
@ -156,7 +156,7 @@ require('./utilities/extensionMethods');
|
|||
const rootReducer = combineReducers({
|
||||
KeyReducers: keyReducers,
|
||||
headerReducer,
|
||||
twoPaneElementReducer,
|
||||
PaneElementReducer,
|
||||
utilityStoreReducer
|
||||
});
|
||||
|
||||
|
@ -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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { StyleSheet } from 'react-native';
|
||||
|
||||
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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<a name='L32'></a><a href='#L32'>32</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
|
@ -126,21 +120,18 @@
|
|||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </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';
|
||||
|
||||
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 && (
|
||||
<span class="branch-1 cbranch-no" title="branch not covered" > <Fragment></span>
|
||||
<TouchableOpacity
|
||||
style={ScreenHeaderStyles.leftButton}
|
||||
style={PaneHeaderStyles.leftButton}
|
||||
onPress={<span class="fstat-no" title="function not covered" >()</span> => <span class="cstat-no" title="statement not covered" >props?.IconPress!()}</span> //element
|
||||
>
|
||||
{props.leftIcon}
|
||||
|
@ -149,7 +140,7 @@ const ScreenHeader = (props: IScreenheaderProps) => {
|
|||
)}
|
||||
|
||||
<Text
|
||||
style={ScreenHeaderStyles.title} //prop
|
||||
style={PaneHeaderStyles.title} //prop
|
||||
>
|
||||
{props?.title}
|
||||
</Text>
|
||||
|
@ -157,7 +148,7 @@ const ScreenHeader = (props: IScreenheaderProps) => {
|
|||
);
|
||||
};
|
||||
|
||||
export default ScreenHeader;
|
||||
export default PaneHeader;
|
||||
</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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { StyleSheet } from 'react-native';
|
||||
|
||||
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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </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"> </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';
|
||||
|
||||
interface IScreenHeaderContainerProps {
|
||||
interface IPaneHeaderContainerProps {
|
||||
isGoBack: boolean;
|
||||
screenHeader: IHeader | undefined;
|
||||
goBack: () => any;
|
||||
}
|
||||
|
||||
const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) => {
|
||||
const PaneHeaderContainer = (props: IPaneHeaderContainerProps) => {
|
||||
|
||||
const { isGoBack, screenHeader, goBack } = props;
|
||||
|
||||
|
@ -196,7 +196,7 @@ const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) => {
|
|||
{isGoBack ? (
|
||||
<span class="branch-0 cbranch-no" title="branch not covered" > <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) => {
|
|||
//</View>
|
||||
<ScreenHeader
|
||||
style={{
|
||||
...screenHeaderContainerStyles.HeaderDefault
|
||||
...paneHeaderContainerStyles.HeaderDefault
|
||||
}}
|
||||
title={screenHeader?.title}
|
||||
leftIcon={
|
||||
|
@ -233,14 +233,14 @@ const ScreenHeaderContainer = (props: IScreenHeaderContainerProps) => {
|
|||
)
|
||||
}
|
||||
|
||||
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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { StyleSheet } from 'react-native';
|
||||
|
||||
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';
|
||||
|
||||
interface IScreenOverlayProps {
|
||||
interface IPaneOverlayProps {
|
||||
/**
|
||||
* Content of the overlay
|
||||
*/
|
||||
|
@ -204,12 +204,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={<span class="fstat-no" title="function not covered" >ev</span>ent => {
|
||||
//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) => {
|
|||
}}>
|
||||
<View
|
||||
pointerEvents={'box-none'}
|
||||
style={[ScreenOverlayStyles.overlay, props.overlayStyle]}>
|
||||
style={[PaneOverlayStyles.overlay, props.overlayStyle]}>
|
||||
{props.children}
|
||||
</View>
|
||||
</View>
|
||||
|
@ -232,7 +232,7 @@ const ScreenOverlay = (props: IScreenOverlayProps) => {
|
|||
);
|
||||
};
|
||||
|
||||
export default ScreenOverlay;
|
||||
export default PaneOverlay;
|
||||
</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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </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"> </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";
|
||||
|
||||
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={<span class="fstat-no" title="function not covered" >()</span> => (<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> => (<span class="cstat-no" title="statement not covered" >val.screen === paneType.ONE ? onePane.GoBack() : twoPane.GoBack())</span>}
|
||||
/>
|
||||
</View>
|
||||
<View
|
||||
|
@ -233,10 +233,10 @@ const ScreenRendererStyles = StyleSheet.create({
|
|||
width: 540,
|
||||
backgroundColor: 'black',
|
||||
},
|
||||
isSingle: {
|
||||
isONE: {
|
||||
left: 0,
|
||||
},
|
||||
isDual: {
|
||||
isTWO: {
|
||||
left: 570,
|
||||
},
|
||||
|
||||
|
@ -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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<a name='L41'></a><a href='#L41'>41</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
|
@ -182,44 +140,23 @@
|
|||
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';
|
||||
import { ITwoPaneAppProps } from '../../utilities/interfaces';
|
||||
import TwoPaneHub from '../twoPaneHub/TwoPaneHub';
|
||||
import onePane from '../../onePane/onePaneStore/onePane.methods';
|
||||
import twoPane from '../../twoPane/twoPaneStore/twoPane.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 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 hasSingle: boolean = screenState.some(<span class="fstat-no" title="function not covered" >va</span>l => <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 => <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 => <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 => <span class="cstat-no" title="statement not covered" >val.key === (`TWO_${props.twoPaneDefault.key}`))</span>;
|
||||
|
||||
useEffect(() => {
|
||||
<span class="missing-if-branch" title="else path not taken" >E</span>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!);
|
||||
<span class="missing-if-branch" title="else path not taken" >E</span>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!);
|
||||
}
|
||||
}, []);
|
||||
|
||||
|
@ -230,7 +167,7 @@ const DualApp = (props: IDualAppProps) => {
|
|||
<span class="branch-0 cbranch-no" title="branch not covered" > props.navigationContainer</span>
|
||||
) : (
|
||||
<Fragment>
|
||||
<DualHub />
|
||||
<TwoPaneHub />
|
||||
</Fragment>
|
||||
)}
|
||||
</Provider>
|
||||
|
@ -238,7 +175,7 @@ const DualApp = (props: IDualAppProps) => {
|
|||
);
|
||||
};
|
||||
|
||||
export default DualApp;
|
||||
export default TwoPaneApp;
|
||||
</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"> </span>
|
||||
<span class="cline-any cline-neutral"> </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';
|
||||
|
||||
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';
|
||||
|
||||
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';
|
||||
|
||||
|
||||
const DualHub = () => {
|
||||
const TwoPaneHub = () => {
|
||||
|
||||
const twoPaneElementState: ITwoPaneElementState = getTwoPaneElementSelector();
|
||||
const twoPaneElementState: IPaneElementState = getPaneElementSelector();
|
||||
const headerState: IHeaderState = getHeaderSelector();
|
||||
|
||||
const keyState = getScreenKeyState();
|
||||
|
||||
useEffect(() => {
|
||||
utilityStore.isDualScreen(DualScreenInfo.isSpanning)
|
||||
utilityStore.isTwoPane(DualScreenInfo.isSpanning)
|
||||
DualScreenInfo.addEventListener('didUpdateSpanning', _handleSpanningChanged);
|
||||
|
||||
return <span class="fstat-no" title="function not covered" >()</span> => {
|
||||
|
@ -217,11 +217,11 @@ const DualHub = () => {
|
|||
}
|
||||
}, [])
|
||||
|
||||
const screenStack: IScreenComponent[] = useMemo(() => {
|
||||
const screenStack: IPaneComponent[] = useMemo(() => {
|
||||
return keyState.keys.map((val, index) => {
|
||||
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 = () => {
|
|||
}, [keyState, twoPaneElementState, headerState])
|
||||
|
||||
const _handleSpanningChanged = <span class="fstat-no" title="function not covered" >(u</span>pdate: DualScreenInfoPayload) => {
|
||||
<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>
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -247,7 +247,7 @@ const DualHub = () => {
|
|||
);
|
||||
};
|
||||
|
||||
export default DualHub;
|
||||
export default TwoPaneHub;
|
||||
</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"> </span>
|
||||
<span class="cline-any cline-neutral"> </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';
|
||||
|
||||
/**
|
||||
* 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) => {
|
||||
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));
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Pushes element to the top of the single screen stack or if the key is already in the 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> => {
|
||||
const keys: IKeyState = store.getState().KeyReducers;
|
||||
const singleScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.SINGLE)
|
||||
const onePaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.ONE)
|
||||
|
||||
if (!singleScreenState.some(val => val.key === `${screenType.SINGLE}_${key}`)) {
|
||||
if (!onePaneState.some(val => 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}`));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 = () => {
|
||||
const keys: IKeyState = store.getState().KeyReducers;
|
||||
keys.keys.map(val => {
|
||||
if (val.screen === screenType.SINGLE && val.isMerge) {
|
||||
store.dispatch(changeScreen(screenType.DUAL, val.key))
|
||||
if (val.screen === paneType.ONE && val.isMerge) {
|
||||
store.dispatch(changeScreen(paneType.TWO, val.key))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 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 = () => {
|
||||
const keys: IKeyState = store.getState().KeyReducers;
|
||||
const singleScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.SINGLE)
|
||||
const onePaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.ONE)
|
||||
|
||||
for (let i = 1; i < singleScreenState.length; i++) {
|
||||
store.dispatch(removeHeaderByKey(singleScreenState[i].key));
|
||||
store.dispatch(removetwoPaneElementByKey(singleScreenState[i].key));
|
||||
for (let i = 1; i < onePaneState.length; i++) {
|
||||
store.dispatch(removeHeaderByKey(onePaneState[i].key));
|
||||
store.dispatch(removePaneElementByKey(onePaneState[i].key));
|
||||
}
|
||||
|
||||
store.dispatch(popToFront(screenType.SINGLE));
|
||||
store.dispatch(popToFront(paneType.ONE));
|
||||
};
|
||||
|
||||
/**
|
||||
* Go back one element in the single screen stack
|
||||
* Go back one element in the onePane stack
|
||||
*/
|
||||
const GoBack = () => {
|
||||
const keys: IKeyState = store.getState().KeyReducers;
|
||||
const singleScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.SINGLE)
|
||||
const onePaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.ONE)
|
||||
|
||||
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));
|
||||
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Replace the current element for this single screen component
|
||||
* Replace the current element for this onePane component
|
||||
*/
|
||||
const ReplaceScreen = (key: string, element: React.ReactElement) => {
|
||||
store.dispatch(replacetwoPaneElement(`${screenType.SINGLE}_${key}`, element))
|
||||
store.dispatch(replacePaneElement(`${paneType.ONE}_${key}`, element))
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace the default header for this single screen component
|
||||
* Replace the default header for this onePane component
|
||||
*/
|
||||
const ReplaceHeader = (key: string, header: IHeader) => {
|
||||
store.dispatch(replaceHeader(`${screenType.SINGLE}_${key}`, header));
|
||||
store.dispatch(replaceHeader(`${paneType.ONE}_${key}`, header));
|
||||
};
|
||||
|
||||
const _singleScreenFunctions = {
|
||||
const _onePaneFunctions = {
|
||||
Add,
|
||||
AddOrMoveToFront,
|
||||
mergeToOppositeScreen,
|
||||
|
@ -378,11 +378,11 @@ const _singleScreenFunctions = {
|
|||
ReplaceHeader,
|
||||
};
|
||||
|
||||
type singleScreenFunctions = typeof _singleScreenFunctions;
|
||||
type onePaneFunctions = typeof _onePaneFunctions;
|
||||
|
||||
const singleScreen: singleScreenFunctions = _singleScreenFunctions;
|
||||
const onePane: onePaneFunctions = _onePaneFunctions;
|
||||
|
||||
export default singleScreen;
|
||||
export default onePane;
|
||||
</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"> </span>
|
||||
<span class="cline-any cline-neutral"> </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';
|
||||
|
||||
/**
|
||||
* 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) => {
|
||||
|
||||
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));
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Pushes element to the top of the dual screen stack or if the key is already in the 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>) => {
|
||||
const keys: IKeyState = store.getState().KeyReducers;
|
||||
const dualScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.DUAL)
|
||||
const twoPaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.TWO)
|
||||
|
||||
if (!dualScreenState.some(val => val.key === `${screenType.DUAL}_${key}`)) {
|
||||
if (!twoPaneState.some(val => 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 = () => {
|
||||
const keys: IKeyState = store.getState().KeyReducers;
|
||||
keys.keys.map(val => {
|
||||
if (val.screen === screenType.DUAL && val.isMerge) {
|
||||
store.dispatch(changeScreen(screenType.SINGLE, val.key))
|
||||
if (val.screen === paneType.TWO && val.isMerge) {
|
||||
store.dispatch(changeScreen(paneType.ONE, val.key))
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 = () => {
|
||||
const keys: IKeyState = store.getState().KeyReducers;
|
||||
const dualScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.DUAL)
|
||||
const twoPaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.TWO)
|
||||
|
||||
for (let i = 1; i < dualScreenState.length; i++) {
|
||||
store.dispatch(removeHeaderByKey(dualScreenState[i].key));
|
||||
store.dispatch(removetwoPaneElementByKey(dualScreenState[i].key));
|
||||
for (let i = 1; i < 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));
|
||||
};
|
||||
|
||||
/**
|
||||
* Go back one element in the dual screen stack
|
||||
* Go back one element in the twoPane stack
|
||||
*/
|
||||
const GoBack = () => {
|
||||
const keys: IKeyState = store.getState().KeyReducers;
|
||||
const dualScreenState: IKeyObject[] = keys.keys.filter(x => x.screen === screenType.DUAL)
|
||||
const twoPaneState: IKeyObject[] = keys.keys.filter(x => x.screen === paneType.TWO)
|
||||
|
||||
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));
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Replace the current element for this dual screen component
|
||||
* Replace the current element for this twoPane component
|
||||
*/
|
||||
const ReplaceScreen = (key: string, element: React.ReactElement) => {
|
||||
store.dispatch(replacetwoPaneElement(`${screenType.DUAL}_${key}`, element))
|
||||
store.dispatch(replacePaneElement(`${paneType.TWO}_${key}`, element))
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace the default header for this dual screen component
|
||||
* Replace the default header for this twoPane component
|
||||
*/
|
||||
const ReplaceHeader = (key: string, header: IHeader) => {
|
||||
store.dispatch(replaceHeader(key, header));
|
||||
};
|
||||
|
||||
const _dualScreenFunctions = {
|
||||
const _twoPaneFunctions = {
|
||||
Add,
|
||||
AddOrMoveToFront,
|
||||
mergeToOppositeScreen,
|
||||
|
@ -369,11 +369,11 @@ const _dualScreenFunctions = {
|
|||
ReplaceHeader,
|
||||
};
|
||||
|
||||
type dualScreenFunctions = typeof _dualScreenFunctions;
|
||||
type twoPaneFunctions = typeof _twoPaneFunctions;
|
||||
|
||||
const dualScreen: dualScreenFunctions = _dualScreenFunctions;
|
||||
const twoPane: twoPaneFunctions = _twoPaneFunctions;
|
||||
|
||||
export default dualScreen;
|
||||
export default twoPane;
|
||||
</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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </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';
|
||||
|
||||
|
||||
/**
|
||||
* 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) => {
|
||||
if (utility.isDualScreen()) {
|
||||
dualScreen.Add(key, element, header, isMergeDual);
|
||||
const Add = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false) => {
|
||||
if (utility.isTwoPane()) {
|
||||
twoPane.Add(key, element, header, isMergeTWO);
|
||||
} else {
|
||||
singleScreen.Add(key, element, header, isMergeSingle);
|
||||
onePane.Add(key, element, header, isMergeONE);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -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,) => {
|
||||
if (utility.isDualScreen()) {
|
||||
dualScreen.AddOrMoveToFront(key, element, header, isMergeDual);
|
||||
const AddOrMoveToFront = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false,) => {
|
||||
if (utility.isTwoPane()) {
|
||||
twoPane.AddOrMoveToFront(key, element, header, isMergeTWO);
|
||||
} else {
|
||||
singleScreen.AddOrMoveToFront(key, element, header, isMergeSingle);
|
||||
onePane.AddOrMoveToFront(key, element, header, isMergeONE);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 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,) => {
|
||||
if (utility.isDualScreen()) {
|
||||
dualScreen.AddOrMoveToFront(key, element, header, isMergeDual);
|
||||
const AddOrMoveToFrontTWO = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false,) => {
|
||||
if (utility.isTwoPane()) {
|
||||
twoPane.AddOrMoveToFront(key, element, header, isMergeTWO);
|
||||
} else {
|
||||
singleScreen.Add(key, element, header, isMergeSingle);
|
||||
onePane.Add(key, element, header, isMergeONE);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 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,) => {
|
||||
if (utility.isDualScreen()) {
|
||||
dualScreen.Add(key, element, header, isMergeDual);
|
||||
const AddOrMoveToFrontONE = (key: string, element: ReactElement, header?: IHeader, isMergeONE = false, isMergeTWO = false,) => {
|
||||
if (utility.isTwoPane()) {
|
||||
twoPane.Add(key, element, header, isMergeTWO);
|
||||
} else {
|
||||
singleScreen.AddOrMoveToFront(key, element, header, isMergeSingle);
|
||||
onePane.AddOrMoveToFront(key, element, header, isMergeONE);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -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 = () => {
|
||||
if (utility.isDualScreen()) {
|
||||
dualScreen.BackToHome();
|
||||
if (utility.isTwoPane()) {
|
||||
twoPane.BackToHome();
|
||||
} else {
|
||||
singleScreen.BackToHome();
|
||||
onePane.BackToHome();
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -362,10 +362,10 @@ const BackToHome = () => {
|
|||
* Automatically go back one element in the stack based on screen size
|
||||
*/
|
||||
const GoBack = () => {
|
||||
if (utility.isDualScreen()) {
|
||||
dualScreen.GoBack();
|
||||
if (utility.isTwoPane()) {
|
||||
twoPane.GoBack();
|
||||
} else {
|
||||
singleScreen.GoBack();
|
||||
onePane.GoBack();
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -373,10 +373,10 @@ const GoBack = () => {
|
|||
* Automatically replace element in the stack based on screen size
|
||||
*/
|
||||
const ReplaceScreen = (key: string, twoPaneElement: React.ReactElement) => {
|
||||
if (utility.isDualScreen()) {
|
||||
dualScreen.ReplaceScreen(key, twoPaneElement);
|
||||
if (utility.isTwoPane()) {
|
||||
twoPane.ReplaceScreen(key, twoPaneElement);
|
||||
} else {
|
||||
singleScreen.ReplaceScreen(key, twoPaneElement);
|
||||
onePane.ReplaceScreen(key, twoPaneElement);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -385,31 +385,31 @@ const ReplaceScreen = (key: string, twoPaneElement: React.ReactElement) => {
|
|||
* Automatically replace header in the stack based on screen size
|
||||
*/
|
||||
const ReplaceHeader = (key: string, header: IHeader) => {
|
||||
if (utility.isDualScreen()) {
|
||||
dualScreen.ReplaceHeader(key, header);
|
||||
if (utility.isTwoPane()) {
|
||||
twoPane.ReplaceHeader(key, header);
|
||||
} else {
|
||||
singleScreen.ReplaceHeader(key, header);
|
||||
onePane.ReplaceHeader(key, header);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
const _autoScreenFunctions = {
|
||||
const _autoPaneFunctions = {
|
||||
Add,
|
||||
AddOrMoveToFront,
|
||||
AddOrMoveToFrontDual,
|
||||
AddOrMoveToFrontSingle,
|
||||
AddOrMoveToFrontTWO,
|
||||
AddOrMoveToFrontONE,
|
||||
BackToHome,
|
||||
GoBack,
|
||||
ReplaceScreen,
|
||||
ReplaceHeader
|
||||
};
|
||||
|
||||
type autoScreenFunctions = typeof _autoScreenFunctions;
|
||||
type autoPaneFunctions = typeof _autoPaneFunctions;
|
||||
|
||||
const autoScreen: autoScreenFunctions = _autoScreenFunctions;
|
||||
const autoPane: autoPaneFunctions = _autoPaneFunctions;
|
||||
|
||||
export default autoScreen;
|
||||
export default autoPane;
|
||||
</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"> </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"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
<span class="cline-any cline-neutral"> </span>
|
||||
|
@ -109,28 +161,54 @@
|
|||
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import React, { ReactElement } from 'react';
|
||||
import { IHeader } from '../Shared/screenStore/headerStore/header.interface';
|
||||
|
||||
export interface IScreenComponent {
|
||||
export interface IPaneComponent {
|
||||
key: string;
|
||||
twoPaneElement: ReactElement;
|
||||
header?: IHeader;
|
||||
screen?: screenType;
|
||||
screen?: paneType;
|
||||
}
|
||||
|
||||
export interface IScreenState {
|
||||
screen: Array<IScreenComponent>;
|
||||
export interface IPaneState {
|
||||
screen: Array<IPaneComponent>;
|
||||
}
|
||||
|
||||
|
||||
export interface IEmptyAction {
|
||||
type: string;
|
||||
payload: {
|
||||
};
|
||||
}
|
||||
|
||||
export enum screenType {
|
||||
SINGLE = 'SINGLE',
|
||||
DUAL = 'DUAL'
|
||||
export enum paneType {
|
||||
ONE = 'ONE',
|
||||
TWO = 'TWO'
|
||||
}
|
||||
|
||||
export interface ITwoPaneAppProps {
|
||||
/**
|
||||
* Default element for ONE screen mode
|
||||
*/
|
||||
onePaneDefault: IPaneComponent;
|
||||
|
||||
/**
|
||||
* Default element for TWO screen mode
|
||||
*/
|
||||
twoPaneDefault: IPaneComponent;
|
||||
|
||||
/**
|
||||
* AppContainer if using React Navigation
|
||||
*/
|
||||
navigationContainer?: JSX.Element;
|
||||
|
||||
/**
|
||||
* Items to render in app drawer. If empty, drawer will not be included.
|
||||
*/
|
||||
drawerItems?: JSX.Element[];
|
||||
}
|
||||
|
||||
export interface IPaneHeaderProps extends IHeader {
|
||||
}
|
||||
|
||||
|
||||
</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"> </span></td><td class="text"><pre class="prettyprint lang-js">import { useRef, useEffect } from 'react';
|
||||
import { store } from '../appStore';
|
||||
|
||||
const isDualScreen = <span class="fstat-no" title="function not covered" >()</span>: boolean => {
|
||||
<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 => {
|
||||
<span class="cstat-no" title="statement not covered" > return store.getState().utilityStoreReducer.isTwoPane</span>
|
||||
};
|
||||
|
||||
const _utilityFunctions = {
|
||||
isDualScreen,
|
||||
isTwoPane,
|
||||
};
|
||||
|
||||
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>
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче