feature(dashboard): refactor overview

fix(lint)
This commit is contained in:
Carl-Gerhard Lindesvärd
2025-03-20 09:28:54 +01:00
committed by Carl-Gerhard Lindesvärd
parent b035c0d586
commit a1eb4a296f
83 changed files with 59167 additions and 32403 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -17,11 +17,7 @@ interface Track {
type: 'track';
payload: {
name: string;
properties: {
__referrer: string;
__path: string;
__title: string;
};
properties: Record<string, string>;
};
}
@@ -264,25 +260,159 @@ function insertFakeEvents(events: Event[]) {
}
async function simultaneousRequests() {
const events = require('./mock-basic.json');
const screenView = events[0]!;
const event = JSON.parse(JSON.stringify(events[0]));
event.track.payload.name = 'click_button';
delete event.track.payload.properties.__referrer;
const sessions: {
ip: string;
referrer: string;
userAgent: string;
track: Record<string, string>[];
}[] = [
{
ip: '122.168.1.101',
referrer: 'https://www.google.com',
userAgent:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
track: [
{ name: 'screen_view', path: '/home' },
{ name: 'button_click', element: 'signup' },
{ name: 'screen_view', path: '/pricing' },
],
},
{
ip: '192.168.1.101',
referrer: 'https://www.bing.com',
userAgent:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
track: [{ name: 'screen_view', path: '/landing' }],
},
{
ip: '192.168.1.102',
referrer: 'https://www.google.com',
userAgent:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Safari/605.1.15',
track: [{ name: 'screen_view', path: '/about' }],
},
{
ip: '192.168.1.103',
referrer: '',
userAgent:
'Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Mobile/15E148 Safari/604.1',
track: [
{ name: 'screen_view', path: '/home' },
{ name: 'form_submit', form: 'contact' },
],
},
{
ip: '192.168.1.104',
referrer: '',
userAgent:
'Mozilla/5.0 (Linux; Android 11; SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.120 Mobile Safari/537.36',
track: [{ name: 'screen_view', path: '/products' }],
},
{
ip: '203.0.113.101',
referrer: 'https://www.facebook.com',
userAgent:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0',
track: [
{ name: 'video_play', videoId: 'abc123' },
{ name: 'button_click', element: 'subscribe' },
],
},
{
ip: '203.0.113.55',
referrer: 'https://www.twitter.com',
userAgent:
'Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Mobile/15E148 Safari/604.1',
track: [
{ name: 'screen_view', path: '/blog' },
{ name: 'scroll', depth: '50%' },
],
},
{
ip: '198.51.100.20',
referrer: 'https://www.linkedin.com',
userAgent:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.902.62 Safari/537.36 Edg/92.0.902.62',
track: [{ name: 'button_click', element: 'download' }],
},
{
ip: '198.51.100.21',
referrer: 'https://www.google.com',
userAgent:
'Mozilla/5.0 (Linux; Android 10; SM-A505FN) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.120 Mobile Safari/537.36',
track: [
{ name: 'screen_view', path: '/services' },
{ name: 'button_click', element: 'learn_more' },
],
},
{
ip: '203.0.113.60',
referrer: '',
userAgent:
'Mozilla/5.0 (iPad; CPU OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15A5341f Safari/604.1',
track: [{ name: 'form_submit', form: 'feedback' }],
},
{
ip: '208.22.132.143',
referrer: '',
userAgent:
'Mozilla/5.0 (Linux; arm_64; Android 10; MAR-LX1H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 YaBrowser/20.4.4.24.00 (alpha) SA/0 Mobile Safari/537.36',
track: [
{ name: 'screen_view', path: '/landing' },
{ name: 'screen_view', path: '/pricing' },
{ name: 'screen_view', path: '/blog' },
{ name: 'screen_view', path: '/blog/post-1' },
{ name: 'screen_view', path: '/blog/post-2' },
{ name: 'screen_view', path: '/blog/post-3' },
{ name: 'screen_view', path: '/blog/post-4' },
],
},
{
ip: '34.187.95.236',
referrer: 'https://chatgpt.com',
userAgent:
'Mozilla/5.0 (Linux; U; Android 9; ar-eg; Redmi 7 Build/PKQ1.181021.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36 XiaoMi/MiuiBrowser/12.8.3-gn',
track: [
{ name: 'screen_view', path: '/blog' },
{ name: 'screen_view', path: '/blog/post-1' },
],
},
];
await Promise.all([
trackit(event),
trackit({
...event,
track: {
...event.track,
payload: {
...event.track.payload,
name: 'text',
},
const screenView: Event = {
headers: {
'openpanel-client-id': 'ef38d50e-7d8e-4041-9c62-46d4c3b3bb01',
'x-client-ip': '',
'user-agent': '',
origin: 'https://openpanel.dev',
},
track: {
type: 'track',
payload: {
name: 'screen_view',
properties: {},
},
}),
]);
},
};
for (const session of sessions) {
for (const track of session.track) {
const { name, ...properties } = track;
screenView.track.payload.name = name ?? '';
screenView.track.payload.properties.__referrer = session.referrer ?? '';
if (name === 'screen_view') {
screenView.track.payload.properties.__path =
(screenView.headers.origin ?? '') + (properties.path ?? '');
} else {
screenView.track.payload.name = track.name ?? '';
screenView.track.payload.properties = properties;
}
screenView.headers['x-client-ip'] = session.ip;
screenView.headers['user-agent'] = session.userAgent;
await trackit(screenView);
await new Promise((resolve) => setTimeout(resolve, Math.random() * 5000));
}
}
}
const exit = async () => {
await new Promise((resolve) => setTimeout(resolve, 2000));