diff --git a/frontend/app/components/Dashboard/components/WidgetWrapper/WidgetWrapper.tsx b/frontend/app/components/Dashboard/components/WidgetWrapper/WidgetWrapper.tsx
index bb47dbc98..6bb9ca875 100644
--- a/frontend/app/components/Dashboard/components/WidgetWrapper/WidgetWrapper.tsx
+++ b/frontend/app/components/Dashboard/components/WidgetWrapper/WidgetWrapper.tsx
@@ -63,6 +63,7 @@ function WidgetWrapper(props: Props) {
const onChartClick = () => {
if (!isWidget || widget.metricType === 'predefined') return;
+
props.history.push(withSiteId(dashboardMetricDetails(dashboardId, widget.metricId),siteId));
}
diff --git a/frontend/app/components/Funnels/FunnelDetails/FunnelDetails.js b/frontend/app/components/Funnels/FunnelDetails/FunnelDetails.js
index 48142ef13..17078976c 100644
--- a/frontend/app/components/Funnels/FunnelDetails/FunnelDetails.js
+++ b/frontend/app/components/Funnels/FunnelDetails/FunnelDetails.js
@@ -143,7 +143,7 @@ export default connect((state, props) => {
funnelId: props.match.params.funnelId,
activeStages: state.getIn(['funnels', 'activeStages']),
funnelFilters: state.getIn(['funnels', 'funnelFilters']),
- siteId: state.getIn([ 'user', 'siteId' ]),
+ siteId: state.getIn([ 'site', 'siteId' ]),
liveFilters: state.getIn(['funnelFilters', 'appliedFilter']),
}
}, {
diff --git a/frontend/app/components/Funnels/FunnelHeader/FunnelDropdown.js b/frontend/app/components/Funnels/FunnelHeader/FunnelDropdown.js
index 87f7983b7..a5b3bf445 100644
--- a/frontend/app/components/Funnels/FunnelHeader/FunnelDropdown.js
+++ b/frontend/app/components/Funnels/FunnelHeader/FunnelDropdown.js
@@ -33,5 +33,5 @@ function FunnelDropdown(props) {
export default connect((state, props) => ({
funnels: state.getIn(['funnels', 'list']),
funnel: state.getIn(['funnels', 'instance']),
- siteId: state.getIn([ 'user', 'siteId' ]),
+ siteId: state.getIn([ 'site', 'siteId' ]),
}), { })(withRouter(FunnelDropdown))
diff --git a/frontend/app/components/Funnels/FunnelIssueDetails/FunnelIssueDetails.js b/frontend/app/components/Funnels/FunnelIssueDetails/FunnelIssueDetails.js
index 6672bc580..77017e4ac 100644
--- a/frontend/app/components/Funnels/FunnelIssueDetails/FunnelIssueDetails.js
+++ b/frontend/app/components/Funnels/FunnelIssueDetails/FunnelIssueDetails.js
@@ -39,5 +39,5 @@ export default connect((state, props) => ({
issue: state.getIn(['funnels', 'issue']),
issueId: props.match.params.issueId,
funnelId: props.match.params.funnelId,
- siteId: state.getIn([ 'user', 'siteId' ]),
+ siteId: state.getIn([ 'site', 'siteId' ]),
}), { fetchIssue, setNavRef, resetIssue })(withRouter(FunnelIssueDetails))
diff --git a/frontend/app/components/Funnels/FunnelIssues/FunnelIssues.js b/frontend/app/components/Funnels/FunnelIssues/FunnelIssues.js
index b46ef824d..036565d60 100644
--- a/frontend/app/components/Funnels/FunnelIssues/FunnelIssues.js
+++ b/frontend/app/components/Funnels/FunnelIssues/FunnelIssues.js
@@ -73,7 +73,7 @@ export default connect(state => ({
list: state.getIn(['funnels', 'issues']),
criticalIssuesCount: state.getIn(['funnels', 'criticalIssuesCount']),
loading: state.getIn(['funnels', 'fetchIssuesRequest', 'loading']),
- siteId: state.getIn([ 'user', 'siteId' ]),
+ siteId: state.getIn([ 'site', 'siteId' ]),
funnel: state.getIn(['funnels', 'instance']),
activeStages: state.getIn(['funnels', 'activeStages']),
funnelFilters: state.getIn(['funnels', 'funnelFilters']),
diff --git a/frontend/app/components/Funnels/FunnelList/FunnelList.js b/frontend/app/components/Funnels/FunnelList/FunnelList.js
index f7e3c70de..c96ef2e74 100644
--- a/frontend/app/components/Funnels/FunnelList/FunnelList.js
+++ b/frontend/app/components/Funnels/FunnelList/FunnelList.js
@@ -28,5 +28,5 @@ function FunnelList(props) {
export default connect(state => ({
list: state.getIn(['funnels', 'list']),
- siteId: state.getIn([ 'user', 'siteId' ]),
+ siteId: state.getIn([ 'site', 'siteId' ]),
}))(withRouter(FunnelList))
diff --git a/frontend/app/components/Header/Header.js b/frontend/app/components/Header/Header.js
index 9b8819cdc..f3aa726d1 100644
--- a/frontend/app/components/Header/Header.js
+++ b/frontend/app/components/Header/Header.js
@@ -151,7 +151,7 @@ export default withRouter(connect(
state => ({
account: state.getIn([ 'user', 'account' ]),
appearance: state.getIn([ 'user', 'account', 'appearance' ]),
- siteId: state.getIn([ 'user', 'siteId' ]),
+ siteId: state.getIn([ 'site', 'siteId' ]),
sites: state.getIn([ 'site', 'list' ]),
showAlerts: state.getIn([ 'dashboard', 'showAlerts' ]),
boardingCompletion: state.getIn([ 'dashboard', 'boardingCompletion' ])
diff --git a/frontend/app/components/Header/OnboardingExplore/OnboardingExplore.js b/frontend/app/components/Header/OnboardingExplore/OnboardingExplore.js
index c6d7aa179..d143a6bbd 100644
--- a/frontend/app/components/Header/OnboardingExplore/OnboardingExplore.js
+++ b/frontend/app/components/Header/OnboardingExplore/OnboardingExplore.js
@@ -37,7 +37,7 @@ const styles = {
};
@connect(state => ({
- siteId: state.getIn([ 'user', 'siteId' ]),
+ siteId: state.getIn([ 'site', 'siteId' ]),
boarding: state.getIn([ 'dashboard', 'boarding' ]),
boardingCompletion: state.getIn([ 'dashboard', 'boardingCompletion' ]),
}), {
diff --git a/frontend/app/components/Header/SiteDropdown.js b/frontend/app/components/Header/SiteDropdown.js
index 4f8b9ca60..38fe6ec57 100644
--- a/frontend/app/components/Header/SiteDropdown.js
+++ b/frontend/app/components/Header/SiteDropdown.js
@@ -1,5 +1,5 @@
import { connect } from 'react-redux';
-import { setSiteId } from 'Duck/user';
+import { setSiteId } from 'Duck/site';
import { withRouter } from 'react-router-dom';
import { hasSiteId, siteChangeAvaliable } from 'App/routes';
import { STATUS_COLOR_MAP, GREEN } from 'Types/site';
@@ -19,7 +19,7 @@ import { withStore } from 'App/mstore'
@withRouter
@connect(state => ({
sites: state.getIn([ 'site', 'list' ]),
- siteId: state.getIn([ 'user', 'siteId' ]),
+ siteId: state.getIn([ 'site', 'siteId' ]),
account: state.getIn([ 'user', 'account' ]),
}), {
setSiteId,
diff --git a/frontend/app/components/Session/Layout/ToolPanel/StackEvents.js b/frontend/app/components/Session/Layout/ToolPanel/StackEvents.js
index 0c10a38d1..6298a8a2e 100644
--- a/frontend/app/components/Session/Layout/ToolPanel/StackEvents.js
+++ b/frontend/app/components/Session/Layout/ToolPanel/StackEvents.js
@@ -66,7 +66,7 @@ function StackEvents({
export default connect(state => ({
hintIsHidden: state.getIn(['components', 'player', 'hiddenHints', 'stack']) ||
- !state.getIn([ 'user', 'client', 'sites' ]).some(s => s.stackIntegrations),
+ !state.getIn([ 'site', 'list' ]).some(s => s.stackIntegrations),
}), {
hideHint
})(StackEvents);
\ No newline at end of file
diff --git a/frontend/app/components/Session_/Player/Overlay/AutoplayTimer.tsx b/frontend/app/components/Session_/Player/Overlay/AutoplayTimer.tsx
index 91ce53722..7bb72c475 100644
--- a/frontend/app/components/Session_/Player/Overlay/AutoplayTimer.tsx
+++ b/frontend/app/components/Session_/Player/Overlay/AutoplayTimer.tsx
@@ -52,6 +52,6 @@ function AutoplayTimer({ nextId, siteId, history }) {
export default withRouter(connect(state => ({
- siteId: state.getIn([ 'user', 'siteId' ]),
+ siteId: state.getIn([ 'site', 'siteId' ]),
nextId: parseInt(state.getIn([ 'sessions', 'nextId' ])),
}))(AutoplayTimer))
diff --git a/frontend/app/components/Session_/PlayerBlockHeader.js b/frontend/app/components/Session_/PlayerBlockHeader.js
index abf94e11c..58a524022 100644
--- a/frontend/app/components/Session_/PlayerBlockHeader.js
+++ b/frontend/app/components/Session_/PlayerBlockHeader.js
@@ -41,7 +41,7 @@ const ASSIST_ROUTE = assistRoute();
issuesFetched: state.getIn([ 'issues', 'issuesFetched' ]),
local: state.getIn(['sessions', 'timezone']),
funnelRef: state.getIn(['funnels', 'navRef']),
- siteId: state.getIn([ 'user', 'siteId' ]),
+ siteId: state.getIn([ 'site', 'siteId' ]),
metaList: state.getIn(['customFields', 'list']).map(i => i.key),
closedLive: !!state.getIn([ 'sessions', 'errors' ]) || (isAssist && !session.live),
}
diff --git a/frontend/app/components/Session_/StackEvents/StackEvents.js b/frontend/app/components/Session_/StackEvents/StackEvents.js
index 7145bf7fd..79c1e9c72 100644
--- a/frontend/app/components/Session_/StackEvents/StackEvents.js
+++ b/frontend/app/components/Session_/StackEvents/StackEvents.js
@@ -1,5 +1,5 @@
import { connect } from 'react-redux';
-import { connectPlayer } from 'Player';
+import { connectPlayer, jump } from 'Player';
import { NoContent, Tabs } from 'UI';
import withEnumToggle from 'HOCs/withEnumToggle';
import { hideHint } from 'Duck/components/player';
@@ -18,7 +18,7 @@ const TABS = [ ALL, ...typeList ].map(tab =>({ text: tab, key: tab }));
}))
@connect(state => ({
hintIsHidden: state.getIn(['components', 'player', 'hiddenHints', 'stack']) ||
- !state.getIn([ 'user', 'client', 'sites' ]).some(s => s.stackIntegrations),
+ !state.getIn([ 'site', 'list' ]).some(s => s.stackIntegrations),
}), {
hideHint
})
@@ -66,7 +66,11 @@ export default class StackEvents extends React.PureComponent {
>
{ filteredStackEvents.map(userEvent => (
-
+ jump(userEvent.time) }
+ />
))}
diff --git a/frontend/app/components/Session_/StackEvents/UserEvent/UserEvent.js b/frontend/app/components/Session_/StackEvents/UserEvent/UserEvent.js
index 93a901f0a..9c0e66816 100644
--- a/frontend/app/components/Session_/StackEvents/UserEvent/UserEvent.js
+++ b/frontend/app/components/Session_/StackEvents/UserEvent/UserEvent.js
@@ -1,6 +1,6 @@
import cn from 'classnames';
import { OPENREPLAY, SENTRY, DATADOG, STACKDRIVER } from 'Types/session/stackEvent';
-import { Modal, Icon, SlideModal } from 'UI';
+import { Modal, Icon, SlideModal, IconButton } from 'UI';
import withToggle from 'HOCs/withToggle';
import Sentry from './Sentry';
import JsonViewer from './JsonViewer';
@@ -54,34 +54,42 @@ export default class UserEvent extends React.PureComponent {
return !!this.props.userEvent.payload;
}
+ onClickDetails = (e) => {
+ e.stopPropagation();
+ this.props.switchOpen();
+ }
+
renderContent(modalTrigger) {
const { userEvent } = this.props;
//const message = this.getEventMessage();
return (
-
-
-
- { userEvent.name }
-
- { /* message &&
-
- { message }
-
*/
- }
-
+ // onClick={ this.props.switchOpen } //
+ onClick={ this.props.onJump } //
+ className={
+ cn(
+ "group",
+ stl.userEvent,
+ this.getLevelClassname(),
+ { [ stl.modalTrigger ]: modalTrigger }
+ )
+ }
+ >
+
+
+
+ { userEvent.name }
+
+ { /* message &&
+
+ { message }
+
*/
+ }
+
+
+
+
);
}
@@ -91,15 +99,15 @@ export default class UserEvent extends React.PureComponent {
if (this.ifNeedModal()) {
return (
-
- { this.renderContent(true) }
-
+
+ { this.renderContent(true) }
+
//
@withRouter
@connect((state, props) => ({
urlSiteId: props.match.params.siteId,
- siteId: state.getIn([ 'user', 'siteId' ]),
+ siteId: state.getIn([ 'site', 'siteId' ]),
}), {
setSiteId,
})
diff --git a/frontend/app/components/hocs/withSiteIdUpdater.js b/frontend/app/components/hocs/withSiteIdUpdater.js
index 67a7dbc60..9319474ca 100644
--- a/frontend/app/components/hocs/withSiteIdUpdater.js
+++ b/frontend/app/components/hocs/withSiteIdUpdater.js
@@ -1,11 +1,11 @@
import { connect } from 'react-redux';
import { withSiteId } from 'App/routes';
-import { setSiteId } from 'Duck/user';
+import { setSiteId } from 'Duck/site';
export default BaseComponent =>
@connect((state, props) => ({
urlSiteId: props.match.params.siteId,
- siteId: state.getIn([ 'user', 'siteId' ]),
+ siteId: state.getIn([ 'site', 'siteId' ]),
}), {
setSiteId,
})
diff --git a/frontend/app/components/shared/SessionItem/SessionItem.js b/frontend/app/components/shared/SessionItem/SessionItem.js
index 64e4199ba..35434cf76 100644
--- a/frontend/app/components/shared/SessionItem/SessionItem.js
+++ b/frontend/app/components/shared/SessionItem/SessionItem.js
@@ -28,7 +28,7 @@ const SESSIONS_ROUTE = sessionsRoute();
// )
@connect(state => ({
timezone: state.getIn(['sessions', 'timezone']),
- siteId: state.getIn([ 'user', 'siteId' ]),
+ siteId: state.getIn([ 'site', 'siteId' ]),
}), { toggleFavorite, setSessionPath })
@withRouter
export default class SessionItem extends React.PureComponent {
diff --git a/frontend/app/components/shared/SiteDropdown/SiteDropdown.js b/frontend/app/components/shared/SiteDropdown/SiteDropdown.js
index b83178512..5fc482389 100644
--- a/frontend/app/components/shared/SiteDropdown/SiteDropdown.js
+++ b/frontend/app/components/shared/SiteDropdown/SiteDropdown.js
@@ -5,7 +5,7 @@ const SiteDropdown = ({ contextName="", sites, onChange, value }) => {
const options = sites.map(site => ({ value: site.id, text: site.host })).toJS();
return (