diff --git a/src/app/(main)/websites/[websiteId]/events/EventsTable.tsx b/src/app/(main)/websites/[websiteId]/events/EventsTable.tsx index 7cefdd274..c36ee5e73 100644 --- a/src/app/(main)/websites/[websiteId]/events/EventsTable.tsx +++ b/src/app/(main)/websites/[websiteId]/events/EventsTable.tsx @@ -30,7 +30,7 @@ export function EventsTable({ data = [] }) { {formatMessage(row.eventName ? labels.triggeredEvent : labels.viewedPage)} - + {row.eventName || row.urlPath} diff --git a/src/app/(main)/websites/[websiteId]/sessions/SessionActivity.tsx b/src/app/(main)/websites/[websiteId]/sessions/SessionActivity.tsx index b9f34e485..4dcf08b42 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/SessionActivity.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/SessionActivity.tsx @@ -59,9 +59,7 @@ export function SessionActivity({ ? formatMessage(labels.triggeredEvent) : formatMessage(labels.viewedPage)} - - {eventName || urlPath} - + {eventName || urlPath} {hasData > 0 && } diff --git a/src/app/api/teams/route.ts b/src/app/api/teams/route.ts index 2b9985ba4..0d2be6249 100644 --- a/src/app/api/teams/route.ts +++ b/src/app/api/teams/route.ts @@ -3,27 +3,8 @@ import { getRandomChars } from '@/lib/generate'; import { unauthorized, json } from '@/lib/response'; import { canCreateTeam } from '@/permissions'; import { uuid } from '@/lib/crypto'; -import { getQueryFilters, parseRequest } from '@/lib/request'; -import { createTeam, getUserTeams } from '@/queries/prisma'; -import { pagingParams } from '@/lib/schema'; - -export async function GET(request: Request) { - const schema = z.object({ - ...pagingParams, - }); - - const { auth, query, error } = await parseRequest(request, schema); - - if (error) { - return error(); - } - - const filters = await getQueryFilters(query); - - const teams = await getUserTeams(auth.user.id, filters); - - return json(teams); -} +import { parseRequest } from '@/lib/request'; +import { createTeam } from '@/queries/prisma'; export async function POST(request: Request) { const schema = z.object({ diff --git a/src/app/login/LoginForm.tsx b/src/app/login/LoginForm.tsx index c1c2c4311..33a2ca711 100644 --- a/src/app/login/LoginForm.tsx +++ b/src/app/login/LoginForm.tsx @@ -55,12 +55,7 @@ export function LoginForm() { - + {formatMessage(labels.login)} diff --git a/src/components/hooks/queries/useWebsiteMetricsQuery.ts b/src/components/hooks/queries/useWebsiteMetricsQuery.ts index a5ec7ac99..8370db8eb 100644 --- a/src/components/hooks/queries/useWebsiteMetricsQuery.ts +++ b/src/components/hooks/queries/useWebsiteMetricsQuery.ts @@ -1,8 +1,8 @@ -import { ReactQueryOptions } from '@/lib/types'; import { keepPreviousData } from '@tanstack/react-query'; import { useApi } from '../useApi'; -import { useDateParameters } from '../useDateParameters'; import { useFilterParameters } from '../useFilterParameters'; +import { useDateParameters } from '../useDateParameters'; +import { ReactQueryOptions } from '@/lib/types'; export type WebsiteMetricsData = { x: string; @@ -15,7 +15,7 @@ export function useWebsiteMetricsQuery( options?: ReactQueryOptions, ) { const { get, useQuery } = useApi(); - const { startAt, endAt, unit, timezone } = useDateParameters(); + const date = useDateParameters(); const filters = useFilterParameters(); return useQuery({ @@ -23,20 +23,14 @@ export function useWebsiteMetricsQuery( 'websites:metrics', { websiteId, - startAt, - endAt, - unit, - timezone, + ...date, ...filters, ...params, }, ], queryFn: async () => get(`/websites/${websiteId}/metrics`, { - startAt, - endAt, - unit, - timezone, + ...date, ...filters, ...params, }), diff --git a/src/components/hooks/queries/useWebsitePageviewsQuery.ts b/src/components/hooks/queries/useWebsitePageviewsQuery.ts index 6f471bab0..5784cae8e 100644 --- a/src/components/hooks/queries/useWebsitePageviewsQuery.ts +++ b/src/components/hooks/queries/useWebsitePageviewsQuery.ts @@ -13,23 +13,12 @@ export function useWebsitePageviewsQuery( options?: ReactQueryOptions, ) { const { get, useQuery } = useApi(); - const { startAt, endAt, unit, timezone } = useDateParameters(); + const date = useDateParameters(); const queryParams = useFilterParameters(); return useQuery({ - queryKey: [ - 'websites:pageviews', - { websiteId, compare, startAt, endAt, unit, timezone, ...queryParams }, - ], - queryFn: () => - get(`/websites/${websiteId}/pageviews`, { - compare, - startAt, - endAt, - unit, - timezone, - ...queryParams, - }), + queryKey: ['websites:pageviews', { websiteId, compare, ...date, ...queryParams }], + queryFn: () => get(`/websites/${websiteId}/pageviews`, { compare, ...date, ...queryParams }), enabled: !!websiteId, ...options, }); diff --git a/src/components/hooks/queries/useWebsiteStatsQuery.ts b/src/components/hooks/queries/useWebsiteStatsQuery.ts index 64304b1b9..98ae9d8ff 100644 --- a/src/components/hooks/queries/useWebsiteStatsQuery.ts +++ b/src/components/hooks/queries/useWebsiteStatsQuery.ts @@ -23,13 +23,12 @@ export function useWebsiteStatsQuery( options?: UseQueryOptions, ) { const { get, useQuery } = useApi(); - const { startAt, endAt, unit, timezone } = useDateParameters(); + const date = useDateParameters(); const filters = useFilterParameters(); return useQuery({ - queryKey: ['websites:stats', { websiteId, startAt, endAt, unit, timezone, ...filters }], - queryFn: () => - get(`/websites/${websiteId}/stats`, { startAt, endAt, unit, timezone, ...filters }), + queryKey: ['websites:stats', { websiteId, ...date, ...filters }], + queryFn: () => get(`/websites/${websiteId}/stats`, { ...date, ...filters }), enabled: !!websiteId, ...options, }); diff --git a/src/components/metrics/ListTable.tsx b/src/components/metrics/ListTable.tsx index 4c98eb5dc..4e9ee9044 100644 --- a/src/components/metrics/ListTable.tsx +++ b/src/components/metrics/ListTable.tsx @@ -117,9 +117,7 @@ const AnimatedRow = ({ gap > - - {label} - + {label} {change} diff --git a/src/lib/request.ts b/src/lib/request.ts index 97086c2f4..da247e20b 100644 --- a/src/lib/request.ts +++ b/src/lib/request.ts @@ -83,7 +83,7 @@ export function getRequestFilters(query: Record) { export async function setWebsiteDate(websiteId: string, data: Record) { const website = await fetchWebsite(websiteId); - if (website?.resetAt) { + if (website) { data.startDate = maxDate(data.startDate, new Date(website?.resetAt)); } diff --git a/src/permissions/website.ts b/src/permissions/website.ts index 8bd81517a..1a6f20341 100644 --- a/src/permissions/website.ts +++ b/src/permissions/website.ts @@ -1,7 +1,7 @@ import { Auth } from '@/lib/types'; import { PERMISSIONS } from '@/lib/constants'; import { hasPermission } from '@/lib/auth'; -import { getLink, getPixel, getTeamUser, getWebsite } from '@/queries/prisma'; +import { getTeamUser, getWebsite } from '@/queries/prisma'; export async function canViewWebsite({ user, shareToken }: Auth, websiteId: string) { if (user?.isAdmin) { @@ -13,21 +13,17 @@ export async function canViewWebsite({ user, shareToken }: Auth, websiteId: stri } const website = await getWebsite(websiteId); - const link = await getLink(websiteId); - const pixel = await getPixel(websiteId); - const entity = website || link || pixel; - - if (!entity) { + if (!website) { return false; } - if (entity.userId) { - return user.id === entity.userId; + if (website.userId) { + return user.id === website.userId; } - if (entity.teamId) { - const teamUser = await getTeamUser(entity.teamId, user.id); + if (website.teamId) { + const teamUser = await getTeamUser(website.teamId, user.id); return !!teamUser; } diff --git a/src/queries/sql/events/getWebsiteEvents.ts b/src/queries/sql/events/getWebsiteEvents.ts index d4625c2b2..371c45f66 100644 --- a/src/queries/sql/events/getWebsiteEvents.ts +++ b/src/queries/sql/events/getWebsiteEvents.ts @@ -96,7 +96,7 @@ async function clickhouseQuery(websiteId: string, filters: QueryFilters) { page_title as pageTitle, event_type as eventType, event_name as eventName, - event_id IN (SELECT event_id FROM event_data where website_id = {websiteId:UUID}) as hasData + event_id IN (SELECT event_id FROM event_data) as hasData from website_event ${cohortQuery} where website_id = {websiteId:UUID} diff --git a/src/queries/sql/sessions/getSessionActivity.ts b/src/queries/sql/sessions/getSessionActivity.ts index 9f1be24ad..06b8a1372 100644 --- a/src/queries/sql/sessions/getSessionActivity.ts +++ b/src/queries/sql/sessions/getSessionActivity.ts @@ -57,7 +57,7 @@ async function clickhouseQuery(websiteId: string, sessionId: string, filters: Qu event_type as eventType, event_name as eventName, visit_id as visitId, - event_id IN (SELECT event_id FROM event_data where website_id = {websiteId:UUID} and session_id = {sessionId:UUID}) AS hasData + event_id IN (SELECT event_id FROM event_data) AS hasData from website_event e where e.website_id = {websiteId:UUID} and e.session_id = {sessionId:UUID}