Added map to sessions page.

This commit is contained in:
Mike Cao 2024-08-13 00:56:41 -07:00
parent 9b005e11c0
commit af64602951
4 changed files with 17 additions and 4 deletions

View File

@ -2,12 +2,17 @@
import WebsiteHeader from '../WebsiteHeader'; import WebsiteHeader from '../WebsiteHeader';
import SessionsDataTable from './SessionsDataTable'; import SessionsDataTable from './SessionsDataTable';
import SessionsMetricsBar from './SessionsMetricsBar'; import SessionsMetricsBar from './SessionsMetricsBar';
import WorldMap from 'components/metrics/WorldMap';
import { GridRow } from 'components/layout/Grid';
export function SessionsPage({ websiteId }) { export function SessionsPage({ websiteId }) {
return ( return (
<> <>
<WebsiteHeader websiteId={websiteId} /> <WebsiteHeader websiteId={websiteId} />
<SessionsMetricsBar websiteId={websiteId} /> <SessionsMetricsBar websiteId={websiteId} />
<GridRow columns="one">
<WorldMap websiteId={websiteId} style={{ width: 800, margin: '0 auto' }} />
</GridRow>
<SessionsDataTable websiteId={websiteId} /> <SessionsDataTable websiteId={websiteId} />
</> </>
); );

View File

@ -14,7 +14,13 @@ export function useTimezone() {
}; };
const formatDate = (date: string, pattern: string) => { const formatDate = (date: string, pattern: string) => {
return formatInTimeZone(date.split(' ').join('T') + 'Z', timezone, pattern); return formatInTimeZone(
/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$/.test(date)
? date
: date.split(' ').join('T') + 'Z',
timezone,
pattern,
);
}; };
return { timezone, saveTimezone, formatDate }; return { timezone, saveTimezone, formatDate };

View File

@ -1,4 +1,4 @@
import { useState, useMemo } from 'react'; import { useState, useMemo, HTMLAttributes } from 'react';
import { ComposableMap, Geographies, Geography, ZoomableGroup } from 'react-simple-maps'; import { ComposableMap, Geographies, Geography, ZoomableGroup } from 'react-simple-maps';
import classNames from 'classnames'; import classNames from 'classnames';
import { colord } from 'colord'; import { colord } from 'colord';
@ -16,11 +16,12 @@ export function WorldMap({
websiteId, websiteId,
data, data,
className, className,
...props
}: { }: {
websiteId?: string; websiteId?: string;
data?: any[]; data?: any[];
className?: string; className?: string;
}) { } & HTMLAttributes<HTMLDivElement>) {
const [tooltip, setTooltipPopup] = useState(); const [tooltip, setTooltipPopup] = useState();
const { theme, colors } = useTheme(); const { theme, colors } = useTheme();
const { locale } = useLocale(); const { locale } = useLocale();
@ -67,6 +68,7 @@ export function WorldMap({
return ( return (
<div <div
{...props}
className={classNames(styles.container, className)} className={classNames(styles.container, className)}
data-tip="" data-tip=""
data-for="world-map-tooltip" data-for="world-map-tooltip"

View File

@ -60,7 +60,7 @@ async function clickhouseQuery(websiteId: string, filters: QueryFilters, pagePar
data: result.data.map((row: any) => { data: result.data.map((row: any) => {
return { return {
...row, ...row,
createdAt: row.firstAt, createdAt: row.lastAt,
visits: Number(row.visits), visits: Number(row.visits),
views: Number(row.views), views: Number(row.views),
}; };