redux-connected-devtools 1.0.3 → 1.0.4

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 (157) hide show
  1. package/dist/components/DevInspector/DevInspector.js +12 -0
  2. package/{src/components/DevInspector/DevInspector.style.tsx → dist/components/DevInspector/DevInspector.style.js} +1 -2
  3. package/dist/components/DevList/DevList.js +24 -0
  4. package/{src/components/DevList/DevList.style.tsx → dist/components/DevList/DevList.style.js} +2 -4
  5. package/dist/components/DevMenu/DevMenu.js +25 -0
  6. package/{src/components/DevMenu/DevMenu.style.tsx → dist/components/DevMenu/DevMenu.style.js} +7 -14
  7. package/{src/components/DevPanel/DevPanel.tsx → dist/components/DevPanel/DevPanel.js} +7 -27
  8. package/{src/components/DevPanel/DevPanel.style.tsx → dist/components/DevPanel/DevPanel.style.js} +3 -6
  9. package/dist/components/DevtoolsApp/DevtoolsApp.js +17 -0
  10. package/{src/components/DevtoolsApp/DevtoolsApp.style.tsx → dist/components/DevtoolsApp/DevtoolsApp.style.js} +1 -2
  11. package/dist/components/Icon/AllIcons.js +18 -0
  12. package/dist/components/Icon/Icon.js +9 -0
  13. package/{src/components/Icon/Icon.style.tsx → dist/components/Icon/Icon.style.js} +1 -2
  14. package/{src/components/JourneyRow/JourneyRow.tsx → dist/components/JourneyRow/JourneyRow.js} +7 -32
  15. package/{src/components/JourneyRow/JourneyRow.style.tsx → dist/components/JourneyRow/JourneyRow.style.js} +5 -10
  16. package/dist/components/JsonViewer/JsonViewer.js +7 -0
  17. package/{src/components/JsonViewer/JsonViewer.style.tsx → dist/components/JsonViewer/JsonViewer.style.js} +1 -2
  18. package/dist/components/Lifecycle/Lifecycle.js +15 -0
  19. package/{src/components/Lifecycle/Lifecycle.style.tsx → dist/components/Lifecycle/Lifecycle.style.js} +1 -2
  20. package/dist/components/RequestDetails/RequestDetails.js +10 -0
  21. package/{src/components/RequestDetails/RequestDetails.style.tsx → dist/components/RequestDetails/RequestDetails.style.js} +4 -8
  22. package/dist/components/RequestJourney/RequestJourney.js +14 -0
  23. package/{src/components/RequestJourney/RequestJourney.style.tsx → dist/components/RequestJourney/RequestJourney.style.js} +1 -2
  24. package/dist/components/RequestRow/RequestRow.js +9 -0
  25. package/{src/components/RequestRow/RequestRow.style.tsx → dist/components/RequestRow/RequestRow.style.js} +5 -10
  26. package/dist/components/Size/Size.js +10 -0
  27. package/{src/components/Size/Size.style.tsx → dist/components/Size/Size.style.js} +1 -2
  28. package/{src/components/Time/Time.tsx → dist/components/Time/Time.js} +3 -17
  29. package/{src/components/Time/Time.style.tsx → dist/components/Time/Time.style.js} +3 -6
  30. package/dist/containers/DevMenuContainer.js +11 -0
  31. package/dist/containers/DevPanelContainer.js +6 -0
  32. package/{src/containers/DevtoolsAppContainer.tsx → dist/containers/DevtoolsAppContainer.js} +3 -21
  33. package/{src/containers/EndpointConfigsContainer.tsx → dist/containers/EndpointConfigsContainer.js} +2 -5
  34. package/{src/containers/EndpointStatusContainer.tsx → dist/containers/EndpointStatusContainer.js} +2 -5
  35. package/{src/containers/GlobalSettingsContainer.tsx → dist/containers/GlobalSettingsContainer.js} +2 -5
  36. package/{src/containers/GlobalStatsContainer.tsx → dist/containers/GlobalStatsContainer.js} +2 -5
  37. package/{src/containers/LifecycleApiErrorContainer.tsx → dist/containers/LifecycleApiErrorContainer.js} +2 -4
  38. package/{src/containers/LifecycleFailedContainer.tsx → dist/containers/LifecycleFailedContainer.js} +2 -4
  39. package/{src/containers/LifecycleGeneralErrorContainer.tsx → dist/containers/LifecycleGeneralErrorContainer.js} +2 -4
  40. package/{src/containers/LifecycleInQueueContainer.tsx → dist/containers/LifecycleInQueueContainer.js} +2 -4
  41. package/{src/containers/LifecyclePendingApiContainer.tsx → dist/containers/LifecyclePendingApiContainer.js} +2 -4
  42. package/{src/containers/LifecyclePostActionContainer.tsx → dist/containers/LifecyclePostActionContainer.js} +2 -4
  43. package/{src/containers/LifecycleReceivedContainer.tsx → dist/containers/LifecycleReceivedContainer.js} +2 -4
  44. package/{src/data/devComponents.tsx → dist/data/devComponents.js} +1 -4
  45. package/{src/data/devRoutes.ts → dist/data/devRoutes.js} +4 -16
  46. package/dist/dts/components/DevInspector/DevInspector.d.ts +7 -0
  47. package/dist/dts/components/DevInspector/DevInspector.style.d.ts +1 -0
  48. package/dist/dts/components/DevList/DevList.d.ts +9 -0
  49. package/dist/dts/components/DevList/DevList.style.d.ts +2 -0
  50. package/dist/dts/components/DevMenu/DevMenu.d.ts +12 -0
  51. package/dist/dts/components/DevMenu/DevMenu.style.d.ts +7 -0
  52. package/dist/dts/components/DevPanel/DevPanel.d.ts +6 -0
  53. package/dist/dts/components/DevPanel/DevPanel.style.d.ts +3 -0
  54. package/dist/dts/components/DevtoolsApp/DevtoolsApp.d.ts +10 -0
  55. package/dist/dts/components/DevtoolsApp/DevtoolsApp.style.d.ts +1 -0
  56. package/dist/dts/components/Icon/AllIcons.d.ts +8 -0
  57. package/dist/dts/components/Icon/Icon.d.ts +10 -0
  58. package/dist/dts/components/Icon/Icon.style.d.ts +3 -0
  59. package/dist/dts/components/JourneyRow/JourneyRow.d.ts +7 -0
  60. package/dist/dts/components/JourneyRow/JourneyRow.style.d.ts +5 -0
  61. package/dist/dts/components/JsonViewer/JsonViewer.d.ts +7 -0
  62. package/dist/dts/components/JsonViewer/JsonViewer.style.d.ts +3 -0
  63. package/dist/dts/components/Lifecycle/Lifecycle.d.ts +7 -0
  64. package/dist/dts/components/Lifecycle/Lifecycle.style.d.ts +1 -0
  65. package/dist/dts/components/RequestDetails/RequestDetails.d.ts +7 -0
  66. package/dist/dts/components/RequestDetails/RequestDetails.style.d.ts +4 -0
  67. package/dist/dts/components/RequestJourney/RequestJourney.d.ts +7 -0
  68. package/dist/dts/components/RequestJourney/RequestJourney.style.d.ts +1 -0
  69. package/dist/dts/components/RequestRow/RequestRow.d.ts +11 -0
  70. package/dist/dts/components/RequestRow/RequestRow.style.d.ts +6 -0
  71. package/dist/dts/components/Size/Size.d.ts +6 -0
  72. package/dist/dts/components/Size/Size.style.d.ts +1 -0
  73. package/dist/dts/components/Time/Time.d.ts +6 -0
  74. package/dist/dts/components/Time/Time.style.d.ts +3 -0
  75. package/dist/dts/containers/DevMenuContainer.d.ts +8 -0
  76. package/dist/dts/containers/DevPanelContainer.d.ts +6 -0
  77. package/dist/dts/containers/DevtoolsAppContainer.d.ts +7 -0
  78. package/dist/dts/containers/EndpointConfigsContainer.d.ts +3 -0
  79. package/dist/dts/containers/EndpointStatusContainer.d.ts +3 -0
  80. package/dist/dts/containers/GlobalSettingsContainer.d.ts +3 -0
  81. package/dist/dts/containers/GlobalStatsContainer.d.ts +3 -0
  82. package/dist/dts/containers/LifecycleApiErrorContainer.d.ts +3 -0
  83. package/dist/dts/containers/LifecycleFailedContainer.d.ts +3 -0
  84. package/dist/dts/containers/LifecycleGeneralErrorContainer.d.ts +3 -0
  85. package/dist/dts/containers/LifecycleInQueueContainer.d.ts +3 -0
  86. package/dist/dts/containers/LifecyclePendingApiContainer.d.ts +3 -0
  87. package/dist/dts/containers/LifecyclePostActionContainer.d.ts +3 -0
  88. package/dist/dts/containers/LifecycleReceivedContainer.d.ts +3 -0
  89. package/dist/dts/data/devComponents.d.ts +4 -0
  90. package/dist/dts/data/devRoutes.d.ts +8 -0
  91. package/dist/dts/hooks/useStoreSize.d.ts +7 -0
  92. package/{src/index.ts → dist/dts/index.d.ts} +0 -0
  93. package/dist/dts/store/selectors.d.ts +2235 -0
  94. package/dist/dts/types.d.ts +0 -0
  95. package/dist/dts/utils/date.d.ts +4 -0
  96. package/dist/dts/utils/download.d.ts +1 -0
  97. package/{src/hooks/useStoreSize.ts → dist/hooks/useStoreSize.js} +2 -13
  98. package/dist/index.d.ts +1 -0
  99. package/dist/index.js +1 -0
  100. package/dist/redux-connected-devtools.es.js +992 -0
  101. package/dist/redux-connected-devtools.es.js.map +1 -0
  102. package/dist/redux-connected-devtools.umd.js +247 -0
  103. package/dist/redux-connected-devtools.umd.js.map +1 -0
  104. package/dist/store/selectors.js +143 -0
  105. package/dist/types.js +1 -0
  106. package/{src/utils/date.ts → dist/utils/date.js} +0 -3
  107. package/{src/utils/download.ts → dist/utils/download.js} +3 -3
  108. package/package.json +5 -3
  109. package/.env +0 -2
  110. package/.prettierrc.js +0 -10
  111. package/index.html +0 -58
  112. package/jest.config.js +0 -8
  113. package/src/__tests__/sum.ts +0 -9
  114. package/src/components/DevInspector/DevInspector.scss +0 -2
  115. package/src/components/DevInspector/DevInspector.tsx +0 -34
  116. package/src/components/DevList/DevList.scss +0 -2
  117. package/src/components/DevList/DevList.tsx +0 -65
  118. package/src/components/DevMenu/DevMenu.scss +0 -2
  119. package/src/components/DevMenu/DevMenu.tsx +0 -77
  120. package/src/components/DevPanel/DevPanel.scss +0 -2
  121. package/src/components/DevtoolsApp/DevtoolsApp.scss +0 -2
  122. package/src/components/DevtoolsApp/DevtoolsApp.tsx +0 -45
  123. package/src/components/Icon/AllIcons.tsx +0 -66
  124. package/src/components/Icon/Icon.scss +0 -2
  125. package/src/components/Icon/Icon.tsx +0 -28
  126. package/src/components/JourneyRow/JourneyRow.scss +0 -2
  127. package/src/components/JsonViewer/JsonViewer.scss +0 -2
  128. package/src/components/JsonViewer/JsonViewer.tsx +0 -23
  129. package/src/components/Lifecycle/Lifecycle.scss +0 -2
  130. package/src/components/Lifecycle/Lifecycle.tsx +0 -36
  131. package/src/components/LogsViewer/LogsViewer.scss +0 -2
  132. package/src/components/LogsViewer/LogsViewer.style.tsx +0 -5
  133. package/src/components/LogsViewer/LogsViewer.tsx +0 -14
  134. package/src/components/RequestDetails/RequestDetails.scss +0 -2
  135. package/src/components/RequestDetails/RequestDetails.tsx +0 -60
  136. package/src/components/RequestJourney/RequestJourney.scss +0 -2
  137. package/src/components/RequestJourney/RequestJourney.tsx +0 -33
  138. package/src/components/RequestRow/RequestRow.scss +0 -2
  139. package/src/components/RequestRow/RequestRow.tsx +0 -37
  140. package/src/components/Size/Size.scss +0 -2
  141. package/src/components/Size/Size.tsx +0 -21
  142. package/src/components/StateViewer/StateViewer.scss +0 -2
  143. package/src/components/StateViewer/StateViewer.style.tsx +0 -5
  144. package/src/components/StateViewer/StateViewer.tsx +0 -17
  145. package/src/components/Time/Time.scss +0 -2
  146. package/src/containers/DevMenuContainer.tsx +0 -28
  147. package/src/containers/DevPanelContainer.tsx +0 -12
  148. package/src/containers/JsonViewerContainer.tsx +0 -8
  149. package/src/containers/LifecycleContainer.tsx +0 -12
  150. package/src/containers/LogsViewerContainer.tsx +0 -8
  151. package/src/containers/StateViewerContainer.tsx +0 -8
  152. package/src/data/devRouter.ts +0 -107
  153. package/src/store/initialState.ts +0 -42
  154. package/src/store/selectors.ts +0 -220
  155. package/src/types.ts +0 -1
  156. package/tsconfig.json +0 -18
  157. package/vite.config.ts +0 -27
@@ -0,0 +1,143 @@
1
+ import { createSelector } from 'reselect';
2
+ import { connectedSelectors, LifecycleStatus } from 'redux-connected';
3
+ export const $requests = createSelector(connectedSelectors.$requests, (requests) => {
4
+ return requests
5
+ .map((request) => {
6
+ const { items } = request;
7
+ const lastPoint = items[items.length - 1] ?? {};
8
+ const journeyWithDelta = items.map((point, index) => {
9
+ const nextPoint = items[index + 1] ?? point;
10
+ const delta = nextPoint.timestamp - point.timestamp;
11
+ return {
12
+ ...point,
13
+ delta,
14
+ };
15
+ });
16
+ return {
17
+ ...request,
18
+ items: journeyWithDelta,
19
+ lastPointTimestamp: lastPoint.timestamp,
20
+ lastPointStatus: lastPoint.status,
21
+ };
22
+ })
23
+ .sort((a, b) => {
24
+ if (a.lastPointTimestamp === b.lastPointTimestamp) {
25
+ return 0;
26
+ }
27
+ return a.lastPointTimestamp > b.lastPointTimestamp ? -1 : 1;
28
+ });
29
+ });
30
+ // 1
31
+ export const $requestsReceived = createSelector($requests, (requests) => {
32
+ return requests.filter((request) => {
33
+ const { items } = request;
34
+ const lastPoint = items[items.length - 1];
35
+ return lastPoint && lastPoint.status === LifecycleStatus.RECEIVED;
36
+ });
37
+ });
38
+ export const $requestsReceivedPast = createSelector($requests, (requests) => {
39
+ return requests.filter((request) => {
40
+ const { items } = request;
41
+ return items.find((point) => point.status === LifecycleStatus.RECEIVED);
42
+ });
43
+ });
44
+ // 2
45
+ export const $requestsInQueue = createSelector($requests, (requests) => {
46
+ return requests.filter((request) => {
47
+ const { items } = request;
48
+ const lastPoint = items[items.length - 1];
49
+ return lastPoint && lastPoint.status === LifecycleStatus.IN_QUEUE;
50
+ });
51
+ });
52
+ export const $requestsInQueuePast = createSelector($requests, (requests) => {
53
+ return requests.filter((request) => {
54
+ const { items } = request;
55
+ return items.find((point) => point.status === LifecycleStatus.IN_QUEUE);
56
+ });
57
+ });
58
+ // 3
59
+ export const $requestsPendingApi = createSelector($requests, (requests) => {
60
+ return requests.filter((request) => {
61
+ const { items } = request;
62
+ const lastPoint = items[items.length - 1];
63
+ return (lastPoint &&
64
+ lastPoint.status === LifecycleStatus.PENDING_API_RESPONSE);
65
+ });
66
+ });
67
+ export const $requestsPendingApiPast = createSelector($requests, (requests) => {
68
+ return requests.filter((request) => {
69
+ const { items } = request;
70
+ return items.find((point) => point.status === LifecycleStatus.PENDING_API_RESPONSE);
71
+ });
72
+ });
73
+ // 4
74
+ export const $requestsPostAction = createSelector($requests, (requests) => {
75
+ return requests.filter((request) => {
76
+ const { items } = request;
77
+ const lastPoint = items[items.length - 1];
78
+ return lastPoint && lastPoint.status === LifecycleStatus.POST_ACTION;
79
+ });
80
+ });
81
+ export const $requestsPostActionPast = createSelector($requests, (requests) => {
82
+ return requests.filter((request) => {
83
+ const { items } = request;
84
+ return items.find((point) => point.status === LifecycleStatus.POST_ACTION);
85
+ });
86
+ });
87
+ // e1
88
+ export const $requestsGeneralError = createSelector($requests, (requests) => {
89
+ return requests.filter((request) => {
90
+ const { items } = request;
91
+ const lastPoint = items[items.length - 1];
92
+ return lastPoint && lastPoint.status === LifecycleStatus.GENERAL_ERROR;
93
+ });
94
+ });
95
+ export const $requestsGeneralErrorPast = createSelector($requests, (requests) => {
96
+ return requests.filter((request) => {
97
+ const { items } = request;
98
+ return items.find((point) => point.status === LifecycleStatus.GENERAL_ERROR);
99
+ });
100
+ });
101
+ // e2
102
+ export const $requestsApiError = createSelector($requests, (requests) => {
103
+ return requests.filter((request) => {
104
+ const { items } = request;
105
+ const lastPoint = items[items.length - 1];
106
+ return lastPoint && lastPoint.status === LifecycleStatus.API_ERROR;
107
+ });
108
+ });
109
+ // e3
110
+ export const $requestsFailed = createSelector($requests, (requests) => {
111
+ return requests.filter((request) => {
112
+ const { items } = request;
113
+ return items.find((point) => point.status === LifecycleStatus.FAILED);
114
+ });
115
+ });
116
+ export const $requestsApiErrorPast = createSelector($requests, (requests) => {
117
+ return requests.filter((request) => {
118
+ const { items } = request;
119
+ return items.find((point) => point.status === LifecycleStatus.API_ERROR);
120
+ });
121
+ });
122
+ export const $menuBadges = createSelector($requestsReceived, $requestsInQueue, $requestsGeneralError, $requestsPendingApi, $requestsApiError, $requestsFailed, $requestsPostAction, (requestsReceived, requestsInQueue, requestsGeneralError, requestsPendingApi, requestsApiError, requestsFailed, requestsPostAction) => {
123
+ return {
124
+ lifecycleReceived: requestsReceived.length,
125
+ lifecycleInQueue: requestsInQueue.length,
126
+ lifecycleGeneralError: requestsGeneralError.length,
127
+ lifecyclePendingApi: requestsPendingApi.length,
128
+ lifecycleApiError: requestsApiError.length,
129
+ lifecycleFailed: requestsFailed.length,
130
+ lifecyclePostAction: requestsPostAction.length,
131
+ };
132
+ });
133
+ export const $menuBadgesTotal = createSelector($requestsReceivedPast, $requestsInQueuePast, $requestsGeneralErrorPast, $requestsPendingApiPast, $requestsApiErrorPast, $requestsFailed, $requestsPostActionPast, (requestsReceived, requestsInQueue, requestsGeneralError, requestsPendingApi, requestsApiError, requestsFailed, requestsPostAction) => {
134
+ return {
135
+ lifecycleReceived: requestsReceived.length,
136
+ lifecycleInQueue: requestsInQueue.length,
137
+ lifecycleGeneralError: requestsGeneralError.length,
138
+ lifecyclePendingApi: requestsPendingApi.length,
139
+ lifecycleApiError: requestsApiError.length,
140
+ lifecycleFailed: requestsFailed.length,
141
+ lifecyclePostAction: requestsPostAction.length,
142
+ };
143
+ });
package/dist/types.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1,11 +1,8 @@
1
1
  export const timestamp = () => new Date().getTime();
2
-
3
2
  export let startOfTime = timestamp();
4
-
5
3
  export const resetStartOfTime = () => {
6
4
  startOfTime = timestamp();
7
5
  };
8
-
9
6
  export const getMinutes = () => {
10
7
  return new Date().getMinutes();
11
8
  };
@@ -1,12 +1,12 @@
1
- export const download = (filename: string, json: Json) => {
1
+ export const download = (filename, json) => {
2
2
  const data = JSON.stringify(json, null, 4);
3
-
4
3
  const blob = new Blob([data], { type: 'text/csv' });
5
4
  // @ts-ignore
6
5
  if (window.navigator.msSaveOrOpenBlob) {
7
6
  // @ts-ignore
8
7
  window.navigator.msSaveBlob(blob, filename);
9
- } else {
8
+ }
9
+ else {
10
10
  const elem = window.document.createElement('a');
11
11
  elem.href = window.URL.createObjectURL(blob);
12
12
  elem.download = filename;
package/package.json CHANGED
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "name": "redux-connected-devtools",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "redux-connected-devtools",
5
5
  "scripts": {
6
6
  "dev": "vite",
7
7
  "watch": "webpack --config webpack/webpack.dev.js --watch",
8
- "build": "vite build & tsc",
9
- "clean": "rimraf dist",
8
+ "build": "tsc & vite build",
10
9
  "test": "npx jest",
11
10
  "style": "prettier --write \"src/**/*.{ts,tsx}\""
12
11
  },
@@ -16,6 +15,9 @@
16
15
  "type": "git",
17
16
  "url": "https://github.com/dht/redux-connected-devtools.git"
18
17
  },
18
+ "files": [
19
+ "dist"
20
+ ],
19
21
  "dependencies": {
20
22
  "@redux-devtools/extension": "^3.2.2",
21
23
  "bytes": "^3.1.2",
package/.env DELETED
@@ -1,2 +0,0 @@
1
- VITE_SERVER_DOMAIN=http://localhost
2
- VITE_BASE_PORT_GLI=3100
package/.prettierrc.js DELETED
@@ -1,10 +0,0 @@
1
- module.exports = {
2
- trailingComma: 'es5',
3
- tabWidth: 4,
4
- semi: true,
5
- singleQuote: true,
6
- jsxSingleQuote: true,
7
- endOfLine: 'auto',
8
- // printWidth: 120,
9
- useTabs: false,
10
- };
package/index.html DELETED
@@ -1,58 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <link rel="icon" type="image/svg+xml" href="/src/favicon.svg" />
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <link
8
- rel="stylesheet"
9
- href="https://fonts.googleapis.com/icon?family=Material+Icons"
10
- />
11
- <link
12
- rel="stylesheet"
13
- href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap"
14
- />
15
- <link rel="preconnect" href="https://fonts.googleapis.com" />
16
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
17
- <link
18
- href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&family=Roboto:wght@100;400;500;700&display=swap"
19
- rel="stylesheet"
20
- />
21
- <link rel="preconnect" href="https://fonts.googleapis.com" />
22
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
23
- <link
24
- href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap"
25
- rel="stylesheet"
26
- />
27
-
28
- <title>redux-connected-chrome-extension</title>
29
- <style>
30
- body {
31
- padding: 0;
32
- margin: 0;
33
- min-height: 100vh;
34
- font-family: 'Inter', sans-serif;
35
- }
36
-
37
- body,
38
- #root {
39
- display: flex;
40
- flex: 1;
41
- }
42
-
43
- input,
44
- h1,
45
- h2,
46
- h3,
47
- select,
48
- textarea {
49
- font-family: 'Inter', sans-serif;
50
- }
51
- </style>
52
- </head>
53
- <body>
54
- <div id="root"></div>
55
- <div id="modal-root"></div>
56
- <script type="module" src="/src/panel.tsx"></script>
57
- </body>
58
- </html>
package/jest.config.js DELETED
@@ -1,8 +0,0 @@
1
- module.exports = {
2
- "roots": [
3
- "src"
4
- ],
5
- "transform": {
6
- "^.+\\.ts$": "ts-jest"
7
- },
8
- };
@@ -1,9 +0,0 @@
1
- import { sum } from "../sum";
2
-
3
- test("1 + 1 = 2", () => {
4
- expect(sum(1, 1)).toBe(2);
5
- });
6
-
7
- test("1 + 2 != 2", () => {
8
- expect(sum(1, 2)).not.toBe(2);
9
- });
@@ -1,2 +0,0 @@
1
- .DevInspector-container {
2
- }
@@ -1,34 +0,0 @@
1
- import React from 'react';
2
- import { Container } from './DevInspector.style';
3
- import { ApiRequest } from 'redux-connected';
4
- import RequestJourney from '../RequestJourney/RequestJourney';
5
- import RequestDetails from '../RequestDetails/RequestDetails';
6
-
7
- export type DevInspectorProps = {
8
- item?: ApiRequest;
9
- };
10
-
11
- export function DevInspector(props: DevInspectorProps) {
12
- const { item } = props;
13
-
14
- if (!item) {
15
- return (
16
- <Container
17
- className='DevInspector-container'
18
- data-testid='DevInspector-container'
19
- ></Container>
20
- );
21
- }
22
-
23
- return (
24
- <Container
25
- className='DevInspector-container'
26
- data-testid='DevInspector-container'
27
- >
28
- <RequestDetails item={item} />
29
- <RequestJourney item={item} />
30
- </Container>
31
- );
32
- }
33
-
34
- export default DevInspector;
@@ -1,2 +0,0 @@
1
- .DevList-container {
2
- }
@@ -1,65 +0,0 @@
1
- import React from 'react';
2
- import { Container, Empty } from './DevList.style';
3
- import { FixedSizeList as List } from 'react-window';
4
- import classnames from 'classnames';
5
-
6
- export type DevListProps = {
7
- items: Json[];
8
- row: React.FC<any>;
9
- selectedRow: any;
10
- onClick: (item: any) => void;
11
- };
12
-
13
- export function DevList(props: DevListProps) {
14
- const { row: Cmp, items, selectedRow } = props;
15
-
16
- const Item = (rowInfo: any) => {
17
- const { index, style } = rowInfo;
18
-
19
- const item = items[index];
20
- const className = classnames({ selected: item.id === selectedRow?.id });
21
-
22
- return (
23
- <Cmp
24
- onClick={props.onClick}
25
- className={className}
26
- index={index}
27
- style={style}
28
- item={item}
29
- />
30
- );
31
- };
32
-
33
- function renderEmpty() {
34
- return <Empty>Empty list</Empty>;
35
- }
36
-
37
- function renderList() {
38
- if (items.length === 0) {
39
- return renderEmpty();
40
- }
41
-
42
- return (
43
- <List
44
- height={850}
45
- itemCount={items.length}
46
- itemSize={68}
47
- width={350}
48
- className='list'
49
- >
50
- {Item}
51
- </List>
52
- );
53
- }
54
-
55
- return (
56
- <Container
57
- className='DevList-container'
58
- data-testid='DevList-container'
59
- >
60
- {renderList()}
61
- </Container>
62
- );
63
- }
64
-
65
- export default DevList;
@@ -1,2 +0,0 @@
1
- .DevMenu-container {
2
- }
@@ -1,77 +0,0 @@
1
- import React from 'react';
2
- import { IDevRoute } from '../../data/devRoutes';
3
- import {
4
- Container,
5
- MenuGroup,
6
- MenuGroupTitle,
7
- MenuItem,
8
- Title,
9
- Badge,
10
- BadgeTotal,
11
- } from './DevMenu.style';
12
- import classnames from 'classnames';
13
-
14
- export type DevMenuProps = {
15
- groups: string[];
16
- items: IDevRoute[];
17
- onClick: (route: IDevRoute) => void;
18
- selectedId: string;
19
- badges: Record<string, number>;
20
- badgesTotal: Record<string, number>;
21
- };
22
-
23
- export function DevMenu(props: DevMenuProps) {
24
- const { groups, items, selectedId, badges, badgesTotal } = props;
25
-
26
- function renderItem(item: IDevRoute) {
27
- const { title, id } = item;
28
- const selected = id === selectedId;
29
-
30
- const badge = badges[id];
31
- const badgeTotal = badgesTotal[id];
32
-
33
- return (
34
- <MenuItem
35
- key={item.id}
36
- className={classnames({ selected })}
37
- onClick={() => props.onClick(item)}
38
- >
39
- <Title>{title}</Title>
40
- {badgeTotal > 0 && badgeTotal !== badge && (
41
- <BadgeTotal>{badgeTotal}</BadgeTotal>
42
- )}
43
- {badge > 0 && <Badge>{badge}</Badge>}
44
- </MenuItem>
45
- );
46
- }
47
-
48
- function renderItems(groupItems: IDevRoute[]) {
49
- return groupItems.map((item: IDevRoute) => renderItem(item));
50
- }
51
-
52
- function renderGroup(group: string) {
53
- const groupItems = items.filter((item) => item.group === group);
54
-
55
- return (
56
- <MenuGroup key={group}>
57
- <MenuGroupTitle>{group}</MenuGroupTitle>
58
- {renderItems(groupItems)}
59
- </MenuGroup>
60
- );
61
- }
62
-
63
- function renderGroups() {
64
- return groups.map((group: string) => renderGroup(group));
65
- }
66
-
67
- return (
68
- <Container
69
- className='DevMenu-container'
70
- data-testid='DevMenu-container'
71
- >
72
- {renderGroups()}
73
- </Container>
74
- );
75
- }
76
-
77
- export default DevMenu;
@@ -1,2 +0,0 @@
1
- .DevPanel-container {
2
- }
@@ -1,2 +0,0 @@
1
- .DevtoolsApp-container {
2
- }
@@ -1,45 +0,0 @@
1
- import Icon from '../Icon/Icon';
2
- import React, { useRef } from 'react';
3
- import { Container } from './DevtoolsApp.style';
4
- import { DevPanelContainer } from '../../containers/DevPanelContainer';
5
- import { Provider } from 'react-redux';
6
- import Size from '../Size/Size';
7
- import classnames from 'classnames';
8
-
9
- export type DevtoolsAppProps = {
10
- connectedStore: any;
11
- clearRequests: () => void;
12
- downloadState: () => void;
13
- storeSizeInBytes?: number;
14
- isDarkMode?: boolean;
15
- };
16
-
17
- export function DevtoolsApp(props: DevtoolsAppProps) {
18
- const { connectedStore, storeSizeInBytes, isDarkMode } = props;
19
- const ref = useRef(null);
20
-
21
- const className = classnames('DevtoolsApp-container', {
22
- darkMode: isDarkMode,
23
- });
24
-
25
- return (
26
- <Container
27
- ref={ref}
28
- className={className}
29
- data-testid='DevtoolsApp-container'
30
- >
31
- <Provider store={connectedStore}>
32
- <DevPanelContainer>
33
- <Size size={storeSizeInBytes} />
34
- <Icon
35
- name='clearAll'
36
- onClick={() => props.clearRequests()}
37
- />
38
- <Icon name='download' onClick={props.downloadState} />
39
- </DevPanelContainer>
40
- </Provider>
41
- </Container>
42
- );
43
- }
44
-
45
- export default DevtoolsApp;
@@ -1,66 +0,0 @@
1
- import React from 'react';
2
-
3
- export type IconName = 'download' | 'close' | 'clearAll';
4
-
5
- type IconProps = {
6
- size?: number;
7
- };
8
-
9
- const Download = (props: IconProps) => {
10
- const { size = 24 } = props;
11
-
12
- return (
13
- <svg
14
- xmlns='http://www.w3.org/2000/svg'
15
- viewBox='0 0 24 24'
16
- width={`${size}px`}
17
- height={`${size}px`}
18
- fill='currentColor'
19
- >
20
- <path d='M0 0h24v24H0z' fill='none' />
21
- <path d='M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z' />
22
- </svg>
23
- );
24
- };
25
-
26
- const Close = (props: IconProps) => {
27
- const { size = 24 } = props;
28
-
29
- return (
30
- <svg
31
- xmlns='http://www.w3.org/2000/svg'
32
- viewBox='0 0 24 24'
33
- width={`${size}px`}
34
- height={`${size}px`}
35
- fill='currentColor'
36
- >
37
- <path d='M0 0h24v24H0z' fill='none' />
38
- <path d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z' />
39
- </svg>
40
- );
41
- };
42
-
43
- const ClearAll = (props: IconProps) => {
44
- const { size = 24 } = props;
45
-
46
- return (
47
- <svg
48
- xmlns='http://www.w3.org/2000/svg'
49
- viewBox='0 0 24 24'
50
- width={`${size}px`}
51
- height={`${size}px`}
52
- fill='currentColor'
53
- >
54
- <path d='M0 0h24v24H0z' fill='none' />
55
- <path d='M5 13h14v-2H5v2zm-2 4h14v-2H3v2zM7 7v2h14V7H7z' />
56
- </svg>
57
- );
58
- };
59
-
60
- type Icons = Record<IconName, React.FC<IconProps>>;
61
-
62
- export const allIcons: Icons = {
63
- close: Close,
64
- clearAll: ClearAll,
65
- download: Download,
66
- };
@@ -1,2 +0,0 @@
1
- .Icon-container {
2
- }
@@ -1,28 +0,0 @@
1
- import React from 'react';
2
- import { allIcons, IconName } from './AllIcons';
3
- import { Container } from './Icon.style';
4
-
5
- export type IconProps = {
6
- name: IconName;
7
- color?: string;
8
- size?: number;
9
- onClick?: () => void;
10
- };
11
-
12
- export function Icon(props: IconProps) {
13
- const { name, size = 20, color } = props;
14
- const Cmp = allIcons[name];
15
-
16
- return (
17
- <Container
18
- className='Icon-container'
19
- data-testid='Icon-container'
20
- color={color}
21
- onClick={props.onClick}
22
- >
23
- <Cmp size={size} />
24
- </Container>
25
- );
26
- }
27
-
28
- export default Icon;
@@ -1,2 +0,0 @@
1
- .JourneyRow-container {
2
- }
@@ -1,2 +0,0 @@
1
- .JsonViewer-container {
2
- }
@@ -1,23 +0,0 @@
1
- import React from 'react';
2
- import { Container } from './JsonViewer.style';
3
-
4
- export type JsonViewerProps = {
5
- json: Json | undefined;
6
- width?: number;
7
- };
8
-
9
- export function JsonViewer(props: JsonViewerProps) {
10
- const { json, width } = props;
11
-
12
- return (
13
- <Container
14
- className='JsonViewer-container'
15
- data-testid='JsonViewer-container'
16
- width={width}
17
- >
18
- <pre>{JSON.stringify(json, null, 4)}</pre>
19
- </Container>
20
- );
21
- }
22
-
23
- export default JsonViewer;
@@ -1,2 +0,0 @@
1
- .Lifecycle-container {
2
- }