diff --git a/frontend/app/components/shared/SessionsTabOverview/SessionsTabOverview.tsx b/frontend/app/components/shared/SessionsTabOverview/SessionsTabOverview.tsx
index e8bbca617..58c49b61a 100644
--- a/frontend/app/components/shared/SessionsTabOverview/SessionsTabOverview.tsx
+++ b/frontend/app/components/shared/SessionsTabOverview/SessionsTabOverview.tsx
@@ -37,9 +37,11 @@ function SessionsTabOverview() {
) : null}
-
{!isNotesRoute ? (
-
+ <>
+
+
+ >
) : (
)}
diff --git a/frontend/app/components/shared/SessionsTabOverview/components/LatestSessionsMessage/LatestSessionsMessage.tsx b/frontend/app/components/shared/SessionsTabOverview/components/LatestSessionsMessage/LatestSessionsMessage.tsx
index 4215b9344..03b55e3b1 100644
--- a/frontend/app/components/shared/SessionsTabOverview/components/LatestSessionsMessage/LatestSessionsMessage.tsx
+++ b/frontend/app/components/shared/SessionsTabOverview/components/LatestSessionsMessage/LatestSessionsMessage.tsx
@@ -7,11 +7,16 @@ import { observer } from 'mobx-react-lite';
function LatestSessionsMessage() {
const { searchStore } = useStore();
const count = searchStore.latestList.size;
+
+ const onShowNewSessions = () => {
+ void searchStore.updateCurrentPage(1, true);
+ };
+
return count > 0 ? (
searchStore.updateCurrentPage(1)}
+ onClick={onShowNewSessions}
>
Show {numberWithCommas(count)} New {count > 1 ? 'Sessions' : 'Session'}
diff --git a/frontend/app/mstore/searchStore.ts b/frontend/app/mstore/searchStore.ts
index 8ce0a0c14..87dca78c2 100644
--- a/frontend/app/mstore/searchStore.ts
+++ b/frontend/app/mstore/searchStore.ts
@@ -162,15 +162,14 @@ class SearchStore {
});
}
- updateCurrentPage(page: number) {
+ updateCurrentPage(page: number, force = false) {
this.currentPage = page;
- void this.fetchSessions();
+ void this.fetchSessions(force);
}
setActiveTab(tab: string) {
runInAction(() => {
this.activeTab = TAB_MAP[tab];
- this.currentPage = 1;
});
}
@@ -233,8 +232,9 @@ class SearchStore {
filter.endTimestamp = newTimestamps.endDate;
}
searchService.checkLatestSessions(filter).then((response: any) => {
- this.latestList = response;
- this.latestRequestTime = Date.now();
+ runInAction(() => {
+ this.latestList = List(response);
+ });
});
}
@@ -265,7 +265,7 @@ class SearchStore {
}
if (filter.value && filter.value[0] && filter.value[0] !== '') {
- this.fetchSessions();
+ void this.fetchSessions();
}
}
@@ -336,6 +336,8 @@ class SearchStore {
filter.filters = filter.filters.concat(tagFilter);
}
+ this.latestRequestTime = Date.now();
+
await sessionStore.fetchSessions({
...filter,
page: this.currentPage,
diff --git a/frontend/app/mstore/sessionStore.ts b/frontend/app/mstore/sessionStore.ts
index c01c8ae7d..2a9d12cbc 100644
--- a/frontend/app/mstore/sessionStore.ts
+++ b/frontend/app/mstore/sessionStore.ts
@@ -170,7 +170,7 @@ export default class SessionStore {
}
const nextEntryNum =
keys.length > 0
- ? Math.max(...keys.map((key) => this.prefetchedMobUrls[key].entryNum || 0)) + 1
+ ? Math.max(...keys.map((key) => this.prefetchedMobUrls[key]?.entryNum || 0)) + 1
: 0;
this.prefetchedMobUrls[sessionId] = {
data: fileData,