+
+
+
+
+
(!disableUser && !hasUserFilter && hasUserId) && onUserClick(userId, userAnonymousId)}
+ >
+ {userDisplayName}
+
+
30 Sessions
-
+
+
+
{formatTimeOrDate(startedAt, timezone) }
+
+ {!live && (
+
+ { eventsCount }
+ { eventsCount === 0 || eventsCount > 1 ? 'Events' : 'Event' }
+
+ )}
+
-
+
{ live ? : formattedDuration }
+
+
+
+
+
+
+ {userBrowser} -
+ {userOs} -
+ {userDeviceType}
+
+
+
+
+
-
-
-
- { live ? : formattedDuration }
-
-
-
- {!live && (
-
-
{ eventsCount }
-
+ )
+}
diff --git a/frontend/app/components/shared/SessionItem/SessionMetaList/index.ts b/frontend/app/components/shared/SessionItem/SessionMetaList/index.ts
new file mode 100644
index 000000000..18ad742da
--- /dev/null
+++ b/frontend/app/components/shared/SessionItem/SessionMetaList/index.ts
@@ -0,0 +1 @@
+export { default } from './SessionMetaList';
\ No newline at end of file
diff --git a/frontend/app/components/shared/SessionItem/sessionItem.css b/frontend/app/components/shared/SessionItem/sessionItem.css
index cbf7bb2d1..f7fcde842 100644
--- a/frontend/app/components/shared/SessionItem/sessionItem.css
+++ b/frontend/app/components/shared/SessionItem/sessionItem.css
@@ -12,12 +12,12 @@
user-select: none;
@mixin defaultHover;
border-radius: 3px;
- padding: 10px 10px;
- padding-right: 15px;
- margin-bottom: 15px;
- background-color: white;
- display: flex;
- align-items: center;
+ /* padding: 10px 10px; */
+ /* padding-right: 15px; */
+ /* margin-bottom: 15px; */
+ /* background-color: white; */
+ /* display: flex; */
+ /* align-items: center; */
border: solid thin #EEEEEE;
& .favorite {
diff --git a/frontend/app/routes.js b/frontend/app/routes.js
index cdccc6327..0f10950df 100644
--- a/frontend/app/routes.js
+++ b/frontend/app/routes.js
@@ -82,6 +82,7 @@ const routerOBTabString = `:activeTab(${ Object.values(OB_TABS).join('|') })`;
export const onboarding = (tab = routerOBTabString) => `/onboarding/${ tab }`;
export const sessions = params => queried('/sessions', params);
+export const assist = params => queried('/assist', params);
export const session = (sessionId = ':sessionId', hash) => hashed(`/session/${ sessionId }`, hash);
export const liveSession = (sessionId = ':sessionId', hash) => hashed(`/live/session/${ sessionId }`, hash);
@@ -105,7 +106,7 @@ export const METRICS_QUERY_KEY = 'metrics';
export const SOURCE_QUERY_KEY = 'source';
export const WIDGET_QUERY_KEY = 'widget';
-const REQUIRED_SITE_ID_ROUTES = [ liveSession(''), session(''), sessions(), dashboard(''), error(''), errors(), onboarding(''), funnel(''), funnelIssue(''), ];
+const REQUIRED_SITE_ID_ROUTES = [ liveSession(''), session(''), sessions(), assist(), dashboard(''), error(''), errors(), onboarding(''), funnel(''), funnelIssue(''), ];
const routeNeedsSiteId = path => REQUIRED_SITE_ID_ROUTES.some(r => path.startsWith(r));
const siteIdToUrl = (siteId = ':siteId') => {
if (Array.isArray(siteId)) {
@@ -128,7 +129,7 @@ export function isRoute(route, path){
routeParts.every((p, i) => p.startsWith(':') || p === pathParts[ i ]);
}
-const SITE_CHANGE_AVALIABLE_ROUTES = [ sessions(), dashboard(), errors(), onboarding('')];
+const SITE_CHANGE_AVALIABLE_ROUTES = [ sessions(), assist(), dashboard(), errors(), onboarding('')];
export const siteChangeAvaliable = path => SITE_CHANGE_AVALIABLE_ROUTES.some(r => isRoute(r, path));
diff --git a/frontend/app/types/filter/filter.js b/frontend/app/types/filter/filter.js
index be186e4f9..df31f1d0e 100644
--- a/frontend/app/types/filter/filter.js
+++ b/frontend/app/types/filter/filter.js
@@ -34,6 +34,7 @@ export default Record({
rangeValue,
startDate,
endDate,
+ // groupByUser: true,
sort: 'startTs',
order: 'desc',