From f6db5cd76286af7de78e729e2963ce1fca8d658b Mon Sep 17 00:00:00 2001 From: Shekar Siri Date: Sat, 4 Sep 2021 14:46:09 +0530 Subject: [PATCH] change(ui) - tracker msg --- .../app/components/BugFinder/BugFinder.js | 2 + .../components/Client/Sites/NewSiteForm.js | 10 +++-- .../Session_/EventsBlock/EventsBlock.js | 2 + .../Session_/EventsBlock/UserCard/UserCard.js | 7 +++- .../TrackerUpdateMessage.js | 40 +++++++++++++++++++ .../shared/TrackerUpdateMessage/index.js | 1 + frontend/app/types/session/session.js | 1 + 7 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 frontend/app/components/shared/TrackerUpdateMessage/TrackerUpdateMessage.js create mode 100644 frontend/app/components/shared/TrackerUpdateMessage/index.js diff --git a/frontend/app/components/BugFinder/BugFinder.js b/frontend/app/components/BugFinder/BugFinder.js index 3aa234b26..3ead9f120 100644 --- a/frontend/app/components/BugFinder/BugFinder.js +++ b/frontend/app/components/BugFinder/BugFinder.js @@ -25,6 +25,7 @@ import { LAST_7_DAYS } from 'Types/app/period'; import { resetFunnel } from 'Duck/funnels'; import { resetFunnelFilters } from 'Duck/funnelFilters' import NoSessionsMessage from '../shared/NoSessionsMessage'; +import TrackerUpdateMessage from '../shared/TrackerUpdateMessage'; import LiveSessionList from './LiveSessionList' const AUTOREFRESH_INTERVAL = 10 * 60 * 1000; @@ -151,6 +152,7 @@ export default class BugFinder extends React.PureComponent { />
+
({ @@ -17,6 +18,7 @@ import styles from './siteForm.css'; fetchList, setSiteId }) +@withRouter export default class NewSiteForm extends React.PureComponent { state = { existsError: false, @@ -24,7 +26,7 @@ export default class NewSiteForm extends React.PureComponent { onSubmit = e => { e.preventDefault(); - const { site, siteList } = this.props; + const { site, siteList, location: { pathname } } = this.props; if (!site.exists() && siteList.some(({ name }) => name === site.name)) { return this.setState({ existsError: true }); } @@ -39,7 +41,9 @@ export default class NewSiteForm extends React.PureComponent { const site = sites.last(); this.props.pushNewSite(site) - this.props.setSiteId(site.id) + if (!pathname.includes('/client')) { + this.props.setSiteId(site.id) + } this.props.onClose(null, site) }); } @@ -52,7 +56,7 @@ export default class NewSiteForm extends React.PureComponent { } render() { - const { site, loading, onClose } = this.props; + const { site, loading } = this.props; return (
diff --git a/frontend/app/components/Session_/EventsBlock/EventsBlock.js b/frontend/app/components/Session_/EventsBlock/EventsBlock.js index 53a83aaa9..7c58fc968 100644 --- a/frontend/app/components/Session_/EventsBlock/EventsBlock.js +++ b/frontend/app/components/Session_/EventsBlock/EventsBlock.js @@ -176,6 +176,7 @@ export default class EventsBlock extends React.PureComponent { userNumericHash, userDisplayName, userId, + revId, userAnonymousId }, filteredEvents @@ -191,6 +192,7 @@ export default class EventsBlock extends React.PureComponent { userNumericHash={userNumericHash} userDisplayName={userDisplayName} userId={userId} + revId={revId} userAnonymousId={userAnonymousId} /> diff --git a/frontend/app/components/Session_/EventsBlock/UserCard/UserCard.js b/frontend/app/components/Session_/EventsBlock/UserCard/UserCard.js index ecd072498..2cda675c4 100644 --- a/frontend/app/components/Session_/EventsBlock/UserCard/UserCard.js +++ b/frontend/app/components/Session_/EventsBlock/UserCard/UserCard.js @@ -6,7 +6,7 @@ import Metadata from '../Metadata' import { withRequest } from 'HOCs' import SessionList from '../Metadata/SessionList' -function UserCard({ className, userNumericHash, userDisplayName, similarSessions, userId, userAnonymousId, request, loading }) { +function UserCard({ className, userNumericHash, userDisplayName, similarSessions, userId, userAnonymousId, request, loading, revId }) { const [showUserSessions, setShowUserSessions] = useState(false) const hasUserDetails = !!userId || !!userAnonymousId; @@ -29,6 +29,11 @@ function UserCard({ className, userNumericHash, userDisplayName, similarSessions
+ {revId && ( +
+ RevId: {revId} +
+ )}
diff --git a/frontend/app/components/shared/TrackerUpdateMessage/TrackerUpdateMessage.js b/frontend/app/components/shared/TrackerUpdateMessage/TrackerUpdateMessage.js new file mode 100644 index 000000000..cf3a13ea0 --- /dev/null +++ b/frontend/app/components/shared/TrackerUpdateMessage/TrackerUpdateMessage.js @@ -0,0 +1,40 @@ +import React from 'react' +import { Icon } from 'UI' +import { connect } from 'react-redux' +import { withRouter } from 'react-router-dom'; +import { onboarding as onboardingRoute } from 'App/routes' +import { withSiteId } from 'App/routes'; + +const TrackerUpdateMessage= (props) => { + // const { site } = props; + const { site, sites, match: { params: { siteId } } } = props; + const activeSite = sites.find(s => s.id == siteId); + const hasSessions = !!activeSite && !activeSite.recorded; + const needUpdate = !hasSessions && site.trackerVersion !== window.ENV.TRACKER_VERSION; + return needUpdate ? ( + <> + {( +
+
+
+
+ +
+
+ Please props.history.push(withSiteId(onboardingRoute('installing'), siteId))}>update your tracker (Asayer) to the latest OpenReplay version ({window.ENV.TRACKER_VERSION}) to benefit from all new features we recently shipped. +
+
+
+
+ )} + + ) : '' +} + +export default connect(state => ({ + site: state.getIn([ 'site', 'instance' ]), + sites: state.getIn([ 'site', 'list' ]) +}))(withRouter(TrackerUpdateMessage)) \ No newline at end of file diff --git a/frontend/app/components/shared/TrackerUpdateMessage/index.js b/frontend/app/components/shared/TrackerUpdateMessage/index.js new file mode 100644 index 000000000..b9f95895d --- /dev/null +++ b/frontend/app/components/shared/TrackerUpdateMessage/index.js @@ -0,0 +1 @@ +export { default } from './TrackerUpdateMessage' \ No newline at end of file diff --git a/frontend/app/types/session/session.js b/frontend/app/types/session/session.js index 3926c1901..1fabc79a6 100644 --- a/frontend/app/types/session/session.js +++ b/frontend/app/types/session/session.js @@ -75,6 +75,7 @@ export default Record({ crashes: [], socket: null, isIOS: false, + revId: '' }, { fromJS:({ startTs=0,