mirror of
https://github.com/umami-software/umami.git
synced 2026-02-21 13:05:36 +01:00
Compare commits
3 commits
5a7c6a9816
...
d948e122ea
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d948e122ea | ||
|
|
36ae53654d | ||
|
|
d440a44d96 |
4 changed files with 31 additions and 13 deletions
|
|
@ -1,8 +1,8 @@
|
||||||
|
import { ReactQueryOptions } from '@/lib/types';
|
||||||
import { keepPreviousData } from '@tanstack/react-query';
|
import { keepPreviousData } from '@tanstack/react-query';
|
||||||
import { useApi } from '../useApi';
|
import { useApi } from '../useApi';
|
||||||
import { useFilterParameters } from '../useFilterParameters';
|
|
||||||
import { useDateParameters } from '../useDateParameters';
|
import { useDateParameters } from '../useDateParameters';
|
||||||
import { ReactQueryOptions } from '@/lib/types';
|
import { useFilterParameters } from '../useFilterParameters';
|
||||||
|
|
||||||
export type WebsiteMetricsData = {
|
export type WebsiteMetricsData = {
|
||||||
x: string;
|
x: string;
|
||||||
|
|
@ -15,7 +15,7 @@ export function useWebsiteMetricsQuery(
|
||||||
options?: ReactQueryOptions<WebsiteMetricsData>,
|
options?: ReactQueryOptions<WebsiteMetricsData>,
|
||||||
) {
|
) {
|
||||||
const { get, useQuery } = useApi();
|
const { get, useQuery } = useApi();
|
||||||
const date = useDateParameters();
|
const { startAt, endAt, unit, timezone } = useDateParameters();
|
||||||
const filters = useFilterParameters();
|
const filters = useFilterParameters();
|
||||||
|
|
||||||
return useQuery<WebsiteMetricsData>({
|
return useQuery<WebsiteMetricsData>({
|
||||||
|
|
@ -23,14 +23,20 @@ export function useWebsiteMetricsQuery(
|
||||||
'websites:metrics',
|
'websites:metrics',
|
||||||
{
|
{
|
||||||
websiteId,
|
websiteId,
|
||||||
...date,
|
startAt,
|
||||||
|
endAt,
|
||||||
|
unit,
|
||||||
|
timezone,
|
||||||
...filters,
|
...filters,
|
||||||
...params,
|
...params,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
queryFn: async () =>
|
queryFn: async () =>
|
||||||
get(`/websites/${websiteId}/metrics`, {
|
get(`/websites/${websiteId}/metrics`, {
|
||||||
...date,
|
startAt,
|
||||||
|
endAt,
|
||||||
|
unit,
|
||||||
|
timezone,
|
||||||
...filters,
|
...filters,
|
||||||
...params,
|
...params,
|
||||||
}),
|
}),
|
||||||
|
|
|
||||||
|
|
@ -13,12 +13,23 @@ export function useWebsitePageviewsQuery(
|
||||||
options?: ReactQueryOptions<WebsitePageviewsData>,
|
options?: ReactQueryOptions<WebsitePageviewsData>,
|
||||||
) {
|
) {
|
||||||
const { get, useQuery } = useApi();
|
const { get, useQuery } = useApi();
|
||||||
const date = useDateParameters();
|
const { startAt, endAt, unit, timezone } = useDateParameters();
|
||||||
const queryParams = useFilterParameters();
|
const queryParams = useFilterParameters();
|
||||||
|
|
||||||
return useQuery<WebsitePageviewsData>({
|
return useQuery<WebsitePageviewsData>({
|
||||||
queryKey: ['websites:pageviews', { websiteId, compare, ...date, ...queryParams }],
|
queryKey: [
|
||||||
queryFn: () => get(`/websites/${websiteId}/pageviews`, { compare, ...date, ...queryParams }),
|
'websites:pageviews',
|
||||||
|
{ websiteId, compare, startAt, endAt, unit, timezone, ...queryParams },
|
||||||
|
],
|
||||||
|
queryFn: () =>
|
||||||
|
get(`/websites/${websiteId}/pageviews`, {
|
||||||
|
compare,
|
||||||
|
startAt,
|
||||||
|
endAt,
|
||||||
|
unit,
|
||||||
|
timezone,
|
||||||
|
...queryParams,
|
||||||
|
}),
|
||||||
enabled: !!websiteId,
|
enabled: !!websiteId,
|
||||||
...options,
|
...options,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -23,12 +23,13 @@ export function useWebsiteStatsQuery(
|
||||||
options?: UseQueryOptions<WebsiteStatsData, Error, WebsiteStatsData>,
|
options?: UseQueryOptions<WebsiteStatsData, Error, WebsiteStatsData>,
|
||||||
) {
|
) {
|
||||||
const { get, useQuery } = useApi();
|
const { get, useQuery } = useApi();
|
||||||
const date = useDateParameters();
|
const { startAt, endAt, unit, timezone } = useDateParameters();
|
||||||
const filters = useFilterParameters();
|
const filters = useFilterParameters();
|
||||||
|
|
||||||
return useQuery<WebsiteStatsData>({
|
return useQuery<WebsiteStatsData>({
|
||||||
queryKey: ['websites:stats', { websiteId, ...date, ...filters }],
|
queryKey: ['websites:stats', { websiteId, startAt, endAt, unit, timezone, ...filters }],
|
||||||
queryFn: () => get(`/websites/${websiteId}/stats`, { ...date, ...filters }),
|
queryFn: () =>
|
||||||
|
get(`/websites/${websiteId}/stats`, { startAt, endAt, unit, timezone, ...filters }),
|
||||||
enabled: !!websiteId,
|
enabled: !!websiteId,
|
||||||
...options,
|
...options,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { checkAuth } from '@/lib/auth';
|
import { checkAuth } from '@/lib/auth';
|
||||||
import { DEFAULT_PAGE_SIZE, FILTER_COLUMNS } from '@/lib/constants';
|
import { DEFAULT_PAGE_SIZE, FILTER_COLUMNS } from '@/lib/constants';
|
||||||
import { getAllowedUnits, getMinimumUnit, parseDateRange } from '@/lib/date';
|
import { getAllowedUnits, getMinimumUnit, maxDate, parseDateRange } from '@/lib/date';
|
||||||
import { fetchWebsite } from '@/lib/load';
|
import { fetchWebsite } from '@/lib/load';
|
||||||
import { filtersArrayToObject } from '@/lib/params';
|
import { filtersArrayToObject } from '@/lib/params';
|
||||||
import { badRequest, unauthorized } from '@/lib/response';
|
import { badRequest, unauthorized } from '@/lib/response';
|
||||||
|
|
@ -84,7 +84,7 @@ export async function setWebsiteDate(websiteId: string, data: Record<string, any
|
||||||
const website = await fetchWebsite(websiteId);
|
const website = await fetchWebsite(websiteId);
|
||||||
|
|
||||||
if (website?.resetAt) {
|
if (website?.resetAt) {
|
||||||
data.startDate = new Date(website.resetAt);
|
data.startDate = maxDate(data.startDate, new Date(website?.resetAt));
|
||||||
}
|
}
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue