redux-connected-devtools 0.0.15 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.depcheck +20 -0
- package/.env +2 -0
- package/.prettierrc.js +10 -0
- package/.vscode/settings.json +12 -0
- package/.vscode/tasks.json +33 -0
- package/LICENSE +21 -0
- package/README.md +5 -0
- package/index.html +58 -0
- package/jest.config.js +8 -0
- package/package.json +58 -63
- package/src/__tests__/sum.ts +9 -0
- package/src/components/DevInspector/DevInspector.scss +2 -0
- package/src/components/DevInspector/DevInspector.style.tsx +7 -0
- package/src/components/DevInspector/DevInspector.tsx +34 -0
- package/src/components/DevList/DevList.scss +2 -0
- package/src/components/DevList/DevList.style.tsx +34 -0
- package/src/components/DevList/DevList.tsx +65 -0
- package/src/components/DevMenu/DevMenu.scss +2 -0
- package/src/components/DevMenu/DevMenu.style.tsx +53 -0
- package/src/components/DevMenu/DevMenu.tsx +77 -0
- package/src/components/DevPanel/DevPanel.scss +2 -0
- package/src/components/DevPanel/DevPanel.style.tsx +25 -0
- package/src/components/DevPanel/DevPanel.tsx +58 -0
- package/src/components/DevtoolsApp/DevtoolsApp.scss +2 -0
- package/src/components/DevtoolsApp/DevtoolsApp.style.tsx +12 -0
- package/src/components/DevtoolsApp/DevtoolsApp.tsx +45 -0
- package/src/components/Icon/AllIcons.tsx +66 -0
- package/src/components/Icon/Icon.scss +2 -0
- package/src/components/Icon/Icon.style.tsx +11 -0
- package/src/components/Icon/Icon.tsx +28 -0
- package/src/components/JourneyRow/JourneyRow.scss +2 -0
- package/src/components/JourneyRow/JourneyRow.style.tsx +46 -0
- package/src/components/JourneyRow/JourneyRow.tsx +60 -0
- package/src/components/JsonViewer/JsonViewer.scss +2 -0
- package/src/components/JsonViewer/JsonViewer.style.tsx +31 -0
- package/src/components/JsonViewer/JsonViewer.tsx +23 -0
- package/src/components/Lifecycle/Lifecycle.scss +2 -0
- package/src/components/Lifecycle/Lifecycle.style.tsx +6 -0
- package/src/components/Lifecycle/Lifecycle.tsx +36 -0
- package/src/components/LogsViewer/LogsViewer.scss +2 -0
- package/src/components/LogsViewer/LogsViewer.style.tsx +5 -0
- package/src/components/LogsViewer/LogsViewer.tsx +14 -0
- package/src/components/RequestDetails/RequestDetails.scss +2 -0
- package/src/components/RequestDetails/RequestDetails.style.tsx +20 -0
- package/src/components/RequestDetails/RequestDetails.tsx +60 -0
- package/src/components/RequestJourney/RequestJourney.scss +2 -0
- package/src/components/RequestJourney/RequestJourney.style.tsx +27 -0
- package/src/components/RequestJourney/RequestJourney.tsx +33 -0
- package/src/components/RequestRow/RequestRow.scss +2 -0
- package/src/components/RequestRow/RequestRow.style.tsx +32 -0
- package/src/components/RequestRow/RequestRow.tsx +37 -0
- package/src/components/Size/Size.scss +2 -0
- package/src/components/Size/Size.style.tsx +6 -0
- package/src/components/Size/Size.tsx +21 -0
- package/src/components/StateViewer/StateViewer.scss +2 -0
- package/src/components/StateViewer/StateViewer.style.tsx +5 -0
- package/src/components/StateViewer/StateViewer.tsx +17 -0
- package/src/components/Time/Time.scss +2 -0
- package/src/components/Time/Time.style.tsx +17 -0
- package/src/components/Time/Time.tsx +25 -0
- package/src/containers/DevMenuContainer.tsx +28 -0
- package/src/containers/DevPanelContainer.tsx +12 -0
- package/src/containers/DevtoolsAppContainer.tsx +42 -0
- package/src/containers/EndpointConfigsContainer.tsx +12 -0
- package/src/containers/EndpointStatusContainer.tsx +12 -0
- package/src/containers/GlobalSettingsContainer.tsx +12 -0
- package/src/containers/GlobalStatsContainer.tsx +12 -0
- package/src/containers/JsonViewerContainer.tsx +8 -0
- package/src/containers/LifecycleApiErrorContainer.tsx +11 -0
- package/src/containers/LifecycleContainer.tsx +12 -0
- package/src/containers/LifecycleFailedContainer.tsx +11 -0
- package/src/containers/LifecycleGeneralErrorContainer.tsx +11 -0
- package/src/containers/LifecycleInQueueContainer.tsx +11 -0
- package/src/containers/LifecyclePendingApiContainer.tsx +11 -0
- package/src/containers/LifecyclePostActionContainer.tsx +11 -0
- package/src/containers/LifecycleReceivedContainer.tsx +11 -0
- package/src/containers/LogsViewerContainer.tsx +8 -0
- package/src/containers/StateViewerContainer.tsx +8 -0
- package/src/data/devComponents.tsx +27 -0
- package/src/data/devRouter.ts +107 -0
- package/src/data/devRoutes.ts +90 -0
- package/src/hooks/useStoreSize.ts +27 -0
- package/src/index.ts +1 -0
- package/src/store/initialState.ts +42 -0
- package/src/store/selectors.ts +220 -0
- package/src/types.ts +1 -0
- package/src/utils/date.ts +11 -0
- package/src/utils/download.ts +17 -0
- package/tsconfig.json +18 -0
- package/vite.config.ts +27 -0
- package/esm/components/Config/Config.d.ts +0 -6
- package/esm/components/Config/Config.js +0 -15
- package/esm/components/DevTools/DevTools.d.ts +0 -4
- package/esm/components/DevTools/DevTools.js +0 -19
- package/esm/components/DevToolsLocal/DevToolsLocal.d.ts +0 -4
- package/esm/components/DevToolsLocal/DevToolsLocal.js +0 -12
- package/esm/components/Dispatcher/Dispatcher.d.ts +0 -8
- package/esm/components/Dispatcher/Dispatcher.js +0 -61
- package/esm/components/GlobalSettings/GlobalSettings.d.ts +0 -6
- package/esm/components/GlobalSettings/GlobalSettings.js +0 -16
- package/esm/components/Group/Group.d.ts +0 -9
- package/esm/components/Group/Group.js +0 -14
- package/esm/components/Json/Json.d.ts +0 -7
- package/esm/components/Json/Json.js +0 -9
- package/esm/components/Logs/Logs.d.ts +0 -6
- package/esm/components/Logs/Logs.js +0 -49
- package/esm/components/Monitor/Monitor.d.ts +0 -6
- package/esm/components/Monitor/Monitor.js +0 -54
- package/esm/components/OverlayManager/OverlayManager.d.ts +0 -6
- package/esm/components/OverlayManager/OverlayManager.js +0 -17
- package/esm/components/Panel/Panel.d.ts +0 -14
- package/esm/components/Panel/Panel.js +0 -46
- package/esm/components/Preview/Preview.d.ts +0 -18
- package/esm/components/Preview/Preview.js +0 -58
- package/esm/components/Redux/Redux.d.ts +0 -6
- package/esm/components/Redux/Redux.js +0 -72
- package/esm/components/ReduxSettings/ReduxSettings.d.ts +0 -9
- package/esm/components/ReduxSettings/ReduxSettings.js +0 -60
- package/esm/components/Requests/Requests.d.ts +0 -6
- package/esm/components/Requests/Requests.js +0 -61
- package/esm/components/Status/Status.d.ts +0 -6
- package/esm/components/Status/Status.js +0 -16
- package/esm/components/TaskManager/TaskManager.d.ts +0 -9
- package/esm/components/TaskManager/TaskManager.js +0 -22
- package/esm/components/Timeline/Timeline.d.ts +0 -6
- package/esm/components/Timeline/Timeline.js +0 -13
- package/esm/components/TimelineEvent/TimelineEvent.d.ts +0 -7
- package/esm/components/TimelineEvent/TimelineEvent.js +0 -13
- package/esm/components/TimelineHeader/TimelineHeader.d.ts +0 -4
- package/esm/components/TimelineHeader/TimelineHeader.js +0 -5
- package/esm/components/TimelineRow/TimelineRow.d.ts +0 -7
- package/esm/components/TimelineRow/TimelineRow.js +0 -13
- package/esm/components/TimelineRowHeader/TimelineRowHeader.d.ts +0 -7
- package/esm/components/TimelineRowHeader/TimelineRowHeader.js +0 -10
- package/esm/components/Toggle/Toggle.d.ts +0 -8
- package/esm/components/Toggle/Toggle.js +0 -8
- package/esm/components/VirtualList/VirtualList.d.ts +0 -19
- package/esm/components/VirtualList/VirtualList.js +0 -30
- package/esm/components/Visual/Visual.d.ts +0 -6
- package/esm/components/Visual/Visual.js +0 -38
- package/esm/components/prefix.d.ts +0 -2
- package/esm/components/prefix.js +0 -2
- package/esm/data/boxSizes.d.ts +0 -2
- package/esm/data/boxSizes.js +0 -10
- package/esm/data/dispatcherActions.d.ts +0 -5
- package/esm/data/dispatcherActions.js +0 -35
- package/esm/data/layoutDefault.d.ts +0 -2
- package/esm/data/layoutDefault.js +0 -46
- package/esm/data/panels.d.ts +0 -2
- package/esm/data/panels.js +0 -14
- package/esm/data/panelsArrangements.d.ts +0 -19
- package/esm/data/panelsArrangements.js +0 -19
- package/esm/data/panelsLocal.d.ts +0 -2
- package/esm/data/panelsLocal.js +0 -7
- package/esm/data/reduxFilterOptions.d.ts +0 -20
- package/esm/data/reduxFilterOptions.js +0 -223
- package/esm/data/widgets.d.ts +0 -2
- package/esm/data/widgets.js +0 -154
- package/esm/data/widgetsLocal.d.ts +0 -2
- package/esm/data/widgetsLocal.js +0 -19
- package/esm/hooks/index.d.ts +0 -7
- package/esm/hooks/index.js +0 -7
- package/esm/hooks/misc/hookState.d.ts +0 -8
- package/esm/hooks/misc/hookState.js +0 -6
- package/esm/hooks/misc/util.d.ts +0 -5
- package/esm/hooks/misc/util.js +0 -21
- package/esm/hooks/useBoolean.d.ts +0 -3
- package/esm/hooks/useBoolean.js +0 -3
- package/esm/hooks/useClickAway.d.ts +0 -3
- package/esm/hooks/useClickAway.js +0 -27
- package/esm/hooks/useEvent.d.ts +0 -13
- package/esm/hooks/useEvent.js +0 -35
- package/esm/hooks/useKey.d.ts +0 -12
- package/esm/hooks/useKey.js +0 -29
- package/esm/hooks/useList.d.ts +0 -57
- package/esm/hooks/useList.js +0 -74
- package/esm/hooks/useLocalstorage.d.ts +0 -10
- package/esm/hooks/useLocalstorage.js +0 -75
- package/esm/hooks/usePanels.d.ts +0 -10
- package/esm/hooks/usePanels.js +0 -45
- package/esm/hooks/useSetState.d.ts +0 -2
- package/esm/hooks/useSetState.js +0 -10
- package/esm/hooks/useToggle.d.ts +0 -2
- package/esm/hooks/useToggle.js +0 -6
- package/esm/hooks/useUpdate.d.ts +0 -1
- package/esm/hooks/useUpdate.js +0 -6
- package/esm/index.d.ts +0 -4
- package/esm/index.js +0 -4
- package/esm/selectors/selectors.d.ts +0 -21
- package/esm/selectors/selectors.js +0 -20
- package/esm/theme/devtoolsTheme.d.ts +0 -2
- package/esm/theme/devtoolsTheme.js +0 -95
- package/esm/types.d.ts +0 -21
- package/esm/types.js +0 -1
- package/esm/utils/filter.d.ts +0 -3
- package/esm/utils/filter.js +0 -25
- package/esm/utils/localStorage.d.ts +0 -2
- package/esm/utils/localStorage.js +0 -21
- package/esm/utils/sockets.d.ts +0 -7
- package/esm/utils/sockets.js +0 -27
- package/lib/components/Colors copy.css +0 -3
- package/lib/components/Colors copy.css.map +0 -1
- package/lib/components/Colors.css +0 -3
- package/lib/components/Colors.css.map +0 -1
- package/lib/components/ColorsDark.css +0 -3
- package/lib/components/ColorsDark.css.map +0 -1
- package/lib/components/Config/Config.css +0 -15
- package/lib/components/Config/Config.css.map +0 -1
- package/lib/components/Config/Config.d.ts +0 -6
- package/lib/components/Config/Config.js +0 -20
- package/lib/components/DevTools/DevTools.css +0 -11
- package/lib/components/DevTools/DevTools.css.map +0 -1
- package/lib/components/DevTools/DevTools.d.ts +0 -4
- package/lib/components/DevTools/DevTools.js +0 -24
- package/lib/components/DevToolsLocal/DevToolsLocal.css +0 -11
- package/lib/components/DevToolsLocal/DevToolsLocal.css.map +0 -1
- package/lib/components/DevToolsLocal/DevToolsLocal.d.ts +0 -4
- package/lib/components/DevToolsLocal/DevToolsLocal.js +0 -17
- package/lib/components/Dispatcher/Dispatcher.css +0 -15
- package/lib/components/Dispatcher/Dispatcher.css.map +0 -1
- package/lib/components/Dispatcher/Dispatcher.d.ts +0 -8
- package/lib/components/Dispatcher/Dispatcher.js +0 -65
- package/lib/components/GlobalSettings/GlobalSettings.css +0 -3
- package/lib/components/GlobalSettings/GlobalSettings.css.map +0 -1
- package/lib/components/GlobalSettings/GlobalSettings.d.ts +0 -6
- package/lib/components/GlobalSettings/GlobalSettings.js +0 -21
- package/lib/components/Group/Group.css +0 -41
- package/lib/components/Group/Group.css.map +0 -1
- package/lib/components/Group/Group.d.ts +0 -9
- package/lib/components/Group/Group.js +0 -19
- package/lib/components/Json/Json.css +0 -5
- package/lib/components/Json/Json.css.map +0 -1
- package/lib/components/Json/Json.d.ts +0 -7
- package/lib/components/Json/Json.js +0 -14
- package/lib/components/Logs/Logs.css +0 -5
- package/lib/components/Logs/Logs.css.map +0 -1
- package/lib/components/Logs/Logs.d.ts +0 -6
- package/lib/components/Logs/Logs.js +0 -54
- package/lib/components/Monitor/Monitor.css +0 -5
- package/lib/components/Monitor/Monitor.css.map +0 -1
- package/lib/components/Monitor/Monitor.d.ts +0 -6
- package/lib/components/Monitor/Monitor.js +0 -59
- package/lib/components/OverlayManager/OverlayManager.css +0 -72
- package/lib/components/OverlayManager/OverlayManager.css.map +0 -1
- package/lib/components/OverlayManager/OverlayManager.d.ts +0 -6
- package/lib/components/OverlayManager/OverlayManager.js +0 -22
- package/lib/components/Panel/Panel.css +0 -35
- package/lib/components/Panel/Panel.css.map +0 -1
- package/lib/components/Panel/Panel.d.ts +0 -14
- package/lib/components/Panel/Panel.js +0 -51
- package/lib/components/Prefix copy.css +0 -3
- package/lib/components/Prefix copy.css.map +0 -1
- package/lib/components/Prefix.css +0 -3
- package/lib/components/Prefix.css.map +0 -1
- package/lib/components/Preview/Preview.css +0 -29
- package/lib/components/Preview/Preview.css.map +0 -1
- package/lib/components/Preview/Preview.d.ts +0 -18
- package/lib/components/Preview/Preview.js +0 -64
- package/lib/components/Reading.css +0 -107
- package/lib/components/Reading.css.map +0 -1
- package/lib/components/Redux/Redux.css +0 -86
- package/lib/components/Redux/Redux.css.map +0 -1
- package/lib/components/Redux/Redux.d.ts +0 -6
- package/lib/components/Redux/Redux.js +0 -77
- package/lib/components/ReduxSettings/ReduxSettings.css +0 -10
- package/lib/components/ReduxSettings/ReduxSettings.css.map +0 -1
- package/lib/components/ReduxSettings/ReduxSettings.d.ts +0 -9
- package/lib/components/ReduxSettings/ReduxSettings.js +0 -64
- package/lib/components/Requests/Requests.css +0 -8
- package/lib/components/Requests/Requests.css.map +0 -1
- package/lib/components/Requests/Requests.d.ts +0 -6
- package/lib/components/Requests/Requests.js +0 -66
- package/lib/components/Status/Status.css +0 -15
- package/lib/components/Status/Status.css.map +0 -1
- package/lib/components/Status/Status.d.ts +0 -6
- package/lib/components/Status/Status.js +0 -21
- package/lib/components/TaskManager/TaskManager.css +0 -9
- package/lib/components/TaskManager/TaskManager.css.map +0 -1
- package/lib/components/TaskManager/TaskManager.d.ts +0 -9
- package/lib/components/TaskManager/TaskManager.js +0 -28
- package/lib/components/Timeline/Timeline.css +0 -5
- package/lib/components/Timeline/Timeline.css.map +0 -1
- package/lib/components/Timeline/Timeline.d.ts +0 -6
- package/lib/components/Timeline/Timeline.js +0 -18
- package/lib/components/TimelineEvent/TimelineEvent.css +0 -20
- package/lib/components/TimelineEvent/TimelineEvent.css.map +0 -1
- package/lib/components/TimelineEvent/TimelineEvent.d.ts +0 -7
- package/lib/components/TimelineEvent/TimelineEvent.js +0 -18
- package/lib/components/TimelineHeader/TimelineHeader.css +0 -6
- package/lib/components/TimelineHeader/TimelineHeader.css.map +0 -1
- package/lib/components/TimelineHeader/TimelineHeader.d.ts +0 -4
- package/lib/components/TimelineHeader/TimelineHeader.js +0 -10
- package/lib/components/TimelineRow/TimelineRow.css +0 -14
- package/lib/components/TimelineRow/TimelineRow.css.map +0 -1
- package/lib/components/TimelineRow/TimelineRow.d.ts +0 -7
- package/lib/components/TimelineRow/TimelineRow.js +0 -18
- package/lib/components/TimelineRowHeader/TimelineRowHeader.css +0 -45
- package/lib/components/TimelineRowHeader/TimelineRowHeader.css.map +0 -1
- package/lib/components/TimelineRowHeader/TimelineRowHeader.d.ts +0 -7
- package/lib/components/TimelineRowHeader/TimelineRowHeader.js +0 -15
- package/lib/components/Toggle/Toggle.css +0 -3
- package/lib/components/Toggle/Toggle.css.map +0 -1
- package/lib/components/Toggle/Toggle.d.ts +0 -8
- package/lib/components/Toggle/Toggle.js +0 -13
- package/lib/components/Variables.css +0 -3
- package/lib/components/Variables.css.map +0 -1
- package/lib/components/VirtualList/VirtualList.css +0 -13
- package/lib/components/VirtualList/VirtualList.css.map +0 -1
- package/lib/components/VirtualList/VirtualList.d.ts +0 -19
- package/lib/components/VirtualList/VirtualList.js +0 -35
- package/lib/components/Visual/Visual.css +0 -57
- package/lib/components/Visual/Visual.css.map +0 -1
- package/lib/components/Visual/Visual.d.ts +0 -6
- package/lib/components/Visual/Visual.js +0 -43
- package/lib/components/prefix.d.ts +0 -2
- package/lib/components/prefix.js +0 -5
- package/lib/data/boxSizes.d.ts +0 -2
- package/lib/data/boxSizes.js +0 -13
- package/lib/data/dispatcherActions.d.ts +0 -5
- package/lib/data/dispatcherActions.js +0 -38
- package/lib/data/layoutDefault.d.ts +0 -2
- package/lib/data/layoutDefault.js +0 -49
- package/lib/data/panels.d.ts +0 -2
- package/lib/data/panels.js +0 -17
- package/lib/data/panelsArrangements.d.ts +0 -19
- package/lib/data/panelsArrangements.js +0 -22
- package/lib/data/panelsLocal.d.ts +0 -2
- package/lib/data/panelsLocal.js +0 -10
- package/lib/data/reduxFilterOptions.d.ts +0 -20
- package/lib/data/reduxFilterOptions.js +0 -227
- package/lib/data/widgets.d.ts +0 -2
- package/lib/data/widgets.js +0 -157
- package/lib/data/widgetsLocal.d.ts +0 -2
- package/lib/data/widgetsLocal.js +0 -22
- package/lib/hooks/index.d.ts +0 -7
- package/lib/hooks/index.js +0 -17
- package/lib/hooks/misc/hookState.d.ts +0 -8
- package/lib/hooks/misc/hookState.js +0 -10
- package/lib/hooks/misc/util.d.ts +0 -5
- package/lib/hooks/misc/util.js +0 -27
- package/lib/hooks/useBoolean.d.ts +0 -3
- package/lib/hooks/useBoolean.js +0 -7
- package/lib/hooks/useClickAway.d.ts +0 -3
- package/lib/hooks/useClickAway.js +0 -31
- package/lib/hooks/useEvent.d.ts +0 -13
- package/lib/hooks/useEvent.js +0 -37
- package/lib/hooks/useKey.d.ts +0 -12
- package/lib/hooks/useKey.js +0 -34
- package/lib/hooks/useList.d.ts +0 -57
- package/lib/hooks/useList.js +0 -79
- package/lib/hooks/useLocalstorage.d.ts +0 -10
- package/lib/hooks/useLocalstorage.js +0 -79
- package/lib/hooks/usePanels.d.ts +0 -10
- package/lib/hooks/usePanels.js +0 -49
- package/lib/hooks/useSetState.d.ts +0 -2
- package/lib/hooks/useSetState.js +0 -14
- package/lib/hooks/useToggle.d.ts +0 -2
- package/lib/hooks/useToggle.js +0 -10
- package/lib/hooks/useUpdate.d.ts +0 -1
- package/lib/hooks/useUpdate.js +0 -9
- package/lib/index.css +0 -605
- package/lib/index.css.map +0 -1
- package/lib/index.d.ts +0 -4
- package/lib/index.js +0 -11
- package/lib/selectors/selectors.d.ts +0 -21
- package/lib/selectors/selectors.js +0 -24
- package/lib/theme/devtoolsTheme.d.ts +0 -2
- package/lib/theme/devtoolsTheme.js +0 -97
- package/lib/types.d.ts +0 -21
- package/lib/types.js +0 -2
- package/lib/utils/filter.d.ts +0 -3
- package/lib/utils/filter.js +0 -29
- package/lib/utils/localStorage.d.ts +0 -2
- package/lib/utils/localStorage.js +0 -26
- package/lib/utils/sockets.d.ts +0 -7
- package/lib/utils/sockets.js +0 -34
@@ -0,0 +1,27 @@
|
|
1
|
+
import { useState, useEffect } from 'react';
|
2
|
+
import { debounce } from 'shared-base';
|
3
|
+
|
4
|
+
type Callback = () => void;
|
5
|
+
|
6
|
+
interface ReduxStore {
|
7
|
+
getState: () => Json;
|
8
|
+
subscribe: (callback: Callback) => void;
|
9
|
+
}
|
10
|
+
|
11
|
+
export const useStoreSize = (store: ReduxStore) => {
|
12
|
+
const [storeSize, setStoreSize] = useState<number>();
|
13
|
+
|
14
|
+
const calculateSize = debounce(() => {
|
15
|
+
const state = store.getState();
|
16
|
+
const size = JSON.stringify(state).length;
|
17
|
+
setStoreSize(size);
|
18
|
+
}, 500);
|
19
|
+
|
20
|
+
useEffect(() => {
|
21
|
+
store.subscribe(() => {
|
22
|
+
calculateSize();
|
23
|
+
});
|
24
|
+
}, [store]);
|
25
|
+
|
26
|
+
return storeSize;
|
27
|
+
};
|
package/src/index.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export { DevtoolsAppContainer as DevtoolsApp } from './containers/DevtoolsAppContainer';
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import {
|
2
|
+
generateConnectedStoreEmpty,
|
3
|
+
IReduxConnectedConfig,
|
4
|
+
ConnectionType,
|
5
|
+
RetryStrategy,
|
6
|
+
} from 'redux-connected';
|
7
|
+
|
8
|
+
type IAppState = {
|
9
|
+
name: string;
|
10
|
+
email: string;
|
11
|
+
};
|
12
|
+
|
13
|
+
export type MyStore = {
|
14
|
+
appState: IAppState;
|
15
|
+
};
|
16
|
+
|
17
|
+
export const initialState: MyStore = {
|
18
|
+
appState: {
|
19
|
+
name: 'User2',
|
20
|
+
email: 'user@example.com',
|
21
|
+
},
|
22
|
+
};
|
23
|
+
|
24
|
+
const config: IReduxConnectedConfig = {
|
25
|
+
defaultEndpointsConfig: {
|
26
|
+
id: 'default',
|
27
|
+
connectionType: ConnectionType.REST,
|
28
|
+
retryStrategy: RetryStrategy.X2_TIMES,
|
29
|
+
},
|
30
|
+
endpointsConfigOverrides: {
|
31
|
+
appState: {
|
32
|
+
connectionType: ConnectionType.NONE,
|
33
|
+
},
|
34
|
+
logs: {
|
35
|
+
connectionType: ConnectionType.NONE,
|
36
|
+
},
|
37
|
+
},
|
38
|
+
adapters: {},
|
39
|
+
};
|
40
|
+
|
41
|
+
export const store = generateConnectedStoreEmpty(initialState, config);
|
42
|
+
(window as any).store = store;
|
@@ -0,0 +1,220 @@
|
|
1
|
+
import { createSelector } from 'reselect';
|
2
|
+
import { connectedSelectors, LifecycleStatus } from 'redux-connected';
|
3
|
+
|
4
|
+
export const $requests = createSelector(
|
5
|
+
connectedSelectors.$requests,
|
6
|
+
(requests) => {
|
7
|
+
return requests
|
8
|
+
.map((request) => {
|
9
|
+
const { items } = request;
|
10
|
+
|
11
|
+
const lastPoint = items[items.length - 1] ?? {};
|
12
|
+
|
13
|
+
const journeyWithDelta = items.map((point, index) => {
|
14
|
+
const nextPoint = items[index + 1] ?? point;
|
15
|
+
const delta = nextPoint.timestamp - point.timestamp;
|
16
|
+
|
17
|
+
return {
|
18
|
+
...point,
|
19
|
+
delta,
|
20
|
+
};
|
21
|
+
});
|
22
|
+
|
23
|
+
return {
|
24
|
+
...request,
|
25
|
+
items: journeyWithDelta,
|
26
|
+
lastPointTimestamp: lastPoint.timestamp,
|
27
|
+
lastPointStatus: lastPoint.status,
|
28
|
+
};
|
29
|
+
})
|
30
|
+
.sort((a: any, b: any) => {
|
31
|
+
if (a.lastPointTimestamp === b.lastPointTimestamp) {
|
32
|
+
return 0;
|
33
|
+
}
|
34
|
+
|
35
|
+
return a.lastPointTimestamp > b.lastPointTimestamp ? -1 : 1;
|
36
|
+
});
|
37
|
+
}
|
38
|
+
);
|
39
|
+
|
40
|
+
// 1
|
41
|
+
export const $requestsReceived = createSelector($requests, (requests) => {
|
42
|
+
return requests.filter((request) => {
|
43
|
+
const { items } = request;
|
44
|
+
const lastPoint = items[items.length - 1];
|
45
|
+
return lastPoint && lastPoint.status === LifecycleStatus.RECEIVED;
|
46
|
+
});
|
47
|
+
});
|
48
|
+
|
49
|
+
export const $requestsReceivedPast = createSelector($requests, (requests) => {
|
50
|
+
return requests.filter((request) => {
|
51
|
+
const { items } = request;
|
52
|
+
|
53
|
+
return items.find((point) => point.status === LifecycleStatus.RECEIVED);
|
54
|
+
});
|
55
|
+
});
|
56
|
+
|
57
|
+
// 2
|
58
|
+
export const $requestsInQueue = createSelector($requests, (requests) => {
|
59
|
+
return requests.filter((request) => {
|
60
|
+
const { items } = request;
|
61
|
+
const lastPoint = items[items.length - 1];
|
62
|
+
return lastPoint && lastPoint.status === LifecycleStatus.IN_QUEUE;
|
63
|
+
});
|
64
|
+
});
|
65
|
+
|
66
|
+
export const $requestsInQueuePast = createSelector($requests, (requests) => {
|
67
|
+
return requests.filter((request) => {
|
68
|
+
const { items } = request;
|
69
|
+
return items.find((point) => point.status === LifecycleStatus.IN_QUEUE);
|
70
|
+
});
|
71
|
+
});
|
72
|
+
|
73
|
+
// 3
|
74
|
+
export const $requestsPendingApi = createSelector($requests, (requests) => {
|
75
|
+
return requests.filter((request) => {
|
76
|
+
const { items } = request;
|
77
|
+
const lastPoint = items[items.length - 1];
|
78
|
+
return (
|
79
|
+
lastPoint &&
|
80
|
+
lastPoint.status === LifecycleStatus.PENDING_API_RESPONSE
|
81
|
+
);
|
82
|
+
});
|
83
|
+
});
|
84
|
+
|
85
|
+
export const $requestsPendingApiPast = createSelector($requests, (requests) => {
|
86
|
+
return requests.filter((request) => {
|
87
|
+
const { items } = request;
|
88
|
+
|
89
|
+
return items.find(
|
90
|
+
(point) => point.status === LifecycleStatus.PENDING_API_RESPONSE
|
91
|
+
);
|
92
|
+
});
|
93
|
+
});
|
94
|
+
|
95
|
+
// 4
|
96
|
+
export const $requestsPostAction = createSelector($requests, (requests) => {
|
97
|
+
return requests.filter((request) => {
|
98
|
+
const { items } = request;
|
99
|
+
const lastPoint = items[items.length - 1];
|
100
|
+
return lastPoint && lastPoint.status === LifecycleStatus.POST_ACTION;
|
101
|
+
});
|
102
|
+
});
|
103
|
+
|
104
|
+
export const $requestsPostActionPast = createSelector($requests, (requests) => {
|
105
|
+
return requests.filter((request) => {
|
106
|
+
const { items } = request;
|
107
|
+
|
108
|
+
return items.find(
|
109
|
+
(point) => point.status === LifecycleStatus.POST_ACTION
|
110
|
+
);
|
111
|
+
});
|
112
|
+
});
|
113
|
+
|
114
|
+
// e1
|
115
|
+
export const $requestsGeneralError = createSelector($requests, (requests) => {
|
116
|
+
return requests.filter((request) => {
|
117
|
+
const { items } = request;
|
118
|
+
const lastPoint = items[items.length - 1];
|
119
|
+
return lastPoint && lastPoint.status === LifecycleStatus.GENERAL_ERROR;
|
120
|
+
});
|
121
|
+
});
|
122
|
+
|
123
|
+
export const $requestsGeneralErrorPast = createSelector(
|
124
|
+
$requests,
|
125
|
+
(requests) => {
|
126
|
+
return requests.filter((request) => {
|
127
|
+
const { items } = request;
|
128
|
+
|
129
|
+
return items.find(
|
130
|
+
(point) => point.status === LifecycleStatus.GENERAL_ERROR
|
131
|
+
);
|
132
|
+
});
|
133
|
+
}
|
134
|
+
);
|
135
|
+
|
136
|
+
// e2
|
137
|
+
export const $requestsApiError = createSelector($requests, (requests) => {
|
138
|
+
return requests.filter((request) => {
|
139
|
+
const { items } = request;
|
140
|
+
const lastPoint = items[items.length - 1];
|
141
|
+
return lastPoint && lastPoint.status === LifecycleStatus.API_ERROR;
|
142
|
+
});
|
143
|
+
});
|
144
|
+
|
145
|
+
// e3
|
146
|
+
export const $requestsFailed = createSelector($requests, (requests) => {
|
147
|
+
return requests.filter((request) => {
|
148
|
+
const { items } = request;
|
149
|
+
|
150
|
+
return items.find((point) => point.status === LifecycleStatus.FAILED);
|
151
|
+
});
|
152
|
+
});
|
153
|
+
|
154
|
+
export const $requestsApiErrorPast = createSelector($requests, (requests) => {
|
155
|
+
return requests.filter((request) => {
|
156
|
+
const { items } = request;
|
157
|
+
|
158
|
+
return items.find(
|
159
|
+
(point) => point.status === LifecycleStatus.API_ERROR
|
160
|
+
);
|
161
|
+
});
|
162
|
+
});
|
163
|
+
|
164
|
+
export const $menuBadges = createSelector(
|
165
|
+
$requestsReceived,
|
166
|
+
$requestsInQueue,
|
167
|
+
$requestsGeneralError,
|
168
|
+
$requestsPendingApi,
|
169
|
+
$requestsApiError,
|
170
|
+
$requestsFailed,
|
171
|
+
$requestsPostAction,
|
172
|
+
(
|
173
|
+
requestsReceived,
|
174
|
+
requestsInQueue,
|
175
|
+
requestsGeneralError,
|
176
|
+
requestsPendingApi,
|
177
|
+
requestsApiError,
|
178
|
+
requestsFailed,
|
179
|
+
requestsPostAction
|
180
|
+
) => {
|
181
|
+
return {
|
182
|
+
lifecycleReceived: requestsReceived.length,
|
183
|
+
lifecycleInQueue: requestsInQueue.length,
|
184
|
+
lifecycleGeneralError: requestsGeneralError.length,
|
185
|
+
lifecyclePendingApi: requestsPendingApi.length,
|
186
|
+
lifecycleApiError: requestsApiError.length,
|
187
|
+
lifecycleFailed: requestsFailed.length,
|
188
|
+
lifecyclePostAction: requestsPostAction.length,
|
189
|
+
};
|
190
|
+
}
|
191
|
+
);
|
192
|
+
|
193
|
+
export const $menuBadgesTotal = createSelector(
|
194
|
+
$requestsReceivedPast,
|
195
|
+
$requestsInQueuePast,
|
196
|
+
$requestsGeneralErrorPast,
|
197
|
+
$requestsPendingApiPast,
|
198
|
+
$requestsApiErrorPast,
|
199
|
+
$requestsFailed,
|
200
|
+
$requestsPostActionPast,
|
201
|
+
(
|
202
|
+
requestsReceived,
|
203
|
+
requestsInQueue,
|
204
|
+
requestsGeneralError,
|
205
|
+
requestsPendingApi,
|
206
|
+
requestsApiError,
|
207
|
+
requestsFailed,
|
208
|
+
requestsPostAction
|
209
|
+
) => {
|
210
|
+
return {
|
211
|
+
lifecycleReceived: requestsReceived.length,
|
212
|
+
lifecycleInQueue: requestsInQueue.length,
|
213
|
+
lifecycleGeneralError: requestsGeneralError.length,
|
214
|
+
lifecyclePendingApi: requestsPendingApi.length,
|
215
|
+
lifecycleApiError: requestsApiError.length,
|
216
|
+
lifecycleFailed: requestsFailed.length,
|
217
|
+
lifecyclePostAction: requestsPostAction.length,
|
218
|
+
};
|
219
|
+
}
|
220
|
+
);
|
package/src/types.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
export const download = (filename: string, json: Json) => {
|
2
|
+
const data = JSON.stringify(json, null, 4);
|
3
|
+
|
4
|
+
const blob = new Blob([data], { type: 'text/csv' });
|
5
|
+
// @ts-ignore
|
6
|
+
if (window.navigator.msSaveOrOpenBlob) {
|
7
|
+
// @ts-ignore
|
8
|
+
window.navigator.msSaveBlob(blob, filename);
|
9
|
+
} else {
|
10
|
+
const elem = window.document.createElement('a');
|
11
|
+
elem.href = window.URL.createObjectURL(blob);
|
12
|
+
elem.download = filename;
|
13
|
+
document.body.appendChild(elem);
|
14
|
+
elem.click();
|
15
|
+
document.body.removeChild(elem);
|
16
|
+
}
|
17
|
+
};
|
package/tsconfig.json
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
{
|
2
|
+
"compilerOptions": {
|
3
|
+
"outDir": "dist",
|
4
|
+
"target": "ES2020",
|
5
|
+
"module": "ES2022",
|
6
|
+
"lib": ["ES2020", "dom"],
|
7
|
+
"moduleResolution": "node",
|
8
|
+
"esModuleInterop": true,
|
9
|
+
"declaration": true,
|
10
|
+
"declarationDir": "dist/dts",
|
11
|
+
"jsx": "react-jsx",
|
12
|
+
"forceConsistentCasingInFileNames": true,
|
13
|
+
"strict": true,
|
14
|
+
"skipLibCheck": true,
|
15
|
+
"types": ["types-base", "@types/jest"]
|
16
|
+
},
|
17
|
+
"include": ["src/*.ts", "test/*.ts", "src/context.tsx"]
|
18
|
+
}
|
package/vite.config.ts
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
import path from 'path';
|
2
|
+
import { defineConfig } from 'vite';
|
3
|
+
import dts from 'vite-plugin-dts';
|
4
|
+
import { externals } from 'shared-base';
|
5
|
+
import analyze from 'rollup-plugin-analyzer';
|
6
|
+
import p from './package.json';
|
7
|
+
|
8
|
+
export default defineConfig({
|
9
|
+
plugins: [dts({})],
|
10
|
+
build: {
|
11
|
+
sourcemap: true,
|
12
|
+
lib: {
|
13
|
+
entry: path.resolve(__dirname, 'src/index.ts'),
|
14
|
+
name: 'ReduxConnectedDevtools',
|
15
|
+
formats: ['es', 'umd'],
|
16
|
+
fileName: (format) => `redux-connected-devtools.${format}.js`,
|
17
|
+
},
|
18
|
+
rollupOptions: {
|
19
|
+
plugins: [analyze()],
|
20
|
+
...externals({
|
21
|
+
react: '',
|
22
|
+
'react/jsx-runtime': '',
|
23
|
+
...p.dependencies,
|
24
|
+
}),
|
25
|
+
},
|
26
|
+
},
|
27
|
+
});
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import classnames from 'classnames';
|
3
|
-
import Json from '../Json/Json';
|
4
|
-
import * as selectors from '../../selectors/selectors';
|
5
|
-
import { useSelector } from 'react-redux';
|
6
|
-
export function Config(props) {
|
7
|
-
var isWide = props.isWide;
|
8
|
-
var configs = useSelector(selectors.$endpointsConfig);
|
9
|
-
var className = classnames('__devtools__Config-container', {
|
10
|
-
wide: isWide,
|
11
|
-
});
|
12
|
-
return (React.createElement("div", { className: className },
|
13
|
-
React.createElement(Json, { value: configs })));
|
14
|
-
}
|
15
|
-
export default Config;
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import { Grid } from 'igrid';
|
3
|
-
import { panels } from '../../data/panels';
|
4
|
-
import { widgets } from '../../data/widgets';
|
5
|
-
import cssPrefix from '../prefix';
|
6
|
-
import classnames from 'classnames';
|
7
|
-
import * as sockets from '../../utils/sockets';
|
8
|
-
import { useMount } from 'react-use';
|
9
|
-
export function DevTools(_props) {
|
10
|
-
var className = classnames(cssPrefix + "DevTools-container", {});
|
11
|
-
useMount(function () {
|
12
|
-
sockets.on('devtools', function (data) {
|
13
|
-
console.log('data ->', data);
|
14
|
-
});
|
15
|
-
});
|
16
|
-
return (React.createElement("div", { className: className },
|
17
|
-
React.createElement(Grid, { defaultPanels: panels, widgets: widgets })));
|
18
|
-
}
|
19
|
-
export default DevTools;
|
@@ -1,12 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import { Grid } from 'igrid';
|
3
|
-
import { panels } from '../../data/panelsLocal';
|
4
|
-
import { widgets } from '../../data/widgetsLocal';
|
5
|
-
import cssPrefix from '../prefix';
|
6
|
-
import classnames from 'classnames';
|
7
|
-
export function DevToolsLocal(_props) {
|
8
|
-
var className = classnames(cssPrefix + "DevToolsLocal-container", {});
|
9
|
-
return (React.createElement("div", { className: className },
|
10
|
-
React.createElement(Grid, { defaultPanels: panels, widgets: widgets })));
|
11
|
-
}
|
12
|
-
export default DevToolsLocal;
|
@@ -1,61 +0,0 @@
|
|
1
|
-
import { __awaiter, __generator } from "tslib";
|
2
|
-
import * as React from 'react';
|
3
|
-
import Group from '../Group/Group';
|
4
|
-
import classnames from 'classnames';
|
5
|
-
import { generateActionsForStore, analyzeStructure, } from 'redux-store-generator';
|
6
|
-
import * as dispatcherActions from '../../data/dispatcherActions';
|
7
|
-
import { useSetState } from 'react-use';
|
8
|
-
import Panel from '../Panel/Panel';
|
9
|
-
import { useDispatch } from 'react-redux';
|
10
|
-
import cssPrefix from '../prefix';
|
11
|
-
export function Dispatcher(props) {
|
12
|
-
var dispatch = useDispatch();
|
13
|
-
var _a = useSetState({}), requests = _a[0], setRequests = _a[1];
|
14
|
-
var _b = props.isWide, isWide = _b === void 0 ? false : _b, storeState = props.storeState;
|
15
|
-
var actions = generateActionsForStore(storeState);
|
16
|
-
var nodeTypes = analyzeStructure(storeState);
|
17
|
-
function dispatchAction(nodeName, verbType, actionParams) {
|
18
|
-
return __awaiter(this, void 0, void 0, function () {
|
19
|
-
var node, actionCreator, action;
|
20
|
-
var _a, _b;
|
21
|
-
return __generator(this, function (_c) {
|
22
|
-
switch (_c.label) {
|
23
|
-
case 0:
|
24
|
-
node = actions[nodeName];
|
25
|
-
actionCreator = node[verbType];
|
26
|
-
action = actionCreator.apply(null, actionParams);
|
27
|
-
setRequests((_a = {},
|
28
|
-
_a[nodeName + "_" + verbType] = true,
|
29
|
-
_a));
|
30
|
-
return [4 /*yield*/, dispatch(action)];
|
31
|
-
case 1:
|
32
|
-
_c.sent();
|
33
|
-
setRequests((_b = {},
|
34
|
-
_b[nodeName + "_" + verbType] = false,
|
35
|
-
_b));
|
36
|
-
return [2 /*return*/];
|
37
|
-
}
|
38
|
-
});
|
39
|
-
});
|
40
|
-
}
|
41
|
-
function renderAction(nodeName, verbType, actionParams) {
|
42
|
-
var disabled = requests[nodeName + "_" + verbType];
|
43
|
-
return (React.createElement("button", { onClick: function () { return dispatchAction(nodeName, verbType, actionParams); }, key: verbType, disabled: disabled }, verbType));
|
44
|
-
}
|
45
|
-
function renderActions(nodeName) {
|
46
|
-
var nodeType = nodeTypes[nodeName];
|
47
|
-
var actions = dispatcherActions[nodeType];
|
48
|
-
var buttons = Object.keys(actions).map(function (verbType) {
|
49
|
-
var actionParams = actions[verbType];
|
50
|
-
return renderAction(nodeName, verbType, actionParams);
|
51
|
-
});
|
52
|
-
return buttons;
|
53
|
-
}
|
54
|
-
var className = classnames(cssPrefix + "Dispatcher-container", {
|
55
|
-
wide: isWide,
|
56
|
-
});
|
57
|
-
return (React.createElement(Panel, { id: "dispatcher", zIndex: 999, onClose: props.onClose },
|
58
|
-
React.createElement("div", { className: className }, Object.keys(nodeTypes).map(function (nodeName) { return (React.createElement(Group, { key: nodeName, title: nodeName, isWide: isWide, fluid: true },
|
59
|
-
React.createElement(React.Fragment, null, renderActions(nodeName)))); }))));
|
60
|
-
}
|
61
|
-
export default Dispatcher;
|
@@ -1,16 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import classnames from 'classnames';
|
3
|
-
import Json from '../Json/Json';
|
4
|
-
import * as selectors from '../../selectors/selectors';
|
5
|
-
import { useSelector } from 'react-redux';
|
6
|
-
import cssPrefix from '../prefix';
|
7
|
-
export function GlobalSettings(props) {
|
8
|
-
var isWide = props.isWide;
|
9
|
-
var settingsAndStats = useSelector(selectors.$settingsAndStats);
|
10
|
-
var className = classnames(cssPrefix + "GlobalSettings-container", {
|
11
|
-
wide: isWide,
|
12
|
-
});
|
13
|
-
return (React.createElement("div", { className: className },
|
14
|
-
React.createElement(Json, { value: settingsAndStats })));
|
15
|
-
}
|
16
|
-
export default GlobalSettings;
|
@@ -1,14 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import classnames from 'classnames';
|
3
|
-
import cssPrefix from '../prefix';
|
4
|
-
export function Group(props) {
|
5
|
-
var title = props.title, isWide = props.isWide, fluid = props.fluid;
|
6
|
-
var className = classnames(cssPrefix + "Group-container", {
|
7
|
-
wide: isWide,
|
8
|
-
fluid: fluid,
|
9
|
-
});
|
10
|
-
return (React.createElement("div", { className: className },
|
11
|
-
React.createElement("div", { className: "title" }, title),
|
12
|
-
React.createElement("div", { className: "items" }, props.children)));
|
13
|
-
}
|
14
|
-
export default Group;
|
@@ -1,9 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import ReactJson from 'react-json-view';
|
3
|
-
import cssPrefix from '../prefix';
|
4
|
-
export function Json(props) {
|
5
|
-
var value = props.value, collapsed = props.collapsed;
|
6
|
-
return (React.createElement("div", { className: cssPrefix + "Json-container" },
|
7
|
-
React.createElement(ReactJson, { src: value, collapsed: collapsed, enableClipboard: false, displayObjectSize: false, displayDataTypes: false, theme: 'monokai' })));
|
8
|
-
}
|
9
|
-
export default Json;
|
@@ -1,49 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import { useMonitor, clearMeta } from 'redux-connected';
|
3
|
-
import VirtualList from '../VirtualList/VirtualList';
|
4
|
-
import classnames from 'classnames';
|
5
|
-
import { useDispatch } from 'react-redux';
|
6
|
-
import { preview } from '../Preview/Preview';
|
7
|
-
import cssPrefix from '../prefix';
|
8
|
-
var now = new Date().getTime();
|
9
|
-
export function Logs(props) {
|
10
|
-
var dispatch = useDispatch();
|
11
|
-
var readings = useMonitor({}, function (action) { return action.type === 'LOG'; })[0];
|
12
|
-
function onClick(reading) {
|
13
|
-
var action = reading.action;
|
14
|
-
var log = action.payload;
|
15
|
-
dispatch(preview(log, 'log'));
|
16
|
-
}
|
17
|
-
var isWide = props.isWide;
|
18
|
-
var className = classnames(cssPrefix + "Logs-container", cssPrefix + "Rows-container", {
|
19
|
-
wide: isWide,
|
20
|
-
});
|
21
|
-
var height = isWide ? 735 : 395;
|
22
|
-
return (React.createElement("div", { className: className },
|
23
|
-
React.createElement(VirtualList, { className: className, items: readings, height: height, onClick: onClick }, LowRow)));
|
24
|
-
}
|
25
|
-
var LowRow = function (props) {
|
26
|
-
var index = props.index;
|
27
|
-
var listItem = props.data[index];
|
28
|
-
var reading = listItem.item;
|
29
|
-
var action = reading.action;
|
30
|
-
var payload = action.payload;
|
31
|
-
var _a = payload || {}, meta = _a.meta, message = _a.message;
|
32
|
-
var shortId = meta.shortId, createdTS = meta.createdTS, sequence = meta.sequence;
|
33
|
-
var className = classnames(cssPrefix + "Reading-container", {});
|
34
|
-
var delta = ((createdTS - now) / 1000).toFixed(2);
|
35
|
-
var data = clearMeta(payload || {});
|
36
|
-
delete data['message'];
|
37
|
-
return (React.createElement("div", { className: className, style: props.style, onClick: listItem.onClick },
|
38
|
-
React.createElement("div", { className: "col" },
|
39
|
-
React.createElement("div", { className: "row" },
|
40
|
-
React.createElement("div", { className: "sequence" }, sequence),
|
41
|
-
React.createElement("div", { className: "message" }, message)),
|
42
|
-
React.createElement("div", { className: "description" }, JSON.stringify(data))),
|
43
|
-
React.createElement("div", { className: "col" },
|
44
|
-
React.createElement("div", { className: "timestamp" },
|
45
|
-
"+",
|
46
|
-
delta),
|
47
|
-
React.createElement("div", { className: "id" }, shortId))));
|
48
|
-
};
|
49
|
-
export default Logs;
|