mirror of
https://github.com/umami-software/umami.git
synced 2026-02-04 04:37:11 +01:00
feat(sessions): add referrer to session modal
Display the initial referrer in the Session modal properties grid. Fetches the referrer from the session's first event to show where the user originally came from.
This commit is contained in:
parent
a19b92a5cb
commit
1c4ca3b6c7
2 changed files with 19 additions and 2 deletions
|
|
@ -2,6 +2,7 @@ import { ReactNode } from 'react';
|
||||||
import { Icon, Grid, Column, Row, Label } from '@umami/react-zen';
|
import { Icon, Grid, Column, Row, Label } from '@umami/react-zen';
|
||||||
import { useFormat, useLocale, useMessages, useRegionNames } from '@/components/hooks';
|
import { useFormat, useLocale, useMessages, useRegionNames } from '@/components/hooks';
|
||||||
import { TypeIcon } from '@/components/common/TypeIcon';
|
import { TypeIcon } from '@/components/common/TypeIcon';
|
||||||
|
import { Favicon } from '@/components/common/Favicon';
|
||||||
import { KeyRound, Calendar, MapPin, Landmark } from '@/components/icons';
|
import { KeyRound, Calendar, MapPin, Landmark } from '@/components/icons';
|
||||||
import { DateDistance } from '@/components/common/DateDistance';
|
import { DateDistance } from '@/components/common/DateDistance';
|
||||||
|
|
||||||
|
|
@ -60,6 +61,10 @@ export function SessionInfo({ data }) {
|
||||||
>
|
>
|
||||||
{formatValue(data?.device, 'device')}
|
{formatValue(data?.device, 'device')}
|
||||||
</Info>
|
</Info>
|
||||||
|
|
||||||
|
<Info label={formatMessage(labels.referrer)} icon={<Favicon domain={data?.referrerDomain} />}>
|
||||||
|
{data?.referrerDomain}
|
||||||
|
</Info>
|
||||||
</Grid>
|
</Grid>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,13 @@ async function relationalQuery(websiteId: string, sessionId: string) {
|
||||||
count(distinct visit_id) as visits,
|
count(distinct visit_id) as visits,
|
||||||
sum(views) as views,
|
sum(views) as views,
|
||||||
sum(events) as events,
|
sum(events) as events,
|
||||||
sum(${getTimestampDiffSQL('min_time', 'max_time')}) as "totaltime"
|
sum(${getTimestampDiffSQL('min_time', 'max_time')}) as "totaltime",
|
||||||
|
(select referrer_domain
|
||||||
|
from website_event
|
||||||
|
where website_id = {{websiteId::uuid}}
|
||||||
|
and session_id = {{sessionId::uuid}}
|
||||||
|
order by created_at asc
|
||||||
|
limit 1) as "referrerDomain"
|
||||||
from (select
|
from (select
|
||||||
session.session_id as id,
|
session.session_id as id,
|
||||||
session.distinct_id,
|
session.distinct_id,
|
||||||
|
|
@ -83,7 +89,13 @@ async function clickhouseQuery(websiteId: string, sessionId: string) {
|
||||||
uniq(visit_id) visits,
|
uniq(visit_id) visits,
|
||||||
sum(views) as views,
|
sum(views) as views,
|
||||||
sum(events) as events,
|
sum(events) as events,
|
||||||
sum(max_time-min_time) as totaltime
|
sum(max_time-min_time) as totaltime,
|
||||||
|
(select referrer_domain
|
||||||
|
from website_event
|
||||||
|
where website_id = {websiteId:UUID}
|
||||||
|
and session_id = {sessionId:UUID}
|
||||||
|
order by created_at asc
|
||||||
|
limit 1) as referrerDomain
|
||||||
from (select
|
from (select
|
||||||
session_id as id,
|
session_id as id,
|
||||||
distinct_id as distinctId,
|
distinct_id as distinctId,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue