@zohodesk/react-cli 1.0.2 → 1.0.3-exp.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 (155) hide show
  1. package/.eslintignore +7 -7
  2. package/.eslintrc.js +180 -180
  3. package/.prettierrc +6 -6
  4. package/Changelog.md +1019 -1019
  5. package/README.md +1209 -1165
  6. package/bin/cli.js +489 -483
  7. package/docs/ComposeMinification.md +14 -0
  8. package/docs/CustomChunks.md +26 -26
  9. package/docs/DevServerPort.md +39 -39
  10. package/docs/DevStart.md +18 -18
  11. package/docs/HoverActive.md +12 -12
  12. package/docs/InstallNode.md +28 -28
  13. package/docs/SelectorWeight.md +8 -8
  14. package/docs/TODOS.md +10 -10
  15. package/docs/ValueReplacer.md +60 -60
  16. package/docs/VariableConversion.md +729 -729
  17. package/docs/warnings_while_install.txt +35 -35
  18. package/files/eslintrc.js +62 -62
  19. package/files/prettierrc.js +3 -3
  20. package/lib/common/buildEs.js +12 -0
  21. package/lib/common/testPattern.js +0 -2
  22. package/lib/common/valueReplacer.js +1 -3
  23. package/lib/configs/resolvers.js +14 -3
  24. package/lib/configs/webpack.css.umd.config.js +4 -4
  25. package/lib/configs/webpack.dev.config.js +6 -0
  26. package/lib/configs/webpack.docs.config.js +4 -0
  27. package/lib/configs/webpack.impact.config.js +4 -0
  28. package/lib/configs/webpack.prod.config.js +6 -0
  29. package/lib/loaderUtils/configsAssetsLoaders.js +33 -33
  30. package/lib/loaderUtils/getCSSLoaders.js +78 -49
  31. package/lib/loaderUtils/tests/windowsModification.test.js +10 -0
  32. package/lib/loaderUtils/windowsModification.js +6 -1
  33. package/lib/loaders/composeLoader.js +172 -0
  34. package/lib/loaders/selectorMappingLoader.js +9 -9
  35. package/lib/loaders/workerLoader.js +9 -9
  36. package/lib/logger.js +20 -0
  37. package/lib/pluginUtils/getDevPlugins.js +23 -8
  38. package/lib/pluginUtils/getProdPlugins.js +20 -8
  39. package/lib/pluginUtils/getUMDCSSPlugins.js +1 -1
  40. package/lib/pluginUtils/getUMDComponentPlugins.js +1 -1
  41. package/lib/plugins/CustomAttributePlugin.js +82 -0
  42. package/lib/plugins/CustomAttributePlugin.md +35 -0
  43. package/lib/plugins/EFCPlugin.js +9 -9
  44. package/lib/plugins/EFCPlugin.md +6 -6
  45. package/lib/plugins/EFCTemplatePlugin.js +10 -12
  46. package/lib/plugins/I18NInjectIntoIndexPlugin.js +12 -13
  47. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +2 -3
  48. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +38 -38
  49. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
  50. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +10 -15
  51. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
  52. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  53. package/lib/plugins/I18nSplitPlugin/index.js +57 -57
  54. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +8 -8
  55. package/lib/plugins/{UglifyCSSPlugin.js → MinifyPlugin.js} +3 -3
  56. package/lib/plugins/ResourceHintsPlugin.js +17 -17
  57. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +6 -6
  58. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
  59. package/lib/plugins/SelectorPlugin.js +66 -48
  60. package/lib/plugins/ServiceWorkerPlugin.js +9 -9
  61. package/lib/plugins/TPHashMappingPlugin.js +4 -4
  62. package/lib/plugins/VariableConversionCollector.js +94 -88
  63. package/lib/plugins/index.js +7 -7
  64. package/lib/plugins/utils/classHandling.js +20 -0
  65. package/lib/plugins/utils/fileHandling.js +107 -0
  66. package/lib/plugins/utils/tests/fileHandling.test.js +30 -0
  67. package/lib/postcss-plugins/EmptyPlugin.js +8 -0
  68. package/lib/postcss-plugins/ExcludePlugin.js +1 -1
  69. package/lib/postcss-plugins/IncludePlugin.js +0 -1
  70. package/lib/postcss-plugins/RTLSplitPlugin.js +14 -20
  71. package/lib/postcss-plugins/ValueReplacer.js +2 -13
  72. package/lib/postcss-plugins/__test__/test1Input.css +38 -38
  73. package/lib/postcss-plugins/__test__/test1Output.css +38 -38
  74. package/lib/postcss-plugins/hoverActivePlugin.js +3 -9
  75. package/lib/postcss-plugins/variableModificationPlugin/index.js +2 -21
  76. package/lib/schemas/index.js +39 -4
  77. package/lib/servers/devBuild.js +13 -11
  78. package/lib/servers/httpsOptions.js +12 -13
  79. package/lib/servers/nowatchserver.js +5 -3
  80. package/lib/servers/requireLocalOrGlobal.js +61 -0
  81. package/lib/servers/server.js +3 -5
  82. package/lib/sh/pre-commit.sh +34 -34
  83. package/lib/sh/reportPublish.sh +45 -45
  84. package/lib/utils/buildstats.html +148 -148
  85. package/lib/utils/cssClassNameGenerate.js +38 -12
  86. package/lib/utils/getOptions.js +9 -0
  87. package/lib/utils/resultSchema.json +73 -73
  88. package/lib/utils/variableConvertor.js +159 -0
  89. package/npm8.md +9 -9
  90. package/package-lock.json +14412 -0
  91. package/package.json +121 -120
  92. package/postpublish.js +8 -8
  93. package/templates/app/.eslintrc.js +140 -140
  94. package/templates/app/README.md +12 -12
  95. package/templates/app/app/index.html +24 -24
  96. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  97. package/templates/app/app/properties/i18nkeys.json +3 -3
  98. package/templates/app/docs/all.html +69 -69
  99. package/templates/app/mockapi/index.js +18 -18
  100. package/templates/app/package.json +37 -37
  101. package/templates/app/src/actions/SampleActions/index.js +37 -37
  102. package/templates/app/src/actions/index.js +65 -65
  103. package/templates/app/src/appUrls.js +19 -19
  104. package/templates/app/src/components/Alert/Alert.js +134 -134
  105. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  106. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  107. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  108. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  109. package/templates/app/src/components/Sample/SampleList.js +61 -61
  110. package/templates/app/src/components/Slider/Slider.css +41 -41
  111. package/templates/app/src/components/Slider/Slider.js +55 -55
  112. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  113. package/templates/app/src/containers/AppContainer/index.js +96 -96
  114. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  115. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  116. package/templates/app/src/containers/DevTools/index.js +10 -10
  117. package/templates/app/src/containers/Header/index.js +67 -67
  118. package/templates/app/src/containers/Header/index.module.css +43 -43
  119. package/templates/app/src/containers/Redirect/index.js +63 -63
  120. package/templates/app/src/containers/Redirector/index.js +47 -47
  121. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  122. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  123. package/templates/app/src/historyChange.js +5 -5
  124. package/templates/app/src/index.html +10 -10
  125. package/templates/app/src/index.js +24 -24
  126. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  127. package/templates/app/src/reducers/alertData.js +11 -11
  128. package/templates/app/src/reducers/index.js +6 -6
  129. package/templates/app/src/reducers/samples.js +19 -19
  130. package/templates/app/src/store/configureStore.dev.js +51 -51
  131. package/templates/app/src/store/configureStore.js +5 -5
  132. package/templates/app/src/store/configureStore.prod.js +26 -26
  133. package/templates/app/src/util/Common.js +5 -5
  134. package/templates/app/src/util/RequestAPI.js +132 -132
  135. package/templates/docs/all.html +249 -249
  136. package/templates/docs/component.html +178 -178
  137. package/templates/docs/components.html +221 -221
  138. package/templates/docs/css/b.min.css +6 -6
  139. package/templates/docs/css/component.css +42 -42
  140. package/templates/docs/css/componentTest.css +6 -6
  141. package/templates/docs/css/hopscotch.css +585 -585
  142. package/templates/docs/css/style.css +1022 -1022
  143. package/templates/docs/impactReportTemplate.html +154 -154
  144. package/templates/docs/index.html +1501 -1501
  145. package/templates/docs/js/active-line.js +72 -72
  146. package/templates/docs/js/b.min.js +7 -7
  147. package/templates/docs/js/codemirror.js +9680 -9680
  148. package/templates/docs/js/designTokens.js +334 -334
  149. package/templates/docs/js/j.min.js +4 -4
  150. package/templates/docs/js/javascript.js +874 -874
  151. package/templates/docs/js/matchbrackets.js +145 -145
  152. package/lib/plugins/composeCommonPlugin.js +0 -30
  153. package/lib/postcss-plugins/variableModifier.js +0 -244
  154. package/result.json +0 -1
  155. package/unittest/index.html +0 -37
@@ -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);