feature(dashboard): refactor overview
fix(lint)
This commit is contained in:
committed by
Carl-Gerhard Lindesvärd
parent
b035c0d586
commit
a1eb4a296f
File diff suppressed because it is too large
Load Diff
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user