From 4ee98cec8da06fcd69632d07526810f9cdbe50e0 Mon Sep 17 00:00:00 2001 From: eagleon Date: Wed, 18 Sep 2024 15:53:23 +0800 Subject: [PATCH] func(session): add IP address to the list of seesion --- .../sessions/[sessionId]/SessionInfo.tsx | 8 +++++++- src/assets/ip.svg | 14 ++++++++++++++ src/components/icons.ts | 2 ++ src/components/messages.ts | 1 + .../analytics/sessions/getWebsiteSession.ts | 4 ++-- 5 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 src/assets/ip.svg diff --git a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionInfo.tsx b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionInfo.tsx index 6f9a8f3d5..32317b072 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionInfo.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/[sessionId]/SessionInfo.tsx @@ -46,7 +46,13 @@ export default function SessionInfo({ data }) { {data?.city} - +
{formatMessage(labels.ip)}
+
+ + + + {data?.ip} +
{formatMessage(labels.os)}
diff --git a/src/assets/ip.svg b/src/assets/ip.svg new file mode 100644 index 000000000..c06a7f435 --- /dev/null +++ b/src/assets/ip.svg @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/src/components/icons.ts b/src/components/icons.ts index 422f042ab..cbc140f62 100644 --- a/src/components/icons.ts +++ b/src/components/icons.ts @@ -24,6 +24,7 @@ import Sun from 'assets/sun.svg'; import User from 'assets/user.svg'; import Users from 'assets/users.svg'; import Visitor from 'assets/visitor.svg'; +import IP from 'assets/ip.svg'; const icons = { ...Icons, @@ -52,6 +53,7 @@ const icons = { User, Users, Visitor, + IP, }; export default icons; diff --git a/src/components/messages.ts b/src/components/messages.ts index f711a4f6c..83fdb0abf 100644 --- a/src/components/messages.ts +++ b/src/components/messages.ts @@ -217,6 +217,7 @@ export const labels = defineMessages({ country: { id: 'label.country', defaultMessage: 'Country' }, region: { id: 'label.region', defaultMessage: 'Region' }, city: { id: 'label.city', defaultMessage: 'City' }, + ip: { id: 'label.ip', defaultMessage: 'IP' }, browser: { id: 'label.browser', defaultMessage: 'Browser' }, device: { id: 'label.device', defaultMessage: 'Device' }, pageTitle: { id: 'label.pageTitle', defaultMessage: 'Page title' }, diff --git a/src/queries/analytics/sessions/getWebsiteSession.ts b/src/queries/analytics/sessions/getWebsiteSession.ts index 261985921..5eaf610a8 100644 --- a/src/queries/analytics/sessions/getWebsiteSession.ts +++ b/src/queries/analytics/sessions/getWebsiteSession.ts @@ -54,8 +54,8 @@ async function relationalQuery(websiteId: string, sessionId: string) { join website_event on website_event.session_id = session.session_id where session.website_id = {{websiteId::uuid}} and session.session_id = {{sessionId::uuid}} - group by session.session_id, visit_id, session.website_id, session.hostname, session.browser, session.os, session.device, session.screen, session.language, session.country, session.subdivision1, session.city) t - group by id, website_id, hostname, browser, os, device, screen, language, country, subdivision1, city; + group by session.session_id, visit_id, session.website_id, session.hostname, session.browser, session.os, session.device, session.screen, session.language, session.country, session.subdivision1, session.city, session.ip) t + group by id, website_id, hostname, browser, os, device, screen, language, country, subdivision1, city, ip; `, { websiteId, sessionId }, ).then(result => result?.[0]);