react-native-navigation 7.45.0 → 7.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/lib/Mock/Components/ComponentScreen.tsx +2 -1
  2. package/lib/Mock/Components/LayoutComponent.tsx +9 -0
  3. package/lib/Mock/Components/SideMenu.tsx +27 -0
  4. package/lib/Mock/Layouts/BottomTabsNode.ts +4 -2
  5. package/lib/Mock/Layouts/LayoutNodeFactory.ts +14 -1
  6. package/lib/Mock/Layouts/ParentNode.ts +4 -0
  7. package/lib/Mock/Layouts/SideMenu.ts +87 -0
  8. package/lib/Mock/Stores/LayoutStore.ts +42 -10
  9. package/lib/Mock/actions/layoutActions.ts +11 -0
  10. package/lib/Mock/index.js +2 -2
  11. package/lib/Mock/mocks/NativeCommandsSender.tsx +1 -0
  12. package/lib/android/app/build.gradle +0 -1
  13. package/lib/android/app/src/main/java/com/reactnativenavigation/NavigationApplication.java +3 -9
  14. package/lib/android/app/src/main/java/com/reactnativenavigation/react/ReactView.java +3 -3
  15. package/lib/android/app/src/main/java/com/reactnativenavigation/react/modal/ModalHostLayout.kt +1 -1
  16. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactTypefaceUtils.java +2 -3
  17. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactViewGroup.kt +2 -4
  18. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/ViewUtils.java +4 -6
  19. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/LayoutDirectionApplier.kt +4 -8
  20. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/RootPresenter.java +1 -1
  21. package/lib/android/app/src/main/java/com/reactnativenavigation/views/element/animators/BackgroundColorAnimator.kt +4 -6
  22. package/lib/android/app/src/main/java/com/reactnativenavigation/views/element/animators/BackgroundColorEvaluator.kt +2 -4
  23. package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +6 -6
  24. package/lib/dist/Mock/Application.d.ts +6 -4
  25. package/lib/dist/Mock/Components/BottomTabs.d.ts +13 -9
  26. package/lib/dist/Mock/Components/ComponentScreen.d.ts +7 -5
  27. package/lib/dist/Mock/Components/ComponentScreen.js +2 -1
  28. package/lib/dist/Mock/Components/LayoutComponent.d.ts +13 -9
  29. package/lib/dist/Mock/Components/LayoutComponent.js +9 -0
  30. package/lib/dist/Mock/Components/Modals.d.ts +13 -9
  31. package/lib/dist/Mock/Components/NavigationButton.d.ts +15 -11
  32. package/lib/dist/Mock/Components/Overlays.d.ts +13 -9
  33. package/lib/dist/Mock/Components/SideMenu.d.ts +62 -0
  34. package/lib/dist/Mock/Components/SideMenu.js +25 -0
  35. package/lib/dist/Mock/Components/Stack.d.ts +13 -9
  36. package/lib/dist/Mock/Components/TopBar.d.ts +9 -7
  37. package/lib/dist/Mock/Layouts/BottomTabsNode.d.ts +1 -1
  38. package/lib/dist/Mock/Layouts/BottomTabsNode.js +3 -2
  39. package/lib/dist/Mock/Layouts/LayoutNodeFactory.d.ts +2 -1
  40. package/lib/dist/Mock/Layouts/LayoutNodeFactory.js +10 -1
  41. package/lib/dist/Mock/Layouts/ParentNode.d.ts +1 -0
  42. package/lib/dist/Mock/Layouts/ParentNode.js +3 -0
  43. package/lib/dist/Mock/Layouts/SideMenu.d.ts +31 -0
  44. package/lib/dist/Mock/Layouts/SideMenu.js +80 -0
  45. package/lib/dist/Mock/Stores/LayoutStore.js +38 -9
  46. package/lib/dist/Mock/actions/layoutActions.d.ts +3 -0
  47. package/lib/dist/Mock/actions/layoutActions.js +11 -1
  48. package/lib/dist/Mock/connect.js +1 -2
  49. package/lib/dist/Mock/index.js +2 -2
  50. package/lib/dist/Mock/mocks/NativeCommandsSender.js +1 -0
  51. package/lib/dist/src/adapters/NativeEventsReceiver.js +1 -1
  52. package/lib/dist/src/adapters/TouchablePreview.d.ts +2 -2
  53. package/lib/dist/src/commands/LayoutType.js +1 -1
  54. package/lib/dist/src/components/Modal.d.ts +1 -1
  55. package/lib/dist/src/interfaces/CommandName.js +1 -1
  56. package/lib/dist/src/interfaces/Options.js +2 -2
  57. package/lib/dist/src/types.d.ts +0 -1
  58. package/lib/ios/BottomTabsBasePresenter.m +2 -3
  59. package/lib/ios/RNNAppDelegate.mm +3 -2
  60. package/lib/ios/RNNConvert.h +0 -2
  61. package/lib/ios/RNNConvert.m +0 -4
  62. package/lib/ios/RNNStackPresenter.m +2 -2
  63. package/lib/src/adapters/NativeEventsReceiver.ts +3 -3
  64. package/lib/src/adapters/TouchablePreview.tsx +3 -3
  65. package/package.json +31 -37
@@ -1,12 +1,14 @@
1
1
  import React from 'react';
2
2
  import { ComponentProps } from '../ComponentProps';
3
3
  export declare const BottomTabs: {
4
- new (props: ComponentProps): {
5
- render(): React.JSX.Element[];
6
- context: unknown;
4
+ new (props: Readonly<ComponentProps>): {
5
+ render(): JSX.Element[];
6
+ context: any;
7
7
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
8
8
  forceUpdate(callback?: (() => void) | undefined): void;
9
- readonly props: Readonly<ComponentProps>;
9
+ readonly props: Readonly<ComponentProps> & Readonly<{
10
+ children?: React.ReactNode;
11
+ }>;
10
12
  state: Readonly<{}>;
11
13
  refs: {
12
14
  [key: string]: React.ReactInstance;
@@ -24,12 +26,14 @@ export declare const BottomTabs: {
24
26
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
25
27
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
26
28
  };
27
- new (props: ComponentProps, context: any): {
28
- render(): React.JSX.Element[];
29
- context: unknown;
29
+ new (props: ComponentProps, context?: any): {
30
+ render(): JSX.Element[];
31
+ context: any;
30
32
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
31
33
  forceUpdate(callback?: (() => void) | undefined): void;
32
- readonly props: Readonly<ComponentProps>;
34
+ readonly props: Readonly<ComponentProps> & Readonly<{
35
+ children?: React.ReactNode;
36
+ }>;
33
37
  state: Readonly<{}>;
34
38
  refs: {
35
39
  [key: string]: React.ReactInstance;
@@ -47,5 +51,5 @@ export declare const BottomTabs: {
47
51
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
48
52
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
49
53
  };
50
- contextType?: React.Context<any> | undefined;
54
+ contextType?: React.Context<any>;
51
55
  };
@@ -4,12 +4,14 @@ export declare const ComponentScreen: {
4
4
  new (props: ComponentProps): {
5
5
  componentDidMount(): void;
6
6
  isVisible(): boolean;
7
- renderTabBar(): React.JSX.Element | null;
8
- render(): React.JSX.Element;
9
- context: unknown;
7
+ renderTabBar(): JSX.Element | null;
8
+ render(): JSX.Element;
9
+ context: any;
10
10
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
11
11
  forceUpdate(callback?: (() => void) | undefined): void;
12
- readonly props: Readonly<ComponentProps>;
12
+ readonly props: Readonly<ComponentProps> & Readonly<{
13
+ children?: React.ReactNode;
14
+ }>;
13
15
  state: Readonly<{}>;
14
16
  refs: {
15
17
  [key: string]: React.ReactInstance;
@@ -26,5 +28,5 @@ export declare const ComponentScreen: {
26
28
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
27
29
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
28
30
  };
29
- contextType?: React.Context<any> | undefined;
31
+ contextType?: React.Context<any>;
30
32
  };
@@ -23,7 +23,8 @@ exports.ComponentScreen = (0, connect_1.connect)(class extends react_1.Component
23
23
  this.props.layoutNode.componentDidMount();
24
24
  }
25
25
  isVisible() {
26
- return LayoutStore_1.LayoutStore.isVisibleLayout(this.props.layoutNode);
26
+ const isVisible = LayoutStore_1.LayoutStore.isVisibleLayout(this.props.layoutNode);
27
+ return isVisible;
27
28
  }
28
29
  renderTabBar() {
29
30
  const bottomTabs = this.props.layoutNode.getBottomTabs();
@@ -1,13 +1,15 @@
1
1
  import React from 'react';
2
2
  import { ComponentProps } from '../ComponentProps';
3
3
  export declare const LayoutComponent: {
4
- new (props: ComponentProps): {
5
- render(): React.JSX.Element;
4
+ new (props: Readonly<ComponentProps>): {
5
+ render(): JSX.Element;
6
6
  componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
7
- context: unknown;
7
+ context: any;
8
8
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
9
9
  forceUpdate(callback?: (() => void) | undefined): void;
10
- readonly props: Readonly<ComponentProps>;
10
+ readonly props: Readonly<ComponentProps> & Readonly<{
11
+ children?: React.ReactNode;
12
+ }>;
11
13
  state: Readonly<{}>;
12
14
  refs: {
13
15
  [key: string]: React.ReactInstance;
@@ -24,13 +26,15 @@ export declare const LayoutComponent: {
24
26
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
25
27
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
26
28
  };
27
- new (props: ComponentProps, context: any): {
28
- render(): React.JSX.Element;
29
+ new (props: ComponentProps, context?: any): {
30
+ render(): JSX.Element;
29
31
  componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
30
- context: unknown;
32
+ context: any;
31
33
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
32
34
  forceUpdate(callback?: (() => void) | undefined): void;
33
- readonly props: Readonly<ComponentProps>;
35
+ readonly props: Readonly<ComponentProps> & Readonly<{
36
+ children?: React.ReactNode;
37
+ }>;
34
38
  state: Readonly<{}>;
35
39
  refs: {
36
40
  [key: string]: React.ReactInstance;
@@ -47,5 +51,5 @@ export declare const LayoutComponent: {
47
51
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
48
52
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
49
53
  };
50
- contextType?: React.Context<any> | undefined;
54
+ contextType?: React.Context<any>;
51
55
  };
@@ -7,6 +7,7 @@ const react_native_1 = require("react-native");
7
7
  const BottomTabs_1 = require("./BottomTabs");
8
8
  const ComponentScreen_1 = require("./ComponentScreen");
9
9
  const Stack_1 = require("./Stack");
10
+ const SideMenu_1 = require("./SideMenu");
10
11
  const LayoutComponent = class extends react_1.Component {
11
12
  render() {
12
13
  switch (this.props.layoutNode.type) {
@@ -16,6 +17,14 @@ const LayoutComponent = class extends react_1.Component {
16
17
  return react_1.default.createElement(Stack_1.Stack, { layoutNode: this.props.layoutNode });
17
18
  case 'Component':
18
19
  return react_1.default.createElement(ComponentScreen_1.ComponentScreen, { layoutNode: this.props.layoutNode });
20
+ case 'SideMenuRoot':
21
+ return react_1.default.createElement(SideMenu_1.SideMenuRoot, { layoutNode: this.props.layoutNode });
22
+ case 'SideMenuLeft':
23
+ return react_1.default.createElement(SideMenu_1.SideMenuLeft, { layoutNode: this.props.layoutNode });
24
+ case 'SideMenuCenter':
25
+ return react_1.default.createElement(SideMenu_1.SideMenuCenter, { layoutNode: this.props.layoutNode });
26
+ case 'SideMenuRight':
27
+ return react_1.default.createElement(SideMenu_1.SideMenuRight, { layoutNode: this.props.layoutNode });
19
28
  }
20
29
  return react_1.default.createElement(react_native_1.View, null);
21
30
  }
@@ -1,12 +1,14 @@
1
1
  import React from 'react';
2
2
  import { ComponentProps } from '../ComponentProps';
3
3
  export declare const Modals: {
4
- new (props: ComponentProps): {
5
- render(): React.JSX.Element;
6
- context: unknown;
4
+ new (props: Readonly<ComponentProps>): {
5
+ render(): JSX.Element;
6
+ context: any;
7
7
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
8
8
  forceUpdate(callback?: (() => void) | undefined): void;
9
- readonly props: Readonly<ComponentProps>;
9
+ readonly props: Readonly<ComponentProps> & Readonly<{
10
+ children?: React.ReactNode;
11
+ }>;
10
12
  state: Readonly<{}>;
11
13
  refs: {
12
14
  [key: string]: React.ReactInstance;
@@ -24,12 +26,14 @@ export declare const Modals: {
24
26
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
25
27
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
26
28
  };
27
- new (props: ComponentProps, context: any): {
28
- render(): React.JSX.Element;
29
- context: unknown;
29
+ new (props: ComponentProps, context?: any): {
30
+ render(): JSX.Element;
31
+ context: any;
30
32
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
31
33
  forceUpdate(callback?: (() => void) | undefined): void;
32
- readonly props: Readonly<ComponentProps>;
34
+ readonly props: Readonly<ComponentProps> & Readonly<{
35
+ children?: React.ReactNode;
36
+ }>;
33
37
  state: Readonly<{}>;
34
38
  refs: {
35
39
  [key: string]: React.ReactInstance;
@@ -47,5 +51,5 @@ export declare const Modals: {
47
51
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
48
52
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
49
53
  };
50
- contextType?: React.Context<any> | undefined;
54
+ contextType?: React.Context<any>;
51
55
  };
@@ -5,15 +5,17 @@ interface ButtonProps {
5
5
  componentId: string;
6
6
  }
7
7
  export declare const NavigationButton: {
8
- new (props: ButtonProps): {
8
+ new (props: Readonly<ButtonProps>): {
9
9
  ref: undefined;
10
- render(): React.JSX.Element;
11
- renderButtonComponent(): React.JSX.Element;
10
+ render(): JSX.Element;
11
+ renderButtonComponent(): JSX.Element;
12
12
  invokeOnClick(stateNode: any): void;
13
- context: unknown;
13
+ context: any;
14
14
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ButtonProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
15
15
  forceUpdate(callback?: (() => void) | undefined): void;
16
- readonly props: Readonly<ButtonProps>;
16
+ readonly props: Readonly<ButtonProps> & Readonly<{
17
+ children?: React.ReactNode;
18
+ }>;
17
19
  state: Readonly<{}>;
18
20
  refs: {
19
21
  [key: string]: React.ReactInstance;
@@ -31,15 +33,17 @@ export declare const NavigationButton: {
31
33
  componentWillUpdate?(nextProps: Readonly<ButtonProps>, nextState: Readonly<{}>, nextContext: any): void;
32
34
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ButtonProps>, nextState: Readonly<{}>, nextContext: any): void;
33
35
  };
34
- new (props: ButtonProps, context: any): {
36
+ new (props: ButtonProps, context?: any): {
35
37
  ref: undefined;
36
- render(): React.JSX.Element;
37
- renderButtonComponent(): React.JSX.Element;
38
+ render(): JSX.Element;
39
+ renderButtonComponent(): JSX.Element;
38
40
  invokeOnClick(stateNode: any): void;
39
- context: unknown;
41
+ context: any;
40
42
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ButtonProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
41
43
  forceUpdate(callback?: (() => void) | undefined): void;
42
- readonly props: Readonly<ButtonProps>;
44
+ readonly props: Readonly<ButtonProps> & Readonly<{
45
+ children?: React.ReactNode;
46
+ }>;
43
47
  state: Readonly<{}>;
44
48
  refs: {
45
49
  [key: string]: React.ReactInstance;
@@ -57,6 +61,6 @@ export declare const NavigationButton: {
57
61
  componentWillUpdate?(nextProps: Readonly<ButtonProps>, nextState: Readonly<{}>, nextContext: any): void;
58
62
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ButtonProps>, nextState: Readonly<{}>, nextContext: any): void;
59
63
  };
60
- contextType?: React.Context<any> | undefined;
64
+ contextType?: React.Context<any>;
61
65
  };
62
66
  export {};
@@ -1,12 +1,14 @@
1
1
  import React from 'react';
2
2
  import { ComponentProps } from '../ComponentProps';
3
3
  export declare const Overlays: {
4
- new (props: ComponentProps): {
5
- render(): React.JSX.Element;
6
- context: unknown;
4
+ new (props: Readonly<ComponentProps>): {
5
+ render(): JSX.Element;
6
+ context: any;
7
7
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
8
8
  forceUpdate(callback?: (() => void) | undefined): void;
9
- readonly props: Readonly<ComponentProps>;
9
+ readonly props: Readonly<ComponentProps> & Readonly<{
10
+ children?: React.ReactNode;
11
+ }>;
10
12
  state: Readonly<{}>;
11
13
  refs: {
12
14
  [key: string]: React.ReactInstance;
@@ -24,12 +26,14 @@ export declare const Overlays: {
24
26
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
25
27
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
26
28
  };
27
- new (props: ComponentProps, context: any): {
28
- render(): React.JSX.Element;
29
- context: unknown;
29
+ new (props: ComponentProps, context?: any): {
30
+ render(): JSX.Element;
31
+ context: any;
30
32
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
31
33
  forceUpdate(callback?: (() => void) | undefined): void;
32
- readonly props: Readonly<ComponentProps>;
34
+ readonly props: Readonly<ComponentProps> & Readonly<{
35
+ children?: React.ReactNode;
36
+ }>;
33
37
  state: Readonly<{}>;
34
38
  refs: {
35
39
  [key: string]: React.ReactInstance;
@@ -47,5 +51,5 @@ export declare const Overlays: {
47
51
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
48
52
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
49
53
  };
50
- contextType?: React.Context<any> | undefined;
54
+ contextType?: React.Context<any>;
51
55
  };
@@ -0,0 +1,62 @@
1
+ import React, { Component } from 'react';
2
+ import { ComponentProps } from '../ComponentProps';
3
+ export declare const SideMenuRoot: {
4
+ new (props: Readonly<ComponentProps>): {
5
+ render(): JSX.Element[];
6
+ context: any;
7
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
8
+ forceUpdate(callback?: (() => void) | undefined): void;
9
+ readonly props: Readonly<ComponentProps> & Readonly<{
10
+ children?: React.ReactNode;
11
+ }>;
12
+ state: Readonly<{}>;
13
+ refs: {
14
+ [key: string]: React.ReactInstance;
15
+ };
16
+ componentDidMount?(): void;
17
+ shouldComponentUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): boolean;
18
+ componentWillUnmount?(): void;
19
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
20
+ getSnapshotBeforeUpdate?(prevProps: Readonly<ComponentProps>, prevState: Readonly<{}>): any;
21
+ componentDidUpdate?(prevProps: Readonly<ComponentProps>, prevState: Readonly<{}>, snapshot?: any): void;
22
+ componentWillMount?(): void;
23
+ UNSAFE_componentWillMount?(): void;
24
+ componentWillReceiveProps?(nextProps: Readonly<ComponentProps>, nextContext: any): void;
25
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<ComponentProps>, nextContext: any): void;
26
+ componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
27
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
28
+ };
29
+ new (props: ComponentProps, context?: any): {
30
+ render(): JSX.Element[];
31
+ context: any;
32
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
33
+ forceUpdate(callback?: (() => void) | undefined): void;
34
+ readonly props: Readonly<ComponentProps> & Readonly<{
35
+ children?: React.ReactNode;
36
+ }>;
37
+ state: Readonly<{}>;
38
+ refs: {
39
+ [key: string]: React.ReactInstance;
40
+ };
41
+ componentDidMount?(): void;
42
+ shouldComponentUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): boolean;
43
+ componentWillUnmount?(): void;
44
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
45
+ getSnapshotBeforeUpdate?(prevProps: Readonly<ComponentProps>, prevState: Readonly<{}>): any;
46
+ componentDidUpdate?(prevProps: Readonly<ComponentProps>, prevState: Readonly<{}>, snapshot?: any): void;
47
+ componentWillMount?(): void;
48
+ UNSAFE_componentWillMount?(): void;
49
+ componentWillReceiveProps?(nextProps: Readonly<ComponentProps>, nextContext: any): void;
50
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<ComponentProps>, nextContext: any): void;
51
+ componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
52
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
53
+ };
54
+ contextType?: React.Context<any>;
55
+ };
56
+ declare class SideMenuComponent extends Component<ComponentProps> {
57
+ render(): JSX.Element;
58
+ }
59
+ export declare const SideMenuLeft: typeof SideMenuComponent;
60
+ export declare const SideMenuCenter: typeof SideMenuComponent;
61
+ export declare const SideMenuRight: typeof SideMenuComponent;
62
+ export {};
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SideMenuRight = exports.SideMenuCenter = exports.SideMenuLeft = exports.SideMenuRoot = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const connect_1 = require("../connect");
7
+ const LayoutComponent_1 = require("./LayoutComponent");
8
+ exports.SideMenuRoot = (0, connect_1.connect)(class extends react_1.Component {
9
+ render() {
10
+ const children = this.props.layoutNode.children;
11
+ return children.map((child) => {
12
+ return react_1.default.createElement(LayoutComponent_1.LayoutComponent, { key: child.nodeId, layoutNode: child });
13
+ });
14
+ }
15
+ });
16
+ class SideMenuComponent extends react_1.Component {
17
+ render() {
18
+ const children = this.props.layoutNode.children;
19
+ const component = children[0];
20
+ return react_1.default.createElement(LayoutComponent_1.LayoutComponent, { key: component.nodeId, layoutNode: component });
21
+ }
22
+ }
23
+ exports.SideMenuLeft = (0, connect_1.connect)(SideMenuComponent);
24
+ exports.SideMenuCenter = (0, connect_1.connect)(SideMenuComponent);
25
+ exports.SideMenuRight = (0, connect_1.connect)(SideMenuComponent);
@@ -1,12 +1,14 @@
1
1
  import React from 'react';
2
2
  import { ComponentProps } from '../ComponentProps';
3
3
  export declare const Stack: {
4
- new (props: ComponentProps): {
5
- render(): React.JSX.Element[];
6
- context: unknown;
4
+ new (props: Readonly<ComponentProps>): {
5
+ render(): JSX.Element[];
6
+ context: any;
7
7
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
8
8
  forceUpdate(callback?: (() => void) | undefined): void;
9
- readonly props: Readonly<ComponentProps>;
9
+ readonly props: Readonly<ComponentProps> & Readonly<{
10
+ children?: React.ReactNode;
11
+ }>;
10
12
  state: Readonly<{}>;
11
13
  refs: {
12
14
  [key: string]: React.ReactInstance;
@@ -24,12 +26,14 @@ export declare const Stack: {
24
26
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
25
27
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
26
28
  };
27
- new (props: ComponentProps, context: any): {
28
- render(): React.JSX.Element[];
29
- context: unknown;
29
+ new (props: ComponentProps, context?: any): {
30
+ render(): JSX.Element[];
31
+ context: any;
30
32
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
31
33
  forceUpdate(callback?: (() => void) | undefined): void;
32
- readonly props: Readonly<ComponentProps>;
34
+ readonly props: Readonly<ComponentProps> & Readonly<{
35
+ children?: React.ReactNode;
36
+ }>;
33
37
  state: Readonly<{}>;
34
38
  refs: {
35
39
  [key: string]: React.ReactInstance;
@@ -47,5 +51,5 @@ export declare const Stack: {
47
51
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
48
52
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
49
53
  };
50
- contextType?: React.Context<any> | undefined;
54
+ contextType?: React.Context<any>;
51
55
  };
@@ -8,15 +8,17 @@ export interface TopBarProps {
8
8
  }
9
9
  export declare const TopBar: {
10
10
  new (props: TopBarProps): {
11
- render(): React.JSX.Element | null;
11
+ render(): JSX.Element | null;
12
12
  shouldRenderBackButton(layoutNode: ParentNode): boolean;
13
- renderButtons(buttons?: OptionsTopBarButton[]): React.JSX.Element[];
14
- renderBackButton(): React.JSX.Element;
15
- renderComponent(id: string, name: string, testID?: string): React.JSX.Element;
16
- context: unknown;
13
+ renderButtons(buttons?: OptionsTopBarButton[]): JSX.Element[];
14
+ renderBackButton(): JSX.Element;
15
+ renderComponent(id: string, name: string, testID?: string): JSX.Element;
16
+ context: any;
17
17
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<TopBarProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
18
18
  forceUpdate(callback?: (() => void) | undefined): void;
19
- readonly props: Readonly<TopBarProps>;
19
+ readonly props: Readonly<TopBarProps> & Readonly<{
20
+ children?: React.ReactNode;
21
+ }>;
20
22
  state: Readonly<{}>;
21
23
  refs: {
22
24
  [key: string]: React.ReactInstance;
@@ -34,5 +36,5 @@ export declare const TopBar: {
34
36
  componentWillUpdate?(nextProps: Readonly<TopBarProps>, nextState: Readonly<{}>, nextContext: any): void;
35
37
  UNSAFE_componentWillUpdate?(nextProps: Readonly<TopBarProps>, nextState: Readonly<{}>, nextContext: any): void;
36
38
  };
37
- contextType?: React.Context<any> | undefined;
39
+ contextType?: React.Context<any>;
38
40
  };
@@ -3,6 +3,6 @@ import ParentNode from './ParentNode';
3
3
  export default class BottomTabsNode extends ParentNode {
4
4
  selectedIndex: number;
5
5
  constructor(layout: any, parentNode?: ParentNode);
6
- mergeOptions(options: Options): void;
6
+ mergeOptions(_options: Options): void;
7
7
  getVisibleLayout(): import("./ComponentNode").default;
8
8
  }
@@ -10,8 +10,9 @@ class BottomTabsNode extends ParentNode_1.default {
10
10
  super(layout, 'BottomTabs', parentNode);
11
11
  this.selectedIndex = layout.data?.options?.bottomTabs?.currentTabIndex || 0;
12
12
  }
13
- mergeOptions(options) {
14
- super.mergeOptions(options);
13
+ mergeOptions(_options) {
14
+ super.mergeOptions(_options);
15
+ const { options } = this.data;
15
16
  if (options.bottomTabs?.currentTabIndex) {
16
17
  this.selectedIndex = options.bottomTabs?.currentTabIndex;
17
18
  (0, layoutActions_1.switchTabByIndex)(this, this.selectedIndex);
@@ -2,6 +2,7 @@ import BottomTabs from './BottomTabsNode';
2
2
  import ComponentNode from './ComponentNode';
3
3
  import Stack from './StackNode';
4
4
  import ParentNode from './ParentNode';
5
+ import SideMenuRootNode, { SideMenuLeftNode, SideMenuRightNode, SideMenuCenterNode } from './SideMenu';
5
6
  export default class LayoutNodeFactory {
6
- static create(layout: any, parentNode?: ParentNode): Stack | BottomTabs | ComponentNode;
7
+ static create(layout: any, parentNode?: ParentNode): ComponentNode | SideMenuRootNode | SideMenuLeftNode | SideMenuRightNode | SideMenuCenterNode | Stack | BottomTabs;
7
8
  }
@@ -4,6 +4,7 @@ const tslib_1 = require("tslib");
4
4
  const BottomTabsNode_1 = tslib_1.__importDefault(require("./BottomTabsNode"));
5
5
  const ComponentNode_1 = tslib_1.__importDefault(require("./ComponentNode"));
6
6
  const StackNode_1 = tslib_1.__importDefault(require("./StackNode"));
7
+ const SideMenu_1 = tslib_1.__importStar(require("./SideMenu"));
7
8
  class LayoutNodeFactory {
8
9
  static create(layout, parentNode) {
9
10
  switch (layout.type) {
@@ -11,7 +12,15 @@ class LayoutNodeFactory {
11
12
  return new ComponentNode_1.default(layout, parentNode);
12
13
  case 'Stack':
13
14
  return new StackNode_1.default(layout, parentNode);
14
- default:
15
+ case 'SideMenuRoot':
16
+ return new SideMenu_1.default(layout, parentNode);
17
+ case 'SideMenuLeft':
18
+ return new SideMenu_1.SideMenuLeftNode(layout, parentNode);
19
+ case 'SideMenuCenter':
20
+ return new SideMenu_1.SideMenuCenterNode(layout, parentNode);
21
+ case 'SideMenuRight':
22
+ return new SideMenu_1.SideMenuRightNode(layout, parentNode);
23
+ default: // TODO Undo
15
24
  case 'BottomTabs':
16
25
  return new BottomTabsNode_1.default(layout, parentNode);
17
26
  }
@@ -10,6 +10,7 @@ export default class ParentNode extends Node {
10
10
  componentDidDisappear(): void;
11
11
  getVisibleLayout(): ComponentNode;
12
12
  getTopParent(): Node;
13
+ applyOptions(_options: Options): void;
13
14
  mergeOptions(options: Options): void;
14
15
  buttonsChanged(_oldButtons: OptionsTopBarButton[], _newButtons: OptionsTopBarButton[]): void;
15
16
  titleChanged(_oldComponent: any, _newComponent: any): void;
@@ -26,6 +26,9 @@ class ParentNode extends Node_1.default {
26
26
  return this.parentNode.getTopParent();
27
27
  return this;
28
28
  }
29
+ applyOptions(_options) {
30
+ this.parentNode?.applyOptions(_options);
31
+ }
29
32
  mergeOptions(options) {
30
33
  this.data.options = lodash_1.default.mergeWith(this.data.options, options, (objValue, srcValue, key) => {
31
34
  if (lodash_1.default.isArray(objValue)) {
@@ -0,0 +1,31 @@
1
+ import ParentNode from './ParentNode';
2
+ import ComponentNode from './ComponentNode';
3
+ import { Options } from '../../src/index';
4
+ import { NodeType } from './Node';
5
+ export default class SideMenuRootNode extends ParentNode {
6
+ visibleChild: ParentNode;
7
+ constructor(layout: any, parentNode?: ParentNode);
8
+ applyOptions(_options: Options): void;
9
+ mergeOptions(options: Options): void;
10
+ /**
11
+ * @override
12
+ */
13
+ getVisibleLayout(): ComponentNode;
14
+ _updateVisibility(options: Options): void;
15
+ _getCenterChild: () => ParentNode;
16
+ _getLeftChild: () => ParentNode;
17
+ _getRightChild: () => ParentNode;
18
+ }
19
+ export declare class SideMenuNode extends ParentNode {
20
+ constructor(layout: any, type: NodeType, parentNode?: ParentNode);
21
+ getVisibleLayout(): ComponentNode;
22
+ }
23
+ export declare class SideMenuLeftNode extends SideMenuNode {
24
+ constructor(layout: any, parentNode?: ParentNode);
25
+ }
26
+ export declare class SideMenuRightNode extends SideMenuNode {
27
+ constructor(layout: any, parentNode?: ParentNode);
28
+ }
29
+ export declare class SideMenuCenterNode extends SideMenuNode {
30
+ constructor(layout: any, parentNode?: ParentNode);
31
+ }