2020-09-24 04:47:37 +00:00
|
|
|
import React from "react";
|
2019-12-16 08:49:10 +00:00
|
|
|
import { Route } from "react-router-dom";
|
2020-03-11 13:59:46 +00:00
|
|
|
import AnalyticsUtil from "utils/AnalyticsUtil";
|
2020-08-28 17:23:07 +00:00
|
|
|
import * as Sentry from "@sentry/react";
|
2020-09-24 04:47:37 +00:00
|
|
|
import { connect } from "react-redux";
|
2020-09-21 12:17:08 +00:00
|
|
|
import { getThemeDetails } from "selectors/themeSelectors";
|
2020-09-21 13:08:57 +00:00
|
|
|
import { AppState } from "reducers";
|
|
|
|
|
import { ThemeMode } from "reducers/uiReducers/themeReducer";
|
|
|
|
|
import { setThemeMode } from "actions/themeActions";
|
2020-08-28 17:23:07 +00:00
|
|
|
const SentryRoute = Sentry.withSentryRouting(Route);
|
2019-12-23 12:16:33 +00:00
|
|
|
|
2020-09-21 13:08:57 +00:00
|
|
|
class AppRouteWithoutProps extends React.Component<{
|
|
|
|
|
currentTheme: any;
|
2020-03-11 13:59:46 +00:00
|
|
|
path?: string;
|
2020-09-21 13:25:58 +00:00
|
|
|
component: React.ReactType;
|
2019-11-22 14:02:55 +00:00
|
|
|
exact?: boolean;
|
2020-03-11 13:59:46 +00:00
|
|
|
logDisable?: boolean;
|
|
|
|
|
name: string;
|
|
|
|
|
location?: any;
|
2020-09-21 13:08:57 +00:00
|
|
|
setTheme: Function;
|
|
|
|
|
}> {
|
|
|
|
|
componentDidUpdate() {
|
|
|
|
|
if (!this.props.logDisable) {
|
2020-03-11 13:59:46 +00:00
|
|
|
AnalyticsUtil.logEvent("NAVIGATE_EDITOR", {
|
2020-09-21 13:08:57 +00:00
|
|
|
page: this.props.name,
|
|
|
|
|
path: this.props.location.pathname,
|
2020-03-11 13:59:46 +00:00
|
|
|
});
|
|
|
|
|
}
|
2020-09-21 13:08:57 +00:00
|
|
|
}
|
|
|
|
|
render() {
|
|
|
|
|
const { component: Component, currentTheme, ...rest } = this.props;
|
2020-09-21 12:17:08 +00:00
|
|
|
|
2020-09-21 13:08:57 +00:00
|
|
|
if (
|
|
|
|
|
window.location.pathname === "/applications" ||
|
|
|
|
|
window.location.pathname.indexOf("/settings/") !== -1
|
|
|
|
|
) {
|
|
|
|
|
document.body.style.backgroundColor =
|
|
|
|
|
currentTheme.colors.homepageBackground;
|
|
|
|
|
} else {
|
2020-09-21 13:25:58 +00:00
|
|
|
document.body.style.backgroundColor = currentTheme.colors.appBackground;
|
2020-09-21 13:08:57 +00:00
|
|
|
}
|
|
|
|
|
return (
|
|
|
|
|
<SentryRoute
|
|
|
|
|
{...rest}
|
|
|
|
|
render={props => {
|
|
|
|
|
return <Component {...props} />;
|
|
|
|
|
}}
|
|
|
|
|
/>
|
|
|
|
|
);
|
2020-09-21 12:17:08 +00:00
|
|
|
}
|
2020-09-21 13:08:57 +00:00
|
|
|
}
|
|
|
|
|
const mapStateToProps = (state: AppState) => ({
|
|
|
|
|
currentTheme: getThemeDetails(state).theme,
|
|
|
|
|
});
|
|
|
|
|
const mapDispatchToProps = (dispatch: any) => ({
|
|
|
|
|
setTheme: (mode: ThemeMode) => {
|
|
|
|
|
dispatch(setThemeMode(mode));
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const AppRoute = connect(
|
|
|
|
|
mapStateToProps,
|
|
|
|
|
mapDispatchToProps,
|
|
|
|
|
)(AppRouteWithoutProps);
|
2019-09-02 14:50:01 +00:00
|
|
|
|
2020-09-21 13:08:57 +00:00
|
|
|
(AppRoute as any).whyDidYouRender = {
|
Feature/entity browse (#220)
# New Feature: Entity Explorer
- Entities are actions (apis and queries), datasources, pages, and widgets
- With this new feature, all entities in the application will be available
to view in the new entity explorer sidebar
- All existing application features from the api sidebar, query sidebar, datasource sidebar and pages sidebar
now are avialable on the entity explorer sidebar
- Users are now able to quickly switch to any entity in the application from the entity explorer sidebar.
- Users can also search all entities in the application from the new sidebar. Use cmd + f or ctrl + f to focus on the search input
- Users can rename entities from the new sidebar
- Users can also perform contextual actions on these entities like set a page as home page, copy/move actions, delete entity, etc from the context menu available alongside the entities in the sidebar
- Users can view the properties of the entities in the sidebar, as well as copy bindings to use in the application.
2020-08-10 08:52:45 +00:00
|
|
|
logOnDifferentValues: false,
|
|
|
|
|
};
|
|
|
|
|
|
2020-03-11 13:59:46 +00:00
|
|
|
export default AppRoute;
|