diff --git a/frontend/app/components/Session_/EventsBlock/EventGroupWrapper.js b/frontend/app/components/Session_/EventsBlock/EventGroupWrapper.js index 499b63c5e..d913d3271 100644 --- a/frontend/app/components/Session_/EventsBlock/EventGroupWrapper.js +++ b/frontend/app/components/Session_/EventsBlock/EventGroupWrapper.js @@ -108,7 +108,7 @@ class EventGroupWrapper extends React.Component { isLastInGroup={isLastInGroup} whiteBg={true} /> - ) : isTabChange ? () : ( + ) : isTabChange ? () : ( - Tab change: - - {from} - - - - {to} - +
+
+ + {from} + + + + {to} + +
+
+ {activeUrl} +
) } diff --git a/frontend/app/components/Session_/EventsBlock/EventsBlock.tsx b/frontend/app/components/Session_/EventsBlock/EventsBlock.tsx index 05ae4e856..ea316c1f9 100644 --- a/frontend/app/components/Session_/EventsBlock/EventsBlock.tsx +++ b/frontend/app/components/Session_/EventsBlock/EventsBlock.tsx @@ -55,6 +55,19 @@ function EventsBlock(props: IProps) { const currentTimeEventIndex = eventListNow.length > 0 ? eventListNow.length - 1 : 0; const usedEvents = React.useMemo(() => { + tabChangeEvents.forEach(ev => { + const urlsList = tabStates[ev.tabId].urlsList; + let found = false; + let i = urlsList.length - 1; + while (!found && i >= 0) { + const item = urlsList[i] + if (item.url && item.time <= ev.mTime) { + found = true; + ev.activeUrl = item.url.replace(/.*\/\/[^\/]*/, ''); + } + i--; + } + }) return mergeEventLists(filteredEvents || notesWithEvents, tabChangeEvents); }, [filteredLength, notesWithEvtsLength]) diff --git a/frontend/app/player/web/MessageManager.ts b/frontend/app/player/web/MessageManager.ts index 8e5bbddc8..b2bd4ae1f 100644 --- a/frontend/app/player/web/MessageManager.ts +++ b/frontend/app/player/web/MessageManager.ts @@ -258,6 +258,7 @@ export default class MessageManager { if (!prevChange || prevChange.tabId !== msg.tabId) { this.tabChangeEvents.push({ tabId: msg.tabId, + mTime: msg.time, timestamp: this.sessionStart + msg.time, toTab: mapTabs(this.tabs)[msg.tabId], fromTab: prevChange?.tabId ? mapTabs(this.tabs)[prevChange.tabId] : '', diff --git a/frontend/app/player/web/TabManager.ts b/frontend/app/player/web/TabManager.ts index 512b73a37..fe69b5513 100644 --- a/frontend/app/player/web/TabManager.ts +++ b/frontend/app/player/web/TabManager.ts @@ -41,8 +41,8 @@ export default class TabSessionManager { location: '', } + public locationManager: ListWalker = new ListWalker(); private locationEventManager: ListWalker/**/ = new ListWalker(); - private locationManager: ListWalker = new ListWalker(); private loadedLocationManager: ListWalker = new ListWalker(); private connectionInfoManger: ListWalker = new ListWalker(); private performanceTrackManager: PerformanceTrackManager = new PerformanceTrackManager(); @@ -311,6 +311,7 @@ export default class TabSessionManager { const stateToUpdate : Partial> = { performanceChartData: this.performanceTrackManager.chartData, performanceAvailability: this.performanceTrackManager.availability, + urlsList: this.locationManager.list, ...this.lists.getFullListsState(), }