@zohodesk/react-cli 0.0.1-exp.160.1 → 0.0.1-exp.161.2

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 (135) hide show
  1. package/.eslintignore +7 -7
  2. package/.eslintrc.js +183 -183
  3. package/README.md +785 -746
  4. package/bin/cli.js +421 -421
  5. package/cert/cert.pem +37 -37
  6. package/cert/key.pem +27 -27
  7. package/files/eslintrc.js +62 -62
  8. package/files/prettierrc.js +3 -3
  9. package/lib/common/index.js +6 -6
  10. package/lib/configs/webpack.css.umd.config.js +4 -4
  11. package/lib/loaderUtils/index.js +4 -4
  12. package/lib/loaders/scriptInstrumentLoader.js +2 -2
  13. package/lib/loaders/workerLoader.js +9 -9
  14. package/lib/pluginUtils/getDevPlugins.js +7 -5
  15. package/lib/pluginUtils/getProdPlugins.js +7 -5
  16. package/lib/pluginUtils/index.js +12 -12
  17. package/lib/plugins/EFCPlugin.js +43 -13
  18. package/lib/plugins/EFCPlugin.md +6 -6
  19. package/lib/plugins/EFCTemplatePlugin.js +151 -0
  20. package/lib/plugins/I18NInjectIntoIndexPlugin.js +4 -4
  21. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +38 -38
  22. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
  23. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +8 -8
  24. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +86 -86
  25. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  26. package/lib/plugins/I18nSplitPlugin/index.js +57 -57
  27. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +2 -2
  28. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +1 -1
  29. package/lib/plugins/ManifestPlugin.js +8 -0
  30. package/lib/plugins/ResourceHintsPlugin.js +17 -17
  31. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +6 -6
  32. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
  33. package/lib/plugins/ServiceWorkerPlugin.js +9 -9
  34. package/lib/plugins/TPHashMappingPlugin.js +4 -4
  35. package/lib/plugins/index.js +36 -36
  36. package/lib/postcss-plugins/RTLSplitPlugin.js +13 -13
  37. package/lib/schemas/index.js +3 -0
  38. package/lib/sh/pre-commit.sh +34 -34
  39. package/lib/sh/reportPublish.sh +45 -45
  40. package/lib/templates/linterConstant.js +1 -1
  41. package/lib/utils/buildstats.html +148 -148
  42. package/lib/utils/cssClassNameGenerate.js +9 -2
  43. package/lib/utils/cssURLReplacer.js +1 -1
  44. package/lib/utils/index.js +21 -19
  45. package/lib/utils/jsonHelper.js +1 -1
  46. package/lib/utils/reinstallDependencies.js +1 -1
  47. package/lib/utils/resultSchema.json +73 -73
  48. package/node_modules0/history/CHANGES.md +395 -0
  49. package/node_modules0/history/DOMUtils.js +3 -0
  50. package/node_modules0/history/ExecutionEnvironment.js +3 -0
  51. package/node_modules0/history/LICENSE +21 -0
  52. package/node_modules0/history/LocationUtils.js +3 -0
  53. package/node_modules0/history/PathUtils.js +3 -0
  54. package/node_modules0/history/README.md +282 -0
  55. package/node_modules0/history/cjs/history.js +933 -0
  56. package/node_modules0/history/cjs/history.min.js +1 -0
  57. package/node_modules0/history/createBrowserHistory.js +3 -0
  58. package/node_modules0/history/createHashHistory.js +3 -0
  59. package/node_modules0/history/createMemoryHistory.js +3 -0
  60. package/node_modules0/history/createTransitionManager.js +3 -0
  61. package/node_modules0/history/es/DOMUtils.js +7 -0
  62. package/node_modules0/history/es/ExecutionEnvironment.js +7 -0
  63. package/node_modules0/history/es/LocationUtils.js +7 -0
  64. package/node_modules0/history/es/PathUtils.js +7 -0
  65. package/node_modules0/history/es/createBrowserHistory.js +7 -0
  66. package/node_modules0/history/es/createHashHistory.js +7 -0
  67. package/node_modules0/history/es/createMemoryHistory.js +7 -0
  68. package/node_modules0/history/es/createTransitionManager.js +7 -0
  69. package/node_modules0/history/es/warnAboutDeprecatedESMImport.js +35 -0
  70. package/node_modules0/history/esm/history.js +904 -0
  71. package/node_modules0/history/index.js +7 -0
  72. package/node_modules0/history/package.json +120 -0
  73. package/node_modules0/history/umd/history.js +1059 -0
  74. package/node_modules0/history/umd/history.min.js +1 -0
  75. package/node_modules0/history/warnAboutDeprecatedCJSRequire.js +35 -0
  76. package/package.json +145 -145
  77. package/templates/app/.eslintrc.js +140 -140
  78. package/templates/app/README.md +12 -12
  79. package/templates/app/app/index.html +24 -24
  80. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  81. package/templates/app/app/properties/i18nkeys.json +3 -3
  82. package/templates/app/docs/all.html +69 -69
  83. package/templates/app/mockapi/index.js +18 -18
  84. package/templates/app/package.json +37 -37
  85. package/templates/app/src/actions/SampleActions/index.js +37 -37
  86. package/templates/app/src/actions/index.js +65 -65
  87. package/templates/app/src/appUrls.js +19 -19
  88. package/templates/app/src/components/Alert/Alert.js +134 -134
  89. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  90. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  91. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  92. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  93. package/templates/app/src/components/Sample/SampleList.js +61 -61
  94. package/templates/app/src/components/Slider/Slider.css +41 -41
  95. package/templates/app/src/components/Slider/Slider.js +55 -55
  96. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  97. package/templates/app/src/containers/AppContainer/index.js +96 -96
  98. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  99. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  100. package/templates/app/src/containers/DevTools/index.js +10 -10
  101. package/templates/app/src/containers/Header/index.js +67 -67
  102. package/templates/app/src/containers/Header/index.module.css +43 -43
  103. package/templates/app/src/containers/Redirect/index.js +63 -63
  104. package/templates/app/src/containers/Redirector/index.js +47 -47
  105. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  106. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  107. package/templates/app/src/historyChange.js +5 -5
  108. package/templates/app/src/index.html +10 -10
  109. package/templates/app/src/index.js +24 -24
  110. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  111. package/templates/app/src/reducers/alertData.js +11 -11
  112. package/templates/app/src/reducers/index.js +6 -6
  113. package/templates/app/src/reducers/samples.js +19 -19
  114. package/templates/app/src/store/configureStore.dev.js +51 -51
  115. package/templates/app/src/store/configureStore.js +5 -5
  116. package/templates/app/src/store/configureStore.prod.js +26 -26
  117. package/templates/app/src/util/Common.js +5 -5
  118. package/templates/app/src/util/RequestAPI.js +132 -132
  119. package/templates/docs/all.html +249 -249
  120. package/templates/docs/component.html +178 -178
  121. package/templates/docs/components.html +221 -221
  122. package/templates/docs/css/b.min.css +6 -6
  123. package/templates/docs/css/component.css +42 -42
  124. package/templates/docs/css/componentTest.css +6 -6
  125. package/templates/docs/css/hopscotch.css +585 -585
  126. package/templates/docs/css/style.css +1022 -1022
  127. package/templates/docs/impactReportTemplate.html +154 -154
  128. package/templates/docs/index.html +1493 -1493
  129. package/templates/docs/js/active-line.js +72 -72
  130. package/templates/docs/js/b.min.js +7 -7
  131. package/templates/docs/js/codemirror.js +9680 -9680
  132. package/templates/docs/js/designTokens.js +334 -334
  133. package/templates/docs/js/j.min.js +4 -4
  134. package/templates/docs/js/javascript.js +874 -874
  135. package/templates/docs/js/matchbrackets.js +145 -145
@@ -1,65 +1,65 @@
1
- import React, { Component } from "react";
2
- import { connect } from "react-redux";
3
- import PropTypes from "prop-types";
4
- import { replace } from "../../actions";
5
- class CustomMatch extends Component {
6
- render() {
7
- let { children, isMatch } = this.props;
8
- return (isMatch && React.Children.only(children)) || null;
9
- }
10
- }
11
-
12
- export default connect(
13
- (state, props) => {
14
- let isMatch;
15
- if (Array.isArray(props.names)) {
16
- isMatch = props.names.some(urlObj => {
17
- let { name, module, isExactly } = urlObj || {};
18
- const { paramMap = {}, urls } = state.routing;
19
- let url = urls[name] || {};
20
-
21
- let { moduleName } = paramMap;
22
- if ((isExactly && url.match === 2) || (!isExactly && url.match)) {
23
- isMatch = true;
24
- return module ? moduleName === module : isMatch;
25
- }
26
- return false;
27
- });
28
- } else {
29
- let url = state.routing.urls[props.name];
30
- if (url) {
31
- isMatch =
32
- (props.isExactly && url.match === 2) ||
33
- (!props.isExactly && url.match);
34
- if (isMatch && Array.isArray(props.module)) {
35
- let modules = props.module;
36
- isMatch = modules.some(module => {
37
- return state.routing.paramMap.moduleName === module;
38
- });
39
- } else if (isMatch && props.module) {
40
- isMatch = state.routing.paramMap.moduleName === props.module;
41
- }
42
- }
43
- }
44
- isMatch =
45
- !isMatch && props.orMapStateMatch
46
- ? props.orMapStateMatch(state)
47
- : isMatch;
48
- return {
49
- isMatch: isMatch ? true : false,
50
- isAuthenticate: props.checkAuthenticate
51
- ? props.checkAuthenticate(state)
52
- : true
53
- };
54
- },
55
- { replace }
56
- )(CustomMatch);
57
-
58
- CustomMatch.defaultProps = {
59
- isExactly: false
60
- };
61
- CustomMatch.propTypes = {
62
- children: PropTypes.element,
63
- isExactly: PropTypes.bool,
64
- isMatch: PropTypes.bool
65
- };
1
+ import React, { Component } from "react";
2
+ import { connect } from "react-redux";
3
+ import PropTypes from "prop-types";
4
+ import { replace } from "../../actions";
5
+ class CustomMatch extends Component {
6
+ render() {
7
+ let { children, isMatch } = this.props;
8
+ return (isMatch && React.Children.only(children)) || null;
9
+ }
10
+ }
11
+
12
+ export default connect(
13
+ (state, props) => {
14
+ let isMatch;
15
+ if (Array.isArray(props.names)) {
16
+ isMatch = props.names.some(urlObj => {
17
+ let { name, module, isExactly } = urlObj || {};
18
+ const { paramMap = {}, urls } = state.routing;
19
+ let url = urls[name] || {};
20
+
21
+ let { moduleName } = paramMap;
22
+ if ((isExactly && url.match === 2) || (!isExactly && url.match)) {
23
+ isMatch = true;
24
+ return module ? moduleName === module : isMatch;
25
+ }
26
+ return false;
27
+ });
28
+ } else {
29
+ let url = state.routing.urls[props.name];
30
+ if (url) {
31
+ isMatch =
32
+ (props.isExactly && url.match === 2) ||
33
+ (!props.isExactly && url.match);
34
+ if (isMatch && Array.isArray(props.module)) {
35
+ let modules = props.module;
36
+ isMatch = modules.some(module => {
37
+ return state.routing.paramMap.moduleName === module;
38
+ });
39
+ } else if (isMatch && props.module) {
40
+ isMatch = state.routing.paramMap.moduleName === props.module;
41
+ }
42
+ }
43
+ }
44
+ isMatch =
45
+ !isMatch && props.orMapStateMatch
46
+ ? props.orMapStateMatch(state)
47
+ : isMatch;
48
+ return {
49
+ isMatch: isMatch ? true : false,
50
+ isAuthenticate: props.checkAuthenticate
51
+ ? props.checkAuthenticate(state)
52
+ : true
53
+ };
54
+ },
55
+ { replace }
56
+ )(CustomMatch);
57
+
58
+ CustomMatch.defaultProps = {
59
+ isExactly: false
60
+ };
61
+ CustomMatch.propTypes = {
62
+ children: PropTypes.element,
63
+ isExactly: PropTypes.bool,
64
+ isMatch: PropTypes.bool
65
+ };
@@ -1,10 +1,10 @@
1
- import React from "react";
2
- import { createDevTools } from "redux-devtools";
3
- import LogMonitor from "redux-devtools-log-monitor";
4
- import DockMonitor from "redux-devtools-dock-monitor";
5
-
6
- export default createDevTools(
7
- <DockMonitor toggleVisibilityKey="ctrl-h" changePositionKey="ctrl-w">
8
- <LogMonitor />
9
- </DockMonitor>
10
- );
1
+ import React from "react";
2
+ import { createDevTools } from "redux-devtools";
3
+ import LogMonitor from "redux-devtools-log-monitor";
4
+ import DockMonitor from "redux-devtools-dock-monitor";
5
+
6
+ export default createDevTools(
7
+ <DockMonitor toggleVisibilityKey="ctrl-h" changePositionKey="ctrl-w">
8
+ <LogMonitor />
9
+ </DockMonitor>
10
+ );
@@ -1,67 +1,67 @@
1
- import React, { Component } from "react";
2
- import PropTypes from "prop-types";
3
- import { connect } from "react-redux";
4
- import style from "./index.module.css";
5
- import { push, alertAction } from "../../actions";
6
-
7
- import { URL_PREFIX } from "../../util/Common";
8
-
9
- class Header extends Component {
10
- constructor(props) {
11
- super(props);
12
- this.state = {
13
- tabs: [
14
- {
15
- url: `${URL_PREFIX}/sample`,
16
- name: "Sample",
17
- apiName: "sample",
18
- id: "1"
19
- }
20
- ],
21
- selectedTab: "sample"
22
- };
23
- this.changeTab = this.changeTab.bind(this);
24
- }
25
- changeTab(e) {
26
- e.preventDefault();
27
- let { push } = this.props;
28
-
29
- push({ pathname: e.target.getAttribute("href") });
30
- }
31
- render() {
32
- let { tabs, selectedTab } = this.state;
33
- const { topbar, menuUl, menuli, menuliActive, menuLink } = style;
34
-
35
- tabs = tabs.map((tab, index) => {
36
- const { apiName, url, name } = tab;
37
-
38
- const tabClass =
39
- selectedTab === apiName ? menuli + " " + menuliActive : menuli;
40
- return (
41
- <li className={tabClass} key={index}>
42
- <a href={url} className={menuLink} onClick={this.changeTab}>
43
- {name}
44
- </a>
45
- </li>
46
- );
47
- });
48
- return (
49
- <div className={topbar}>
50
- <ul className={menuUl}>{tabs}</ul>
51
- </div>
52
- );
53
- }
54
- }
55
-
56
- Header.propTypes = {
57
- push: PropTypes.func
58
- };
59
-
60
- const mapStateToProps = (state, ownProps) => {
61
- return {};
62
- };
63
-
64
- export default connect(
65
- mapStateToProps,
66
- { push, showConfirmBox: alertAction.showConfirmBox }
67
- )(Header);
1
+ import React, { Component } from "react";
2
+ import PropTypes from "prop-types";
3
+ import { connect } from "react-redux";
4
+ import style from "./index.module.css";
5
+ import { push, alertAction } from "../../actions";
6
+
7
+ import { URL_PREFIX } from "../../util/Common";
8
+
9
+ class Header extends Component {
10
+ constructor(props) {
11
+ super(props);
12
+ this.state = {
13
+ tabs: [
14
+ {
15
+ url: `${URL_PREFIX}/sample`,
16
+ name: "Sample",
17
+ apiName: "sample",
18
+ id: "1"
19
+ }
20
+ ],
21
+ selectedTab: "sample"
22
+ };
23
+ this.changeTab = this.changeTab.bind(this);
24
+ }
25
+ changeTab(e) {
26
+ e.preventDefault();
27
+ let { push } = this.props;
28
+
29
+ push({ pathname: e.target.getAttribute("href") });
30
+ }
31
+ render() {
32
+ let { tabs, selectedTab } = this.state;
33
+ const { topbar, menuUl, menuli, menuliActive, menuLink } = style;
34
+
35
+ tabs = tabs.map((tab, index) => {
36
+ const { apiName, url, name } = tab;
37
+
38
+ const tabClass =
39
+ selectedTab === apiName ? menuli + " " + menuliActive : menuli;
40
+ return (
41
+ <li className={tabClass} key={index}>
42
+ <a href={url} className={menuLink} onClick={this.changeTab}>
43
+ {name}
44
+ </a>
45
+ </li>
46
+ );
47
+ });
48
+ return (
49
+ <div className={topbar}>
50
+ <ul className={menuUl}>{tabs}</ul>
51
+ </div>
52
+ );
53
+ }
54
+ }
55
+
56
+ Header.propTypes = {
57
+ push: PropTypes.func
58
+ };
59
+
60
+ const mapStateToProps = (state, ownProps) => {
61
+ return {};
62
+ };
63
+
64
+ export default connect(
65
+ mapStateToProps,
66
+ { push, showConfirmBox: alertAction.showConfirmBox }
67
+ )(Header);
@@ -1,43 +1,43 @@
1
- .topbar {
2
- min-height: 45px;
3
- background: #1e2633;
4
-
5
- box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.25);
6
- width: 100%;
7
- z-index: 5;
8
- color: #fff;
9
- }
10
-
11
- :global ul,
12
- :global li {
13
- padding: 0;
14
- margin: 0;
15
- }
16
-
17
- .menuUl {
18
- list-style: none;
19
- }
20
-
21
- .menuli {
22
- float: left;
23
- box-sizing: border-box;
24
- cursor: pointer;
25
- position: relative;
26
- font-size: 12px;
27
- letter-spacing: 0.6px;
28
- text-transform: uppercase;
29
- }
30
-
31
- .menuliActive {
32
- background: #4b515c;
33
- }
34
-
35
- .menuLink {
36
- padding: 17px 14px 15px;
37
- float: left;
38
- line-height: 13px;
39
- color: #fff;
40
- max-width: 110px;
41
- -webkit-font-smoothing: antialiased;
42
- -moz-osx-font-smoothing: grayscale;
43
- }
1
+ .topbar {
2
+ min-height: 45px;
3
+ background: #1e2633;
4
+
5
+ box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.25);
6
+ width: 100%;
7
+ z-index: 5;
8
+ color: #fff;
9
+ }
10
+
11
+ :global ul,
12
+ :global li {
13
+ padding: 0;
14
+ margin: 0;
15
+ }
16
+
17
+ .menuUl {
18
+ list-style: none;
19
+ }
20
+
21
+ .menuli {
22
+ float: left;
23
+ box-sizing: border-box;
24
+ cursor: pointer;
25
+ position: relative;
26
+ font-size: 12px;
27
+ letter-spacing: 0.6px;
28
+ text-transform: uppercase;
29
+ }
30
+
31
+ .menuliActive {
32
+ background: #4b515c;
33
+ }
34
+
35
+ .menuLink {
36
+ padding: 17px 14px 15px;
37
+ float: left;
38
+ line-height: 13px;
39
+ color: #fff;
40
+ max-width: 110px;
41
+ -webkit-font-smoothing: antialiased;
42
+ -moz-osx-font-smoothing: grayscale;
43
+ }
@@ -1,63 +1,63 @@
1
- import React, { Component } from "react";
2
- import PropTypes from "prop-types";
3
- import { connect } from "react-redux";
4
- import { replace } from "../../actions";
5
- class Redirect extends Component {
6
- constructor(props) {
7
- super(props);
8
- }
9
-
10
- render() {
11
- return null;
12
- }
13
-
14
- componentDidMount() {
15
- if (this.props.isMatch) {
16
- this.props.replace(this.props.to(this.props.location));
17
- }
18
- }
19
-
20
- componentDidUpdate() {
21
- if (this.props.isMatch) {
22
- this.props.replace(this.props.to(this.props.location));
23
- }
24
- }
25
- }
26
-
27
- Redirect.propTypes = {
28
- from: PropTypes.shape({
29
- name: PropTypes.string,
30
- module: PropTypes.string
31
- }),
32
- to: PropTypes.func
33
- };
34
- function mapStateToProps(state, props) {
35
- let url = state.routing.urls[props.from.name];
36
-
37
- if (url && url.match == 2) {
38
- let { module } = props.from;
39
- if (props.from.module) {
40
- if (state.routing.paramMap.moduleName == props.from.module) {
41
- return {
42
- isMatch: true,
43
- location: state.routing.location
44
- };
45
- }
46
- return {
47
- isMatch: false
48
- };
49
- }
50
- return {
51
- isMatch: true
52
- };
53
- }
54
- return {
55
- isMatch: false,
56
- location: state.routing.location
57
- };
58
- }
59
-
60
- export default connect(
61
- mapStateToProps,
62
- { replace }
63
- )(Redirect);
1
+ import React, { Component } from "react";
2
+ import PropTypes from "prop-types";
3
+ import { connect } from "react-redux";
4
+ import { replace } from "../../actions";
5
+ class Redirect extends Component {
6
+ constructor(props) {
7
+ super(props);
8
+ }
9
+
10
+ render() {
11
+ return null;
12
+ }
13
+
14
+ componentDidMount() {
15
+ if (this.props.isMatch) {
16
+ this.props.replace(this.props.to(this.props.location));
17
+ }
18
+ }
19
+
20
+ componentDidUpdate() {
21
+ if (this.props.isMatch) {
22
+ this.props.replace(this.props.to(this.props.location));
23
+ }
24
+ }
25
+ }
26
+
27
+ Redirect.propTypes = {
28
+ from: PropTypes.shape({
29
+ name: PropTypes.string,
30
+ module: PropTypes.string
31
+ }),
32
+ to: PropTypes.func
33
+ };
34
+ function mapStateToProps(state, props) {
35
+ let url = state.routing.urls[props.from.name];
36
+
37
+ if (url && url.match == 2) {
38
+ let { module } = props.from;
39
+ if (props.from.module) {
40
+ if (state.routing.paramMap.moduleName == props.from.module) {
41
+ return {
42
+ isMatch: true,
43
+ location: state.routing.location
44
+ };
45
+ }
46
+ return {
47
+ isMatch: false
48
+ };
49
+ }
50
+ return {
51
+ isMatch: true
52
+ };
53
+ }
54
+ return {
55
+ isMatch: false,
56
+ location: state.routing.location
57
+ };
58
+ }
59
+
60
+ export default connect(
61
+ mapStateToProps,
62
+ { replace }
63
+ )(Redirect);
@@ -1,47 +1,47 @@
1
- import React, { Component } from "react";
2
- import PropTypes from "prop-types";
3
- import { connect } from "react-redux";
4
-
5
- import Redirect from "../Redirect";
6
-
7
- class Redirector extends Component {
8
- constructor(props) {
9
- super(props);
10
- }
11
-
12
- render() {
13
- let { urls } = this.props;
14
- return (
15
- <div style={{ display: "none" }}>
16
- {urls.map((url, i) => (
17
- <Redirect
18
- key={`redirect${i}`}
19
- from={{ name: url.name, module: url.module }}
20
- to={location =>
21
- Object.assign({}, location, {
22
- pathname: `${url.pathname}`
23
- })
24
- }
25
- />
26
- ))}
27
- </div>
28
- );
29
- }
30
- }
31
-
32
- Redirector.propTypes = {
33
- urls: PropTypes.array.isRequired
34
- };
35
-
36
- function mapStateToProps(state, props) {
37
- const urls = [
38
- {
39
- name: "sampleList",
40
- module: "sample",
41
- pathname: `${state.routing.location.pathname}/sample`
42
- }
43
- ];
44
-
45
- return { urls };
46
- }
47
- export default connect(mapStateToProps)(Redirector);
1
+ import React, { Component } from "react";
2
+ import PropTypes from "prop-types";
3
+ import { connect } from "react-redux";
4
+
5
+ import Redirect from "../Redirect";
6
+
7
+ class Redirector extends Component {
8
+ constructor(props) {
9
+ super(props);
10
+ }
11
+
12
+ render() {
13
+ let { urls } = this.props;
14
+ return (
15
+ <div style={{ display: "none" }}>
16
+ {urls.map((url, i) => (
17
+ <Redirect
18
+ key={`redirect${i}`}
19
+ from={{ name: url.name, module: url.module }}
20
+ to={location =>
21
+ Object.assign({}, location, {
22
+ pathname: `${url.pathname}`
23
+ })
24
+ }
25
+ />
26
+ ))}
27
+ </div>
28
+ );
29
+ }
30
+ }
31
+
32
+ Redirector.propTypes = {
33
+ urls: PropTypes.array.isRequired
34
+ };
35
+
36
+ function mapStateToProps(state, props) {
37
+ const urls = [
38
+ {
39
+ name: "sampleList",
40
+ module: "sample",
41
+ pathname: `${state.routing.location.pathname}/sample`
42
+ }
43
+ ];
44
+
45
+ return { urls };
46
+ }
47
+ export default connect(mapStateToProps)(Redirector);
@@ -1,42 +1,42 @@
1
- import React, { Component } from "react";
2
- import PropTypes from "prop-types";
3
- import { connect } from "react-redux";
4
- import { push, alertAction } from "../../actions";
5
- import { getSampleList } from "../../actions/SampleActions";
6
- import style from "./ListContainer.module.css";
7
- import SampleList from "../../components/Sample/SampleList";
8
-
9
- class ListContainer extends Component {
10
- constructor(props) {
11
- super(props);
12
- }
13
-
14
- componentDidMount() {
15
- const { getSampleList } = this.props;
16
- getSampleList().then(res => {});
17
- }
18
- render() {
19
- const { samples = [] } = this.props;
20
- return (
21
- <div className={style.container}>
22
- <SampleList samples={samples} />
23
- </div>
24
- );
25
- }
26
- }
27
-
28
- ListContainer.propTypes = {
29
- push: PropTypes.func,
30
- getSampleList: PropTypes.func,
31
- samples: PropTypes.array.isRequired
32
- };
33
-
34
- const mapStateToProps = (state, ownProps) => {
35
- const { samples = [] } = state;
36
- return { samples };
37
- };
38
-
39
- export default connect(
40
- mapStateToProps,
41
- { push, getSampleList }
42
- )(ListContainer);
1
+ import React, { Component } from "react";
2
+ import PropTypes from "prop-types";
3
+ import { connect } from "react-redux";
4
+ import { push, alertAction } from "../../actions";
5
+ import { getSampleList } from "../../actions/SampleActions";
6
+ import style from "./ListContainer.module.css";
7
+ import SampleList from "../../components/Sample/SampleList";
8
+
9
+ class ListContainer extends Component {
10
+ constructor(props) {
11
+ super(props);
12
+ }
13
+
14
+ componentDidMount() {
15
+ const { getSampleList } = this.props;
16
+ getSampleList().then(res => {});
17
+ }
18
+ render() {
19
+ const { samples = [] } = this.props;
20
+ return (
21
+ <div className={style.container}>
22
+ <SampleList samples={samples} />
23
+ </div>
24
+ );
25
+ }
26
+ }
27
+
28
+ ListContainer.propTypes = {
29
+ push: PropTypes.func,
30
+ getSampleList: PropTypes.func,
31
+ samples: PropTypes.array.isRequired
32
+ };
33
+
34
+ const mapStateToProps = (state, ownProps) => {
35
+ const { samples = [] } = state;
36
+ return { samples };
37
+ };
38
+
39
+ export default connect(
40
+ mapStateToProps,
41
+ { push, getSampleList }
42
+ )(ListContainer);