diff --git a/frontend/src/components/CustomDateTimeModal.tsx b/frontend/src/components/CustomDateTimeModal.tsx index c71d96a29944..1fa6010dd6a5 100644 --- a/frontend/src/components/CustomDateTimeModal.tsx +++ b/frontend/src/components/CustomDateTimeModal.tsx @@ -1,6 +1,6 @@ import React, { useState } from "react"; import { Modal, DatePicker } from "antd"; -import { DateTimeRangeType } from "../actions"; +import { DateTimeRangeType } from "../store/actions"; import { Moment } from "moment"; import moment from "moment"; diff --git a/frontend/src/components/DateTimeSelector.tsx b/frontend/src/components/DateTimeSelector.tsx index b5deac900bd9..f53fcf54bba7 100644 --- a/frontend/src/components/DateTimeSelector.tsx +++ b/frontend/src/components/DateTimeSelector.tsx @@ -6,11 +6,11 @@ import { RouteComponentProps, useLocation } from "react-router-dom"; import { connect } from "react-redux"; import CustomDateTimeModal from "./CustomDateTimeModal"; -import { GlobalTime, updateTimeInterval } from "../actions"; -import { StoreState } from "../reducers"; +import { GlobalTime, updateTimeInterval } from "../store/actions"; +import { StoreState } from "../store/reducers"; import FormItem from "antd/lib/form/FormItem"; -import { DateTimeRangeType } from "../actions"; +import { DateTimeRangeType } from "../store/actions"; import { METRICS_PAGE_QUERY_PARAM } from "Src/constants/query"; import { LOCAL_STORAGE } from "Src/constants/localStorage"; import moment from "moment"; diff --git a/frontend/src/components/add-instrumentation/instrumentationPage.tsx b/frontend/src/components/add-instrumentation/instrumentationPage.tsx index 84d3c5952dea..2fdb896db3e6 100644 --- a/frontend/src/components/add-instrumentation/instrumentationPage.tsx +++ b/frontend/src/components/add-instrumentation/instrumentationPage.tsx @@ -7,7 +7,7 @@ import { EyeTwoTone, EyeInvisibleOutlined, } from "@ant-design/icons"; -import { StoreState } from "../../reducers"; +import { StoreState } from "../../store/reducers"; import { Alert } from "antd"; diff --git a/frontend/src/components/metrics/ErrorRateChart.tsx b/frontend/src/components/metrics/ErrorRateChart.tsx index 4feedacc866c..72d5670efb41 100644 --- a/frontend/src/components/metrics/ErrorRateChart.tsx +++ b/frontend/src/components/metrics/ErrorRateChart.tsx @@ -5,7 +5,7 @@ import { withRouter } from "react-router"; import { RouteComponentProps } from "react-router-dom"; import styled from "styled-components"; -import { metricItem } from "../../actions/metrics"; +import { metricItem } from "../../store/actions/metrics"; const ChartPopUpUnique = styled.div<{ ycoordinate: number; diff --git a/frontend/src/components/metrics/GenericVisualization.tsx b/frontend/src/components/metrics/GenericVisualization.tsx index 28a83b46d132..a68d08bcf296 100644 --- a/frontend/src/components/metrics/GenericVisualization.tsx +++ b/frontend/src/components/metrics/GenericVisualization.tsx @@ -2,7 +2,7 @@ import React from "react"; import { Bar, Line as ChartJSLine } from "react-chartjs-2"; import styled from "styled-components"; -import { customMetricsItem } from "../../actions/metrics"; +import { customMetricsItem } from "../../store/actions/metrics"; const GenVisualizationWrapper = styled.div` height: 160px; diff --git a/frontend/src/components/metrics/LatencyLineChart.tsx b/frontend/src/components/metrics/LatencyLineChart.tsx index 7456487cee18..18fd095df751 100644 --- a/frontend/src/components/metrics/LatencyLineChart.tsx +++ b/frontend/src/components/metrics/LatencyLineChart.tsx @@ -5,7 +5,7 @@ import { withRouter } from "react-router"; import { RouteComponentProps } from "react-router-dom"; import styled from "styled-components"; -import { metricItem } from "../../actions/metrics"; +import { metricItem } from "../../store/actions/metrics"; const ChartPopUpUnique = styled.div<{ ycoordinate: number; diff --git a/frontend/src/components/metrics/RequestRateChart.tsx b/frontend/src/components/metrics/RequestRateChart.tsx index 6f2bb079f52d..c2d78ee6c557 100644 --- a/frontend/src/components/metrics/RequestRateChart.tsx +++ b/frontend/src/components/metrics/RequestRateChart.tsx @@ -5,7 +5,7 @@ import { withRouter } from "react-router"; import { RouteComponentProps } from "react-router-dom"; import styled from "styled-components"; -import { metricItem } from "../../actions/metrics"; +import { metricItem } from "../../store/actions/metrics"; const ChartPopUpUnique = styled.div<{ ycoordinate: number; diff --git a/frontend/src/components/metrics/ServiceMetrics.tsx b/frontend/src/components/metrics/ServiceMetrics.tsx index c35e81213d99..cf0209dd45fc 100644 --- a/frontend/src/components/metrics/ServiceMetrics.tsx +++ b/frontend/src/components/metrics/ServiceMetrics.tsx @@ -11,8 +11,8 @@ import { topEndpointListItem, GlobalTime, updateTimeInterval, -} from "../../actions"; -import { StoreState } from "../../reducers"; +} from "../../store/actions"; +import { StoreState } from "../../store/reducers"; import LatencyLineChart from "./LatencyLineChart"; import RequestRateChart from "./RequestRateChart"; import ErrorRateChart from "./ErrorRateChart"; diff --git a/frontend/src/components/metrics/ServicesTable.tsx b/frontend/src/components/metrics/ServicesTable.tsx index e8faffd8d621..8422995169bb 100644 --- a/frontend/src/components/metrics/ServicesTable.tsx +++ b/frontend/src/components/metrics/ServicesTable.tsx @@ -5,8 +5,8 @@ import { Button, Space, Spin, Table } from "antd"; import styled from "styled-components"; import { connect } from "react-redux"; -import { getServicesList, GlobalTime, servicesListItem } from "../../actions"; -import { StoreState } from "../../reducers"; +import { getServicesList, GlobalTime, servicesListItem } from "../../store/actions"; +import { StoreState } from "../../store/reducers"; import { CustomModal } from "../common/Modal"; interface ServicesTableProps { diff --git a/frontend/src/components/metrics/TopEndpointsTable.tsx b/frontend/src/components/metrics/TopEndpointsTable.tsx index 4ea60bcd4ab1..c8e205772b51 100644 --- a/frontend/src/components/metrics/TopEndpointsTable.tsx +++ b/frontend/src/components/metrics/TopEndpointsTable.tsx @@ -2,7 +2,7 @@ import React from "react"; import { NavLink } from "react-router-dom"; import { Table } from "antd"; import styled from "styled-components"; -import { topEndpointListItem } from "../../actions/metrics"; +import { topEndpointListItem } from "../../store/actions/metrics"; const Wrapper = styled.div` padding-top: 10px; diff --git a/frontend/src/components/settings/settingsPage.tsx b/frontend/src/components/settings/settingsPage.tsx index 9e98b41c885d..a514e6051c9b 100644 --- a/frontend/src/components/settings/settingsPage.tsx +++ b/frontend/src/components/settings/settingsPage.tsx @@ -7,7 +7,7 @@ import { EyeTwoTone, EyeInvisibleOutlined, } from "@ant-design/icons"; -import { StoreState } from "../../reducers"; +import { StoreState } from "../../store/reducers"; import { Alert } from "antd"; interface SettingsPageProps {} diff --git a/frontend/src/components/traces/FilterStateDisplay.tsx b/frontend/src/components/traces/FilterStateDisplay.tsx index 4de5b3034857..ff8da5abc144 100644 --- a/frontend/src/components/traces/FilterStateDisplay.tsx +++ b/frontend/src/components/traces/FilterStateDisplay.tsx @@ -2,8 +2,8 @@ import React from "react"; import { Card, Tag } from "antd"; import { connect } from "react-redux"; -import { StoreState } from "../../reducers"; -import { TagItem, TraceFilters, updateTraceFilters } from "../../actions"; +import { StoreState } from "../../store/reducers"; +import { TagItem, TraceFilters, updateTraceFilters } from "../../store/actions"; interface FilterStateDisplayProps { traceFilters: TraceFilters; diff --git a/frontend/src/components/traces/TraceCustomVisualizations.tsx b/frontend/src/components/traces/TraceCustomVisualizations.tsx index ca5ee7c7cead..4f642a8fb33e 100644 --- a/frontend/src/components/traces/TraceCustomVisualizations.tsx +++ b/frontend/src/components/traces/TraceCustomVisualizations.tsx @@ -3,13 +3,13 @@ import GenericVisualizations from "../metrics/GenericVisualization"; import { Select, Card, Space, Form } from "antd"; import { connect } from "react-redux"; -import { StoreState } from "../../reducers"; +import { StoreState } from "../../store/reducers"; import { customMetricsItem, getFilteredTraceMetrics, GlobalTime, TraceFilters, -} from "../../actions"; +} from "../../store/actions"; const { Option } = Select; diff --git a/frontend/src/components/traces/TraceFilter.tsx b/frontend/src/components/traces/TraceFilter.tsx index 154a90bf8dba..84f12fb9934e 100644 --- a/frontend/src/components/traces/TraceFilter.tsx +++ b/frontend/src/components/traces/TraceFilter.tsx @@ -9,8 +9,8 @@ import { fetchTraces, TraceFilters, GlobalTime, -} from "../../actions"; -import { StoreState } from "../../reducers"; +} from "../../store/actions"; +import { StoreState } from "../../store/reducers"; import LatencyModalForm from "./LatencyModalForm"; import { FilterStateDisplay } from "./FilterStateDisplay"; diff --git a/frontend/src/components/traces/TraceGraph.tsx b/frontend/src/components/traces/TraceGraph.tsx index d633b8a51f1e..a1a65c09eb60 100644 --- a/frontend/src/components/traces/TraceGraph.tsx +++ b/frontend/src/components/traces/TraceGraph.tsx @@ -11,8 +11,8 @@ import * as d3Tip from "d3-tip"; import "./TraceGraph.css"; import { spanToTreeUtil } from "../../utils/spanToTree"; -import { fetchTraceItem, spansWSameTraceIDResponse } from "../../actions"; -import { StoreState } from "../../reducers"; +import { fetchTraceItem, spansWSameTraceIDResponse } from "../../store/actions"; +import { StoreState } from "../../store/reducers"; import { TraceGraphColumn } from "./TraceGraphColumn"; import SelectedSpanDetails from "./SelectedSpanDetails"; diff --git a/frontend/src/components/traces/TraceGraphColumn.tsx b/frontend/src/components/traces/TraceGraphColumn.tsx index ac60cd68d83b..48e36d0156f2 100644 --- a/frontend/src/components/traces/TraceGraphColumn.tsx +++ b/frontend/src/components/traces/TraceGraphColumn.tsx @@ -2,8 +2,8 @@ import React from "react"; import { connect } from "react-redux"; import { Table } from "antd"; -import { traceResponseNew, pushDStree } from "../../actions"; -import { StoreState } from "../../reducers"; +import { traceResponseNew, pushDStree } from "../../store/actions"; +import { StoreState } from "../../store/reducers"; interface TraceGraphColumnProps { traces: traceResponseNew; diff --git a/frontend/src/components/traces/TraceList.tsx b/frontend/src/components/traces/TraceList.tsx index 2742daec3f8b..7f0164835c1c 100644 --- a/frontend/src/components/traces/TraceList.tsx +++ b/frontend/src/components/traces/TraceList.tsx @@ -3,8 +3,8 @@ import { connect } from "react-redux"; import { NavLink } from "react-router-dom"; import { Space, Table } from "antd"; -import { traceResponseNew, fetchTraces, pushDStree } from "../../actions"; -import { StoreState } from "../../reducers"; +import { traceResponseNew, fetchTraces, pushDStree } from "../../store/actions"; +import { StoreState } from "../../store/reducers"; import { isOnboardingSkipped } from "../../utils/app"; interface TraceListProps { diff --git a/frontend/src/components/usage/UsageExplorer.tsx b/frontend/src/components/usage/UsageExplorer.tsx index b1171c9f1348..3152e1269389 100644 --- a/frontend/src/components/usage/UsageExplorer.tsx +++ b/frontend/src/components/usage/UsageExplorer.tsx @@ -9,8 +9,8 @@ import { GlobalTime, servicesListItem, usageDataItem, -} from "../../actions"; -import { StoreState } from "../../reducers"; +} from "../../store/actions"; +import { StoreState } from "../../store/reducers"; import moment from "moment"; import { isOnboardingSkipped } from "../../utils/app"; const { Option } = Select; diff --git a/frontend/src/index.tsx b/frontend/src/index.tsx index 629469570f6e..7e5997f08df6 100644 --- a/frontend/src/index.tsx +++ b/frontend/src/index.tsx @@ -1,26 +1,12 @@ import React from "react"; import ReactDOM from "react-dom"; import { Provider } from "react-redux"; -import { createStore, applyMiddleware, compose } from "redux"; import { ThemeSwitcherProvider } from "react-css-theme-switcher"; -import thunk from "redux-thunk"; -// import { NavLink, BrowserRouter as Router, Route, Switch } from 'react-router-dom'; -import { Auth0Provider } from "@auth0/auth0-react"; - +import store from "Src/store"; import AppWrapper from "Src/components/AppWrapper"; import "Src/assets/index.css"; -import { reducers } from "Src/reducers"; import { BrowserRouter as Router } from "react-router-dom"; -import { AUTH0_CLIENT_ID, AUTH0_DOMAIN } from "./constants/env"; -// import Signup from './components/Signup'; -// @ts-ignore -const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; -const store = createStore(reducers, composeEnhancers(applyMiddleware(thunk))); - -const themes = { - dark: `/dark-theme.css`, - light: `/light-theme.css`, -}; +import themes from "Src/themes"; ReactDOM.render( diff --git a/frontend/src/actions/global.ts b/frontend/src/store/actions/global.ts similarity index 100% rename from frontend/src/actions/global.ts rename to frontend/src/store/actions/global.ts diff --git a/frontend/src/actions/index.ts b/frontend/src/store/actions/index.ts similarity index 100% rename from frontend/src/actions/index.ts rename to frontend/src/store/actions/index.ts diff --git a/frontend/src/actions/metrics.ts b/frontend/src/store/actions/metrics.ts similarity index 95% rename from frontend/src/actions/metrics.ts rename to frontend/src/store/actions/metrics.ts index 33177772e0e6..c1592a512ab9 100644 --- a/frontend/src/actions/metrics.ts +++ b/frontend/src/store/actions/metrics.ts @@ -1,9 +1,9 @@ import { Dispatch } from "redux"; -import metricsAPI from "../api/metricsAPI"; +import metricsAPI from "../../api/metricsAPI"; import { GlobalTime } from "./global"; import { ActionTypes } from "./types"; -import { Token } from "../utils/token"; -import { toUTCEpoch } from "../utils/timeUtils"; +import { Token } from "../../utils/token"; +import { toUTCEpoch } from "../../utils/timeUtils"; export interface servicesListItem { serviceName: string; diff --git a/frontend/src/actions/traceFilters.ts b/frontend/src/store/actions/traceFilters.ts similarity index 100% rename from frontend/src/actions/traceFilters.ts rename to frontend/src/store/actions/traceFilters.ts diff --git a/frontend/src/actions/traces.ts b/frontend/src/store/actions/traces.ts similarity index 97% rename from frontend/src/actions/traces.ts rename to frontend/src/store/actions/traces.ts index 58c58c06bd92..b69431221238 100644 --- a/frontend/src/actions/traces.ts +++ b/frontend/src/store/actions/traces.ts @@ -1,8 +1,8 @@ import { ActionTypes } from "./types"; -import tracesAPI from "../api/tracesAPI"; +import tracesAPI from "../../api/tracesAPI"; import { Dispatch } from "redux"; import { GlobalTime } from "./global"; -import { toUTCEpoch } from "../utils/timeUtils"; +import { toUTCEpoch } from "../../utils/timeUtils"; // PNOTE // define trace interface - what it should return diff --git a/frontend/src/actions/types.ts b/frontend/src/store/actions/types.ts similarity index 100% rename from frontend/src/actions/types.ts rename to frontend/src/store/actions/types.ts diff --git a/frontend/src/actions/usage.ts b/frontend/src/store/actions/usage.ts similarity index 89% rename from frontend/src/actions/usage.ts rename to frontend/src/store/actions/usage.ts index 356aa2c3278f..b212bc95336f 100644 --- a/frontend/src/actions/usage.ts +++ b/frontend/src/store/actions/usage.ts @@ -1,8 +1,8 @@ import { Dispatch } from "redux"; -import metricsAPI from "../api/metricsAPI"; +import metricsAPI from "../../api/metricsAPI"; import { ActionTypes } from "./types"; import { GlobalTime } from "./global"; -import { toUTCEpoch } from "../utils/timeUtils"; +import { toUTCEpoch } from "../../utils/timeUtils"; export interface usageDataItem { timestamp: number; diff --git a/frontend/src/store/index.ts b/frontend/src/store/index.ts new file mode 100644 index 000000000000..3846a0107746 --- /dev/null +++ b/frontend/src/store/index.ts @@ -0,0 +1,9 @@ +import { createStore, applyMiddleware, compose } from "redux"; +import reducers from "./reducers"; +import thunk from "redux-thunk"; + +const composeEnhancers = + (window && (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) || compose; +const store = createStore(reducers, composeEnhancers(applyMiddleware(thunk))); + +export default store; diff --git a/frontend/src/reducers/global.ts b/frontend/src/store/reducers/global.ts similarity index 100% rename from frontend/src/reducers/global.ts rename to frontend/src/store/reducers/global.ts diff --git a/frontend/src/reducers/index.ts b/frontend/src/store/reducers/index.ts similarity index 94% rename from frontend/src/reducers/index.ts rename to frontend/src/store/reducers/index.ts index 6d0a3a0814aa..565b8c1d7fec 100644 --- a/frontend/src/reducers/index.ts +++ b/frontend/src/store/reducers/index.ts @@ -34,7 +34,7 @@ export interface StoreState { filteredTraceMetrics: customMetricsItem[]; } -export const reducers = combineReducers({ +const reducers = combineReducers({ traceFilters: traceFiltersReducer, inputTag: inputsReducer, traces: tracesReducer, @@ -46,3 +46,5 @@ export const reducers = combineReducers({ globalTime: updateGlobalTimeReducer, filteredTraceMetrics: filteredTraceMetricsReducer, }); + +export default reducers; diff --git a/frontend/src/reducers/metrics.ts b/frontend/src/store/reducers/metrics.ts similarity index 100% rename from frontend/src/reducers/metrics.ts rename to frontend/src/store/reducers/metrics.ts diff --git a/frontend/src/reducers/traceFilters.ts b/frontend/src/store/reducers/traceFilters.ts similarity index 100% rename from frontend/src/reducers/traceFilters.ts rename to frontend/src/store/reducers/traceFilters.ts diff --git a/frontend/src/reducers/traces.ts b/frontend/src/store/reducers/traces.ts similarity index 100% rename from frontend/src/reducers/traces.ts rename to frontend/src/store/reducers/traces.ts diff --git a/frontend/src/reducers/usage.ts b/frontend/src/store/reducers/usage.ts similarity index 100% rename from frontend/src/reducers/usage.ts rename to frontend/src/store/reducers/usage.ts diff --git a/frontend/src/themes/index.ts b/frontend/src/themes/index.ts new file mode 100644 index 000000000000..9923705da9b0 --- /dev/null +++ b/frontend/src/themes/index.ts @@ -0,0 +1,6 @@ +const themes = { + dark: `/dark-theme.css`, + light: `/light-theme.css`, +}; + +export default themes; \ No newline at end of file diff --git a/frontend/src/utils/spanToTree.ts b/frontend/src/utils/spanToTree.ts index 9f281ff516b2..228796461099 100644 --- a/frontend/src/utils/spanToTree.ts +++ b/frontend/src/utils/spanToTree.ts @@ -1,4 +1,4 @@ -import { pushDStree, span, RefItem } from "../actions"; +import { pushDStree, span, RefItem } from "../store/actions"; // PNOTE - should the data be taken from redux or only through props? - Directly as arguments export const spanToTreeUtil = (spanlist: span[]): pushDStree => {