mirror of
https://github.com/umami-software/umami.git
synced 2026-02-10 07:37:11 +01:00
Refactored fetching to use react-query.
This commit is contained in:
parent
7bbed0e12b
commit
c56f02c475
112 changed files with 255 additions and 492 deletions
|
|
@ -1,4 +1,3 @@
|
|||
import React from 'react';
|
||||
import Layout from 'components/layout/Layout';
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ export default async (
|
|||
const { id: websiteId } = req.query;
|
||||
|
||||
if (req.method === 'GET') {
|
||||
if (await canViewWebsite(req.auth, websiteId)) {
|
||||
if (!(await canViewWebsite(req.auth, websiteId))) {
|
||||
return unauthorized(res);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { NextApiRequestQueryBody, WebsitePageviews } from 'lib/types';
|
||||
import { canViewWebsite } from 'lib/auth';
|
||||
import { useAuth, useCors } from 'lib/middleware';
|
||||
import moment from 'moment-timezone';
|
||||
import { NextApiResponse } from 'next';
|
||||
import { badRequest, methodNotAllowed, ok, unauthorized } from 'next-basics';
|
||||
import { NextApiRequestQueryBody, WebsitePageviews } from 'lib/types';
|
||||
import { canViewWebsite } from 'lib/auth';
|
||||
import { useAuth, useCors } from 'lib/middleware';
|
||||
import { getPageviewStats } from 'queries';
|
||||
|
||||
const unitTypes = ['year', 'month', 'hour', 'day'];
|
||||
|
|
@ -14,7 +14,7 @@ export interface WebsitePageviewRequestQuery {
|
|||
startAt: number;
|
||||
endAt: number;
|
||||
unit: string;
|
||||
tz: string;
|
||||
timezone: string;
|
||||
url?: string;
|
||||
referrer?: string;
|
||||
os?: string;
|
||||
|
|
@ -35,7 +35,7 @@ export default async (
|
|||
startAt,
|
||||
endAt,
|
||||
unit,
|
||||
tz,
|
||||
timezone,
|
||||
url,
|
||||
referrer,
|
||||
os,
|
||||
|
|
@ -52,7 +52,7 @@ export default async (
|
|||
const startDate = new Date(+startAt);
|
||||
const endDate = new Date(+endAt);
|
||||
|
||||
if (!moment.tz.zone(tz) || !unitTypes.includes(unit)) {
|
||||
if (!moment.tz.zone(timezone) || !unitTypes.includes(unit)) {
|
||||
return badRequest(res);
|
||||
}
|
||||
|
||||
|
|
@ -60,7 +60,7 @@ export default async (
|
|||
getPageviewStats(websiteId, {
|
||||
startDate,
|
||||
endDate,
|
||||
timezone: tz,
|
||||
timezone,
|
||||
unit,
|
||||
count: '*',
|
||||
filters: {
|
||||
|
|
@ -75,7 +75,7 @@ export default async (
|
|||
getPageviewStats(websiteId, {
|
||||
startDate,
|
||||
endDate,
|
||||
timezone: tz,
|
||||
timezone,
|
||||
unit,
|
||||
count: 'distinct pageview.',
|
||||
filters: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
import { Prisma } from '@prisma/client';
|
||||
import { canCreateWebsite } from 'lib/auth';
|
||||
import { uuid } from 'lib/crypto';
|
||||
import { useAuth, useCors } from 'lib/middleware';
|
||||
|
|
@ -40,7 +39,7 @@ export default async (
|
|||
return unauthorized(res);
|
||||
}
|
||||
|
||||
const data: Prisma.WebsiteUncheckedCreateInput = {
|
||||
const data: any = {
|
||||
id: uuid(),
|
||||
name,
|
||||
domain,
|
||||
|
|
|
|||
|
|
@ -1,15 +1,11 @@
|
|||
import React from 'react';
|
||||
import Layout from 'components/layout/Layout';
|
||||
import TestConsole from 'components/pages/TestConsole';
|
||||
import useRequireLogin from 'hooks/useRequireLogin';
|
||||
import useUser from 'hooks/useUser';
|
||||
import { ROLES } from 'lib/constants';
|
||||
|
||||
export default function ConsolePage({ pageDisabled }) {
|
||||
const { loading } = useRequireLogin();
|
||||
const { user } = useUser();
|
||||
const user = useUser();
|
||||
|
||||
if (pageDisabled || loading || user?.role !== ROLES.admin) {
|
||||
if (pageDisabled || !user || !user.isAdmin) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
import React from 'react';
|
||||
import { useRouter } from 'next/router';
|
||||
import Layout from 'components/layout/Layout';
|
||||
import Dashboard from 'components/pages/Dashboard';
|
||||
import useRequireLogin from 'hooks/useRequireLogin';
|
||||
import useUser from 'hooks/useUser';
|
||||
import useConfig from 'hooks/useConfig';
|
||||
|
||||
|
|
@ -12,11 +10,10 @@ export default function DashboardPage() {
|
|||
isReady,
|
||||
asPath,
|
||||
} = useRouter();
|
||||
const { loading } = useRequireLogin();
|
||||
const user = useUser();
|
||||
const { adminDisabled } = useConfig();
|
||||
|
||||
if (adminDisabled || !user || !isReady || loading) {
|
||||
if (adminDisabled || !user || !isReady) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
import React from 'react';
|
||||
import Layout from 'components/layout/Layout';
|
||||
import LoginForm from 'components/forms/LoginForm';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
import Settings from 'components/pages/Settings';
|
||||
import ProfileSettings from 'components/pages/ProfileSettings';
|
||||
import useRequireLogin from 'hooks/useRequireLogin';
|
||||
import React from 'react';
|
||||
import useUser from 'hooks/useUser';
|
||||
|
||||
export default function TeamsPage() {
|
||||
const { loading } = useRequireLogin();
|
||||
const user = useUser();
|
||||
|
||||
if (loading) {
|
||||
if (!user) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
import React from 'react';
|
||||
import Layout from 'components/layout/Layout';
|
||||
import RealtimeDashboard from 'components/pages/RealtimeDashboard';
|
||||
import useRequireLogin from 'hooks/useRequireLogin';
|
||||
import useUser from 'hooks/useUser';
|
||||
|
||||
export default function RealtimePage() {
|
||||
const { loading } = useRequireLogin();
|
||||
const user = useUser();
|
||||
|
||||
if (loading) {
|
||||
if (!user) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
import React from 'react';
|
||||
import { useRouter } from 'next/router';
|
||||
import Layout from 'components/layout/Layout';
|
||||
import WebsiteDetails from 'components/pages/WebsiteDetails';
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
import { useEffect } from 'react';
|
||||
import { useRouter } from 'next/router';
|
||||
import { setItem } from 'next-basics';
|
||||
import { AUTH_TOKEN } from 'lib/constants';
|
||||
import { setClientAuthToken } from 'lib/client';
|
||||
|
||||
export default function SingleSignOnPage() {
|
||||
const router = useRouter();
|
||||
|
|
@ -9,7 +8,7 @@ export default function SingleSignOnPage() {
|
|||
|
||||
useEffect(() => {
|
||||
if (url && token) {
|
||||
setItem(AUTH_TOKEN, token);
|
||||
setClientAuthToken(token);
|
||||
|
||||
router.push(url);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
import Settings from 'components/pages/Settings';
|
||||
import TeamDetails from 'components/pages/TeamDetails';
|
||||
import useRequireLogin from 'hooks/useRequireLogin';
|
||||
import useUser from 'hooks/useUser';
|
||||
import { useRouter } from 'next/router';
|
||||
import React from 'react';
|
||||
|
||||
export default function TeamDetailPage() {
|
||||
const { loading } = useRequireLogin();
|
||||
const user = useUser();
|
||||
const router = useRouter();
|
||||
const { id } = router.query;
|
||||
|
||||
if (loading) {
|
||||
if (!user) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
import Settings from 'components/pages/Settings';
|
||||
import TeamsList from 'components/pages/TeamsList';
|
||||
import useRequireLogin from 'hooks/useRequireLogin';
|
||||
import React from 'react';
|
||||
import useUser from 'hooks/useUser';
|
||||
|
||||
export default function TeamsPage() {
|
||||
const { loading } = useRequireLogin();
|
||||
const user = useUser();
|
||||
|
||||
if (loading) {
|
||||
if (!user) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
import Settings from 'components/pages/Settings';
|
||||
import UserSettings from 'components/pages/UserSettings';
|
||||
import useRequireLogin from 'hooks/useRequireLogin';
|
||||
import useUser from 'hooks/useUser';
|
||||
import { useRouter } from 'next/router';
|
||||
import React from 'react';
|
||||
|
||||
export default function TeamDetailPage() {
|
||||
const { loading } = useRequireLogin();
|
||||
const user = useUser();
|
||||
const router = useRouter();
|
||||
const { id } = router.query;
|
||||
|
||||
if (loading) {
|
||||
if (!user) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
import Settings from 'components/pages/Settings';
|
||||
import useConfig from 'hooks/useConfig';
|
||||
import useRequireLogin from 'hooks/useRequireLogin';
|
||||
import React from 'react';
|
||||
import useUser from 'hooks/useUser';
|
||||
|
||||
import UsersList from 'components/pages/UsersList';
|
||||
|
||||
export default function UsersPage() {
|
||||
const { loading } = useRequireLogin();
|
||||
const user = useUser();
|
||||
const { adminDisabled } = useConfig();
|
||||
|
||||
if (adminDisabled || loading) {
|
||||
if (adminDisabled || !user) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
import React from 'react';
|
||||
import { useRouter } from 'next/router';
|
||||
import Layout from 'components/layout/Layout';
|
||||
import WebsiteDetails from 'components/pages/WebsiteDetails';
|
||||
import useRequireLogin from 'hooks/useRequireLogin';
|
||||
import useUser from 'hooks/useUser';
|
||||
|
||||
export default function DetailsPage() {
|
||||
const { loading } = useRequireLogin();
|
||||
const user = useUser();
|
||||
const router = useRouter();
|
||||
const { id } = router.query;
|
||||
|
||||
if (!id || loading) {
|
||||
if (!id || !user) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
import React from 'react';
|
||||
import { useRouter } from 'next/router';
|
||||
import WebsiteSettings from 'components/pages/WebsiteSettings';
|
||||
import useRequireLogin from 'hooks/useRequireLogin';
|
||||
import useUser from 'hooks/useUser';
|
||||
import Settings from 'components/pages/Settings';
|
||||
|
||||
export default function WebsiteSettingsPage() {
|
||||
const { loading } = useRequireLogin();
|
||||
const user = useUser();
|
||||
const router = useRouter();
|
||||
const { id } = router.query;
|
||||
|
||||
if (!id || loading) {
|
||||
if (!id || !user) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
import Settings from 'components/pages/Settings';
|
||||
import useConfig from 'hooks/useConfig';
|
||||
import useRequireLogin from 'hooks/useRequireLogin';
|
||||
import React from 'react';
|
||||
import useUser from 'hooks/useUser';
|
||||
|
||||
import WebsitesList from 'components/pages/WebsitesList';
|
||||
|
||||
export default function WebsitesPage() {
|
||||
const { loading } = useRequireLogin();
|
||||
const user = useUser();
|
||||
const { adminDisabled } = useConfig();
|
||||
|
||||
if (adminDisabled || loading) {
|
||||
if (adminDisabled || !user) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue