remove timezone from realtime. Closes #3700

This commit is contained in:
Francis Cao 2025-11-11 13:13:25 -08:00
parent 14f5babea7
commit 30781430c5
5 changed files with 6 additions and 14 deletions

View file

@ -1,21 +1,15 @@
import { REALTIME_RANGE } from '@/lib/constants'; import { REALTIME_RANGE } from '@/lib/constants';
import { getQueryFilters, parseRequest } from '@/lib/request'; import { getQueryFilters, parseRequest } from '@/lib/request';
import { json, unauthorized } from '@/lib/response'; import { json, unauthorized } from '@/lib/response';
import { timezoneParam } from '@/lib/schema';
import { canViewWebsite } from '@/permissions'; import { canViewWebsite } from '@/permissions';
import { getRealtimeData } from '@/queries/sql'; import { getRealtimeData } from '@/queries/sql';
import { startOfMinute, subMinutes } from 'date-fns'; import { startOfMinute, subMinutes } from 'date-fns';
import z from 'zod';
export async function GET( export async function GET(
request: Request, request: Request,
{ params }: { params: Promise<{ websiteId: string }> }, { params }: { params: Promise<{ websiteId: string }> },
) { ) {
const schema = z.object({ const { auth, query, error } = await parseRequest(request);
timezone: timezoneParam,
});
const { auth, query, error } = await parseRequest(request, schema);
if (error) { if (error) {
return error(); return error();

View file

@ -1,4 +1,3 @@
import { useTimezone } from '@/components/hooks/useTimezone';
import { REALTIME_INTERVAL } from '@/lib/constants'; import { REALTIME_INTERVAL } from '@/lib/constants';
import { useApi } from '../useApi'; import { useApi } from '../useApi';
@ -24,11 +23,10 @@ export interface RealtimeData {
export function useRealtimeQuery(websiteId: string) { export function useRealtimeQuery(websiteId: string) {
const { get, useQuery } = useApi(); const { get, useQuery } = useApi();
const { timezone } = useTimezone();
const { data, isLoading, error } = useQuery<RealtimeData>({ const { data, isLoading, error } = useQuery<RealtimeData>({
queryKey: ['realtime', { websiteId, timezone }], queryKey: ['realtime', { websiteId }],
queryFn: async () => { queryFn: async () => {
return get(`/realtime/${websiteId}`, { timezone }); return get(`/realtime/${websiteId}`);
}, },
enabled: !!websiteId, enabled: !!websiteId,
refetchInterval: REALTIME_INTERVAL, refetchInterval: REALTIME_INTERVAL,

View file

@ -61,7 +61,7 @@ function getDateStringSQL(data: any, unit: string = 'utc', timezone?: string) {
function getDateSQL(field: string, unit: string, timezone?: string) { function getDateSQL(field: string, unit: string, timezone?: string) {
if (timezone) { if (timezone) {
return `toDateTime(date_trunc('${unit}', ${field}, '${timezone}'), '${timezone}')`; return `toDateTime(date_trunc('${unit}', ${field}, '${timezone}'))`;
} }
return `toDateTime(date_trunc('${unit}', ${field}))`; return `toDateTime(date_trunc('${unit}', ${field}))`;
} }

View file

@ -45,7 +45,7 @@ async function clickhouseQuery(
websiteId: string, websiteId: string,
filters: QueryFilters, filters: QueryFilters,
): Promise<{ x: string; y: number }[]> { ): Promise<{ x: string; y: number }[]> {
const { timezone = 'utc', unit = 'day' } = filters; const { timezone = 'UTC', unit = 'day' } = filters;
const { parseFilters, rawQuery, getDateSQL } = clickhouse; const { parseFilters, rawQuery, getDateSQL } = clickhouse;
const { filterQuery, cohortQuery, queryParams } = parseFilters({ const { filterQuery, cohortQuery, queryParams } = parseFilters({
...filters, ...filters,

View file

@ -45,7 +45,7 @@ async function clickhouseQuery(
websiteId: string, websiteId: string,
filters: QueryFilters, filters: QueryFilters,
): Promise<{ x: string; y: number }[]> { ): Promise<{ x: string; y: number }[]> {
const { timezone = 'utc', unit = 'day' } = filters; const { timezone = 'UTC', unit = 'day' } = filters;
const { parseFilters, rawQuery, getDateSQL } = clickhouse; const { parseFilters, rawQuery, getDateSQL } = clickhouse;
const { filterQuery, cohortQuery, queryParams } = parseFilters({ const { filterQuery, cohortQuery, queryParams } = parseFilters({
...filters, ...filters,