From b2a7aaaad0b2e6fbf53df65a61928e2e1216baab Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sat, 17 Feb 2024 10:52:53 -0800 Subject: [PATCH 1/9] Upgraded Prisma v5.9.1. --- package.json | 4 +-- yarn.lock | 74 ++++++++++++++++++++++++++-------------------------- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/package.json b/package.json index 23d38fa4..edfb7ac9 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "dependencies": { "@clickhouse/client": "^0.2.2", "@fontsource/inter": "^4.5.15", - "@prisma/client": "5.7.0", + "@prisma/client": "5.9.1", "@prisma/extension-read-replicas": "^0.3.0", "@react-spring/web": "^9.7.3", "@tanstack/react-query": "^5.12.2", @@ -98,7 +98,7 @@ "next-basics": "^0.39.0", "node-fetch": "^3.2.8", "npm-run-all": "^4.1.5", - "prisma": "5.7.0", + "prisma": "5.9.1", "react": "^18.2.0", "react-basics": "^0.122.0", "react-beautiful-dnd": "^13.1.0", diff --git a/yarn.lock b/yarn.lock index 64ffe437..69059a9d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1948,51 +1948,51 @@ "@parcel/watcher-win32-ia32" "2.3.0" "@parcel/watcher-win32-x64" "2.3.0" -"@prisma/client@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.7.0.tgz#c29dd9a16e100902eb2d2443d90fee2482d2aeac" - integrity sha512-cZmglCrfNbYpzUtz7HscVHl38e9CrUs31nrVoGUK1nIPXGgt8hT4jj2s657UXcNdQ/jBUxDgGmHyu2Nyrq1txg== +"@prisma/client@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.9.1.tgz#d92bd2f7f006e0316cb4fda9d73f235965cf2c64" + integrity sha512-caSOnG4kxcSkhqC/2ShV7rEoWwd3XrftokxJqOCMVvia4NYV/TPtJlS9C2os3Igxw/Qyxumj9GBQzcStzECvtQ== -"@prisma/debug@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-5.7.0.tgz#abdb2060be4fe819e73e2683cf1b039841566198" - integrity sha512-tZ+MOjWlVvz1kOEhNYMa4QUGURY+kgOUBqLHYIV8jmCsMuvA1tWcn7qtIMLzYWCbDcQT4ZS8xDgK0R2gl6/0wA== +"@prisma/debug@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-5.9.1.tgz#906274e73d3267f88b69459199fa3c51cd9511a3" + integrity sha512-yAHFSFCg8KVoL0oRUno3m60GAjsUKYUDkQ+9BA2X2JfVR3kRVSJFc/GpQ2fSORi4pSHZR9orfM4UC9OVXIFFTA== -"@prisma/engines-version@5.7.0-41.79fb5193cf0a8fdbef536e4b4a159cad677ab1b9": - version "5.7.0-41.79fb5193cf0a8fdbef536e4b4a159cad677ab1b9" - resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.7.0-41.79fb5193cf0a8fdbef536e4b4a159cad677ab1b9.tgz#777827898f1bfe6a76b17fbe7d9600cf543c4cc1" - integrity sha512-V6tgRVi62jRwTm0Hglky3Scwjr/AKFBFtS+MdbsBr7UOuiu1TKLPc6xfPiyEN1+bYqjEtjxwGsHgahcJsd1rNg== +"@prisma/engines-version@5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64": + version "5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64" + resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64.tgz#54d2164f28d23e09d41cf9eb0bddbbe7f3aaa660" + integrity sha512-HFl7275yF0FWbdcNvcSRbbu9JCBSLMcurYwvWc8WGDnpu7APxQo2ONtZrUggU3WxLxUJ2uBX+0GOFIcJeVeOOQ== -"@prisma/engines@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.7.0.tgz#a32e232819b66bd9dee7500b455781742dc54b2f" - integrity sha512-TkOMgMm60n5YgEKPn9erIvFX2/QuWnl3GBo6yTRyZKk5O5KQertXiNnrYgSLy0SpsKmhovEPQb+D4l0SzyE7XA== +"@prisma/engines@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.9.1.tgz#767539afc6f193a182d0495b30b027f61f279073" + integrity sha512-gkdXmjxQ5jktxWNdDA5aZZ6R8rH74JkoKq6LD5mACSvxd2vbqWeWIOV0Py5wFC8vofOYShbt6XUeCIUmrOzOnQ== dependencies: - "@prisma/debug" "5.7.0" - "@prisma/engines-version" "5.7.0-41.79fb5193cf0a8fdbef536e4b4a159cad677ab1b9" - "@prisma/fetch-engine" "5.7.0" - "@prisma/get-platform" "5.7.0" + "@prisma/debug" "5.9.1" + "@prisma/engines-version" "5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64" + "@prisma/fetch-engine" "5.9.1" + "@prisma/get-platform" "5.9.1" "@prisma/extension-read-replicas@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@prisma/extension-read-replicas/-/extension-read-replicas-0.3.0.tgz#2842a7c928f957c1dd58a6256104797596d43426" integrity sha512-F9+rSmYday6GT2qjhJtkZcBOpLO5LtpvFcMGqrBDHf+78LEdSuxfFjOxYlNuqk4B+th62yxpbhfpmB9/Mca14Q== -"@prisma/fetch-engine@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-5.7.0.tgz#7d2795828b692b02707e7ab6876f6227a68fc309" - integrity sha512-zIn/qmO+N/3FYe7/L9o+yZseIU8ivh4NdPKSkQRIHfg2QVTVMnbhGoTcecbxfVubeTp+DjcbjS0H9fCuM4W04w== +"@prisma/fetch-engine@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-5.9.1.tgz#5d3b2c9af54a242e37b3f9561b59ab72f8e92818" + integrity sha512-l0goQOMcNVOJs1kAcwqpKq3ylvkD9F04Ioe1oJoCqmz05mw22bNAKKGWuDd3zTUoUZr97va0c/UfLNru+PDmNA== dependencies: - "@prisma/debug" "5.7.0" - "@prisma/engines-version" "5.7.0-41.79fb5193cf0a8fdbef536e4b4a159cad677ab1b9" - "@prisma/get-platform" "5.7.0" + "@prisma/debug" "5.9.1" + "@prisma/engines-version" "5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64" + "@prisma/get-platform" "5.9.1" -"@prisma/get-platform@5.7.0": - version "5.7.0" - resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-5.7.0.tgz#eb81011f537c2d10c0225278cd5165a82d0b57c8" - integrity sha512-ZeV/Op4bZsWXuw5Tg05WwRI8BlKiRFhsixPcAM+5BKYSiUZiMKIi713tfT3drBq8+T0E1arNZgYSA9QYcglWNA== +"@prisma/get-platform@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-5.9.1.tgz#a66bb46ab4d30db786c84150ef074ab0aad4549e" + integrity sha512-6OQsNxTyhvG+T2Ksr8FPFpuPeL4r9u0JF0OZHUBI/Uy9SS43sPyAIutt4ZEAyqWQt104ERh70EZedkHZKsnNbg== dependencies: - "@prisma/debug" "5.7.0" + "@prisma/debug" "5.9.1" "@react-spring/animated@~9.7.3": version "9.7.3" @@ -7444,12 +7444,12 @@ pretty-bytes@^5.6.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== -prisma@5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.7.0.tgz#3c1c56d392b5d1137de954edefa4533fa092663e" - integrity sha512-0rcfXO2ErmGAtxnuTNHQT9ztL0zZheQjOI/VNJzdq87C3TlGPQtMqtM+KCwU6XtmkoEr7vbCQqA7HF9IY0ST+Q== +prisma@5.9.1: + version "5.9.1" + resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.9.1.tgz#baa3dd635fbf71504980978f10f55ea11068f6aa" + integrity sha512-Hy/8KJZz0ELtkw4FnG9MS9rNWlXcJhf98Z2QMqi0QiVMoS8PzsBkpla0/Y5hTlob8F3HeECYphBjqmBxrluUrQ== dependencies: - "@prisma/engines" "5.7.0" + "@prisma/engines" "5.9.1" promise.series@^0.2.0: version "0.2.0" From d5b4da63dfe55f6b2374faf7429e07d7e3b0b7a5 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sat, 17 Feb 2024 15:12:14 -0800 Subject: [PATCH 2/9] Updated page titles. --- src/app/(main)/console/TestConsole.tsx | 4 ---- src/app/(main)/console/[[...websiteId]]/page.tsx | 2 +- src/app/(main)/dashboard/page.tsx | 2 +- src/app/(main)/layout.tsx | 8 ++++++++ src/app/(main)/profile/page.tsx | 2 +- src/app/(main)/reports/ReportsPage.tsx | 2 +- src/app/(main)/reports/[reportId]/page.tsx | 2 +- src/app/(main)/reports/create/page.tsx | 2 +- src/app/(main)/reports/event-data/page.tsx | 2 +- src/app/(main)/reports/funnel/page.tsx | 2 +- src/app/(main)/reports/insights/page.tsx | 2 +- src/app/(main)/reports/page.tsx | 2 +- src/app/(main)/reports/retention/page.tsx | 2 +- src/app/(main)/settings/layout.tsx | 8 ++++++++ src/app/(main)/settings/teams/[teamId]/members/page.tsx | 2 +- src/app/(main)/settings/teams/[teamId]/team/page.tsx | 2 +- src/app/(main)/settings/teams/[teamId]/websites/page.tsx | 2 +- src/app/(main)/settings/teams/page.tsx | 2 +- src/app/(main)/settings/users/[userId]/page.tsx | 2 +- src/app/(main)/settings/users/page.tsx | 2 +- src/app/(main)/settings/websites/[websiteId]/page.tsx | 2 +- src/app/(main)/settings/websites/page.tsx | 2 +- src/app/(main)/teams/[teamId]/layout.tsx | 5 +++++ src/app/(main)/teams/[teamId]/reports/page.tsx | 5 +++++ src/app/(main)/teams/[teamId]/settings/layout.tsx | 5 +++++ src/app/(main)/websites/[websiteId]/WebsiteDetails.tsx | 1 + src/app/(main)/websites/[websiteId]/event-data/page.tsx | 2 +- src/app/(main)/websites/[websiteId]/page.tsx | 6 +++++- src/app/(main)/websites/[websiteId]/realtime/page.tsx | 5 +++++ src/app/(main)/websites/[websiteId]/reports/page.tsx | 5 +++++ src/app/(main)/websites/page.tsx | 2 +- src/app/layout.tsx | 5 ++++- src/app/login/page.tsx | 2 +- src/app/logout/page.tsx | 2 +- src/app/share/[...shareId]/page.tsx | 5 ----- 35 files changed, 74 insertions(+), 34 deletions(-) diff --git a/src/app/(main)/console/TestConsole.tsx b/src/app/(main)/console/TestConsole.tsx index 9d8ecb24..86a4792e 100644 --- a/src/app/(main)/console/TestConsole.tsx +++ b/src/app/(main)/console/TestConsole.tsx @@ -1,5 +1,4 @@ import { Button } from 'react-basics'; -import Head from 'next/head'; import Link from 'next/link'; import Script from 'next/script'; import WebsiteSelect from 'components/input/WebsiteSelect'; @@ -73,9 +72,6 @@ export function TestConsole({ websiteId }: { websiteId: string }) { return ( - - {website ? `${website.name} | Umami Console` : 'Umami Console'} - diff --git a/src/app/(main)/console/[[...websiteId]]/page.tsx b/src/app/(main)/console/[[...websiteId]]/page.tsx index e9a6f722..2cbdddcc 100644 --- a/src/app/(main)/console/[[...websiteId]]/page.tsx +++ b/src/app/(main)/console/[[...websiteId]]/page.tsx @@ -16,5 +16,5 @@ export default async function ({ params: { websiteId } }) { } export const metadata: Metadata = { - title: 'Test Console | Umami', + title: 'Test Console', }; diff --git a/src/app/(main)/dashboard/page.tsx b/src/app/(main)/dashboard/page.tsx index 634a2616..7a605110 100644 --- a/src/app/(main)/dashboard/page.tsx +++ b/src/app/(main)/dashboard/page.tsx @@ -6,5 +6,5 @@ export default function () { } export const metadata: Metadata = { - title: 'Dashboard | Umami', + title: 'Dashboard', }; diff --git a/src/app/(main)/layout.tsx b/src/app/(main)/layout.tsx index f5aeab67..0ecce22c 100644 --- a/src/app/(main)/layout.tsx +++ b/src/app/(main)/layout.tsx @@ -1,3 +1,4 @@ +import { Metadata } from 'next'; import App from './App'; import NavBar from './NavBar'; import Page from 'components/layout/Page'; @@ -17,3 +18,10 @@ export default function ({ children }) { ); } + +export const metadata: Metadata = { + title: { + template: '%s | Umami', + default: 'Umami', + }, +}; diff --git a/src/app/(main)/profile/page.tsx b/src/app/(main)/profile/page.tsx index c653624b..0c1f0082 100644 --- a/src/app/(main)/profile/page.tsx +++ b/src/app/(main)/profile/page.tsx @@ -6,5 +6,5 @@ export default function () { } export const metadata: Metadata = { - title: 'Profile | Umami', + title: 'Profile', }; diff --git a/src/app/(main)/reports/ReportsPage.tsx b/src/app/(main)/reports/ReportsPage.tsx index 498bce57..6a63c2cb 100644 --- a/src/app/(main)/reports/ReportsPage.tsx +++ b/src/app/(main)/reports/ReportsPage.tsx @@ -11,5 +11,5 @@ export default function ReportsPage({ teamId }: { teamId: string }) { ); } export const metadata = { - title: 'Reports | Umami', + title: 'Reports', }; diff --git a/src/app/(main)/reports/[reportId]/page.tsx b/src/app/(main)/reports/[reportId]/page.tsx index 12bf553a..690daf47 100644 --- a/src/app/(main)/reports/[reportId]/page.tsx +++ b/src/app/(main)/reports/[reportId]/page.tsx @@ -6,5 +6,5 @@ export default function ({ params: { reportId } }) { } export const metadata: Metadata = { - title: 'Reports | Umami', + title: 'Reports', }; diff --git a/src/app/(main)/reports/create/page.tsx b/src/app/(main)/reports/create/page.tsx index 4a592845..c2b1c18c 100644 --- a/src/app/(main)/reports/create/page.tsx +++ b/src/app/(main)/reports/create/page.tsx @@ -6,5 +6,5 @@ export default function () { } export const metadata: Metadata = { - title: 'Create Report | Umami', + title: 'Create Report', }; diff --git a/src/app/(main)/reports/event-data/page.tsx b/src/app/(main)/reports/event-data/page.tsx index 1f2936e6..2d6477e1 100644 --- a/src/app/(main)/reports/event-data/page.tsx +++ b/src/app/(main)/reports/event-data/page.tsx @@ -6,5 +6,5 @@ export default function () { } export const metadata: Metadata = { - title: 'Event Data Report | Umami', + title: 'Event Data Report', }; diff --git a/src/app/(main)/reports/funnel/page.tsx b/src/app/(main)/reports/funnel/page.tsx index e00cfd51..40270bba 100644 --- a/src/app/(main)/reports/funnel/page.tsx +++ b/src/app/(main)/reports/funnel/page.tsx @@ -6,5 +6,5 @@ export default function () { } export const metadata: Metadata = { - title: 'Funnel Report | Umami', + title: 'Funnel Report', }; diff --git a/src/app/(main)/reports/insights/page.tsx b/src/app/(main)/reports/insights/page.tsx index cb3b9016..1e9e0ea6 100644 --- a/src/app/(main)/reports/insights/page.tsx +++ b/src/app/(main)/reports/insights/page.tsx @@ -6,5 +6,5 @@ export default function () { } export const metadata: Metadata = { - title: 'Insights Report | Umami', + title: 'Insights Report', }; diff --git a/src/app/(main)/reports/page.tsx b/src/app/(main)/reports/page.tsx index 44a034a0..4b495aca 100644 --- a/src/app/(main)/reports/page.tsx +++ b/src/app/(main)/reports/page.tsx @@ -6,5 +6,5 @@ export default function ({ params: { teamId } }: { params: { teamId: string } }) } export const metadata: Metadata = { - title: 'Reports | Umami', + title: 'Reports', }; diff --git a/src/app/(main)/reports/retention/page.tsx b/src/app/(main)/reports/retention/page.tsx index 81071403..0f04fe98 100644 --- a/src/app/(main)/reports/retention/page.tsx +++ b/src/app/(main)/reports/retention/page.tsx @@ -6,5 +6,5 @@ export default function () { } export const metadata: Metadata = { - title: 'Create Report | Umami', + title: 'Retention Report', }; diff --git a/src/app/(main)/settings/layout.tsx b/src/app/(main)/settings/layout.tsx index 487a9d59..573897d5 100644 --- a/src/app/(main)/settings/layout.tsx +++ b/src/app/(main)/settings/layout.tsx @@ -1,4 +1,5 @@ import SettingsLayout from './SettingsLayout'; +import { Metadata } from 'next'; export default function ({ children }) { if (process.env.cloudMode) { @@ -7,3 +8,10 @@ export default function ({ children }) { return {children}; } + +export const metadata: Metadata = { + title: { + template: '%s | Settings | Umami', + default: 'Settings | Umami', + }, +}; diff --git a/src/app/(main)/settings/teams/[teamId]/members/page.tsx b/src/app/(main)/settings/teams/[teamId]/members/page.tsx index e36e9214..fbee6a8e 100644 --- a/src/app/(main)/settings/teams/[teamId]/members/page.tsx +++ b/src/app/(main)/settings/teams/[teamId]/members/page.tsx @@ -6,5 +6,5 @@ export default function ({ params: { teamId } }) { } export const metadata: Metadata = { - title: 'Team members - Umami', + title: 'Team Members', }; diff --git a/src/app/(main)/settings/teams/[teamId]/team/page.tsx b/src/app/(main)/settings/teams/[teamId]/team/page.tsx index de2c9657..0c4dd201 100644 --- a/src/app/(main)/settings/teams/[teamId]/team/page.tsx +++ b/src/app/(main)/settings/teams/[teamId]/team/page.tsx @@ -6,5 +6,5 @@ export default function ({ params: { teamId } }) { } export const metadata: Metadata = { - title: 'Teams Settings - Umami', + title: 'Teams Details', }; diff --git a/src/app/(main)/settings/teams/[teamId]/websites/page.tsx b/src/app/(main)/settings/teams/[teamId]/websites/page.tsx index ac4eb94f..cfb465fb 100644 --- a/src/app/(main)/settings/teams/[teamId]/websites/page.tsx +++ b/src/app/(main)/settings/teams/[teamId]/websites/page.tsx @@ -6,5 +6,5 @@ export default function ({ params: { teamId } }) { } export const metadata: Metadata = { - title: 'Teams Websites - Umami', + title: 'Teams Websites', }; diff --git a/src/app/(main)/settings/teams/page.tsx b/src/app/(main)/settings/teams/page.tsx index e45d6f2d..93be83a2 100644 --- a/src/app/(main)/settings/teams/page.tsx +++ b/src/app/(main)/settings/teams/page.tsx @@ -6,5 +6,5 @@ export default function () { } export const metadata: Metadata = { - title: 'Teams Settings - Umami', + title: 'Teams', }; diff --git a/src/app/(main)/settings/users/[userId]/page.tsx b/src/app/(main)/settings/users/[userId]/page.tsx index 414ad483..d5dc5005 100644 --- a/src/app/(main)/settings/users/[userId]/page.tsx +++ b/src/app/(main)/settings/users/[userId]/page.tsx @@ -6,5 +6,5 @@ export default function ({ params: { userId } }) { } export const metadata: Metadata = { - title: 'User Settings - Umami', + title: 'User Settings', }; diff --git a/src/app/(main)/settings/users/page.tsx b/src/app/(main)/settings/users/page.tsx index fa63cf18..a3209ab3 100644 --- a/src/app/(main)/settings/users/page.tsx +++ b/src/app/(main)/settings/users/page.tsx @@ -5,5 +5,5 @@ export default function () { return ; } export const metadata: Metadata = { - title: 'Users | Umami', + title: 'Users', }; diff --git a/src/app/(main)/settings/websites/[websiteId]/page.tsx b/src/app/(main)/settings/websites/[websiteId]/page.tsx index b8eb8530..33caff5a 100644 --- a/src/app/(main)/settings/websites/[websiteId]/page.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/page.tsx @@ -6,5 +6,5 @@ export default async function ({ params: { websiteId } }) { } export const metadata: Metadata = { - title: 'Website settings - Umami', + title: 'Website', }; diff --git a/src/app/(main)/settings/websites/page.tsx b/src/app/(main)/settings/websites/page.tsx index 50a2df87..8d305e6b 100644 --- a/src/app/(main)/settings/websites/page.tsx +++ b/src/app/(main)/settings/websites/page.tsx @@ -6,5 +6,5 @@ export default function ({ params: { teamId } }: { params: { teamId: string } }) } export const metadata: Metadata = { - title: 'Websites Settings | Umami', + title: 'Websites', }; diff --git a/src/app/(main)/teams/[teamId]/layout.tsx b/src/app/(main)/teams/[teamId]/layout.tsx index f18d802a..c804c746 100644 --- a/src/app/(main)/teams/[teamId]/layout.tsx +++ b/src/app/(main)/teams/[teamId]/layout.tsx @@ -1,5 +1,10 @@ import TeamProvider from './TeamProvider'; +import { Metadata } from 'next'; export default function ({ children, params: { teamId } }) { return {children}; } + +export const metadata: Metadata = { + title: 'Teams', +}; diff --git a/src/app/(main)/teams/[teamId]/reports/page.tsx b/src/app/(main)/teams/[teamId]/reports/page.tsx index 6eedabb4..5404e128 100644 --- a/src/app/(main)/teams/[teamId]/reports/page.tsx +++ b/src/app/(main)/teams/[teamId]/reports/page.tsx @@ -1,3 +1,8 @@ import Page from 'app/(main)/reports/page'; +import { Metadata } from 'next'; export default Page; + +export const metadata: Metadata = { + title: 'Team Reports', +}; diff --git a/src/app/(main)/teams/[teamId]/settings/layout.tsx b/src/app/(main)/teams/[teamId]/settings/layout.tsx index c86d0196..b32d39e8 100644 --- a/src/app/(main)/teams/[teamId]/settings/layout.tsx +++ b/src/app/(main)/teams/[teamId]/settings/layout.tsx @@ -1,5 +1,10 @@ import TeamSettingsLayout from './TeamSettingsLayout'; +import { Metadata } from 'next'; export default function ({ children, params: { teamId } }) { return {children}; } + +export const metadata: Metadata = { + title: 'Team Settings', +}; diff --git a/src/app/(main)/websites/[websiteId]/WebsiteDetails.tsx b/src/app/(main)/websites/[websiteId]/WebsiteDetails.tsx index e4203177..d917c6d7 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteDetails.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteDetails.tsx @@ -1,3 +1,4 @@ +'use client'; import { Loading } from 'react-basics'; import { usePathname } from 'next/navigation'; import Page from 'components/layout/Page'; diff --git a/src/app/(main)/websites/[websiteId]/event-data/page.tsx b/src/app/(main)/websites/[websiteId]/event-data/page.tsx index 5ae0799a..24cf4fea 100644 --- a/src/app/(main)/websites/[websiteId]/event-data/page.tsx +++ b/src/app/(main)/websites/[websiteId]/event-data/page.tsx @@ -6,5 +6,5 @@ export default async function ({ params: { websiteId } }) { } export const metadata: Metadata = { - title: 'Event Data | Umami', + title: 'Event Data', }; diff --git a/src/app/(main)/websites/[websiteId]/page.tsx b/src/app/(main)/websites/[websiteId]/page.tsx index d7e6fcd0..ddb6c833 100644 --- a/src/app/(main)/websites/[websiteId]/page.tsx +++ b/src/app/(main)/websites/[websiteId]/page.tsx @@ -1,6 +1,10 @@ -'use client'; import WebsiteDetails from './WebsiteDetails'; +import { Metadata } from 'next'; export default function WebsitePage({ params: { websiteId } }) { return ; } + +export const metadata: Metadata = { + title: 'Websites', +}; diff --git a/src/app/(main)/websites/[websiteId]/realtime/page.tsx b/src/app/(main)/websites/[websiteId]/realtime/page.tsx index 1ce90b13..0ca7ffd8 100644 --- a/src/app/(main)/websites/[websiteId]/realtime/page.tsx +++ b/src/app/(main)/websites/[websiteId]/realtime/page.tsx @@ -1,5 +1,10 @@ import WebsiteRealtimePage from './WebsiteRealtimePage'; +import { Metadata } from 'next'; export default function ({ params: { websiteId } }) { return ; } + +export const metadata: Metadata = { + title: 'Real-time', +}; diff --git a/src/app/(main)/websites/[websiteId]/reports/page.tsx b/src/app/(main)/websites/[websiteId]/reports/page.tsx index 7726a2cd..caa805a6 100644 --- a/src/app/(main)/websites/[websiteId]/reports/page.tsx +++ b/src/app/(main)/websites/[websiteId]/reports/page.tsx @@ -1,5 +1,10 @@ import WebsiteReportsPage from './WebsiteReportsPage'; +import { Metadata } from 'next'; export default function ({ params: { websiteId } }) { return ; } + +export const metadata: Metadata = { + title: 'Website Reports', +}; diff --git a/src/app/(main)/websites/page.tsx b/src/app/(main)/websites/page.tsx index ee6e4336..ee49cb8a 100644 --- a/src/app/(main)/websites/page.tsx +++ b/src/app/(main)/websites/page.tsx @@ -6,5 +6,5 @@ export default function ({ params: { teamId, userId } }) { } export const metadata: Metadata = { - title: 'Websites | Umami', + title: 'Websites', }; diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 970c33f0..33ae9fa9 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -32,5 +32,8 @@ export default function ({ children }) { } export const metadata: Metadata = { - title: 'umami', + title: { + template: '%s | Umami', + default: 'Umami', + }, }; diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx index ee4c0a70..6f34d987 100644 --- a/src/app/login/page.tsx +++ b/src/app/login/page.tsx @@ -6,5 +6,5 @@ export default async function () { } export const metadata: Metadata = { - title: 'Login | Umami', + title: 'Login', }; diff --git a/src/app/logout/page.tsx b/src/app/logout/page.tsx index b74f6584..a253049a 100644 --- a/src/app/logout/page.tsx +++ b/src/app/logout/page.tsx @@ -6,5 +6,5 @@ export default function () { } export const metadata: Metadata = { - title: 'Logout | Umami', + title: 'Logout', }; diff --git a/src/app/share/[...shareId]/page.tsx b/src/app/share/[...shareId]/page.tsx index 02d244e9..e8ca8e60 100644 --- a/src/app/share/[...shareId]/page.tsx +++ b/src/app/share/[...shareId]/page.tsx @@ -1,10 +1,5 @@ import SharePage from './SharePage'; -import { Metadata } from 'next'; export default function ({ params: { shareId } }) { return ; } - -export const metadata: Metadata = { - title: 'umami', -}; From 117cb6168c0f8fce7f76577d6320f816b0c50230 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Mon, 19 Feb 2024 09:36:44 -0800 Subject: [PATCH 3/9] Added hostUrl prop. --- .../websites/[websiteId]/WebsiteSettings.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx b/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx index 86491227..2f373969 100644 --- a/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx @@ -10,7 +10,15 @@ import ShareUrl from './ShareUrl'; import { useMessages } from 'components/hooks'; import { WebsiteContext } from 'app/(main)/websites/[websiteId]/WebsiteProvider'; -export function WebsiteSettings({ websiteId, openExternal = false }) { +export function WebsiteSettings({ + websiteId, + hostUrl, + openExternal = false, +}: { + websiteId: string; + hostUrl: string; + openExternal: boolean; +}) { const website = useContext(WebsiteContext); const { formatMessage, labels, messages } = useMessages(); const [tab, setTab] = useState('details'); @@ -39,7 +47,7 @@ export function WebsiteSettings({ websiteId, openExternal = false }) { {formatMessage(labels.data)} {tab === 'details' && } - {tab === 'tracking' && } + {tab === 'tracking' && } {tab === 'share' && } {tab === 'data' && } From 9671414edd171015545008a7b793fc676f491d33 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Mon, 19 Feb 2024 10:05:51 -0800 Subject: [PATCH 4/9] Updated types. --- .../(main)/settings/websites/[websiteId]/WebsiteSettings.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx b/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx index 2f373969..afd92cf3 100644 --- a/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx @@ -16,8 +16,8 @@ export function WebsiteSettings({ openExternal = false, }: { websiteId: string; - hostUrl: string; - openExternal: boolean; + hostUrl?: string; + openExternal?: boolean; }) { const website = useContext(WebsiteContext); const { formatMessage, labels, messages } = useMessages(); From 5468ca5dd32d4e900426fd8066ce10bb7ecaf421 Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Mon, 19 Feb 2024 11:18:50 -0800 Subject: [PATCH 5/9] fix getActiveVisitors return type --- src/components/metrics/ActiveUsers.tsx | 2 +- src/queries/analytics/getActiveVisitors.ts | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/metrics/ActiveUsers.tsx b/src/components/metrics/ActiveUsers.tsx index 9a5ff327..05d0fc1d 100644 --- a/src/components/metrics/ActiveUsers.tsx +++ b/src/components/metrics/ActiveUsers.tsx @@ -24,7 +24,7 @@ export function ActiveUsers({ const count = useMemo(() => { if (websiteId) { - return data?.[0]?.x || 0; + return data?.x || 0; } return value !== undefined ? value : 0; diff --git a/src/queries/analytics/getActiveVisitors.ts b/src/queries/analytics/getActiveVisitors.ts index 962bea35..9913977f 100644 --- a/src/queries/analytics/getActiveVisitors.ts +++ b/src/queries/analytics/getActiveVisitors.ts @@ -13,7 +13,7 @@ export async function getActiveVisitors(...args: [websiteId: string]) { async function relationalQuery(websiteId: string) { const { rawQuery } = prisma; - return rawQuery( + const result = await rawQuery( ` select count(distinct session_id) x from website_event @@ -22,6 +22,8 @@ async function relationalQuery(websiteId: string) { `, { websiteId, startAt: subMinutes(new Date(), 5) }, ); + + return result[0] ?? null; } async function clickhouseQuery(websiteId: string): Promise<{ x: number }> { From d709f4eb80d2b2159f4135681188d59f29a4a6b4 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Mon, 19 Feb 2024 11:31:11 -0800 Subject: [PATCH 6/9] Fixed websites paging. --- .../{TeamsPage.tsx => TeamsSettingsPage.tsx} | 2 +- src/app/(main)/settings/teams/page.tsx | 4 ++-- .../{UsersPage.tsx => UsersSettingsPage.tsx} | 2 +- src/app/(main)/settings/users/page.tsx | 4 ++-- .../settings/websites/WebsitesDataTable.tsx | 4 +--- src/app/(main)/settings/websites/WebsitesPage.tsx | 15 --------------- .../settings/websites/WebsitesSettingsPage.tsx | 12 ++++++++++++ .../{WebsitePage.tsx => WebsiteSettingsPage.tsx} | 2 +- .../(main)/settings/websites/[websiteId]/page.tsx | 4 ++-- src/app/(main)/settings/websites/page.tsx | 4 ++-- src/app/(main)/websites/WebsitesPage.tsx | 9 ++++++--- src/components/common/Pager.tsx | 1 + src/components/hooks/queries/useWebsites.ts | 3 ++- src/components/input/WebsiteSelect.tsx | 4 +--- 14 files changed, 34 insertions(+), 36 deletions(-) rename src/app/(main)/settings/teams/{TeamsPage.tsx => TeamsSettingsPage.tsx} (79%) rename src/app/(main)/settings/users/{UsersPage.tsx => UsersSettingsPage.tsx} (79%) delete mode 100644 src/app/(main)/settings/websites/WebsitesPage.tsx create mode 100644 src/app/(main)/settings/websites/WebsitesSettingsPage.tsx rename src/app/(main)/settings/websites/[websiteId]/{WebsitePage.tsx => WebsiteSettingsPage.tsx} (76%) diff --git a/src/app/(main)/settings/teams/TeamsPage.tsx b/src/app/(main)/settings/teams/TeamsSettingsPage.tsx similarity index 79% rename from src/app/(main)/settings/teams/TeamsPage.tsx rename to src/app/(main)/settings/teams/TeamsSettingsPage.tsx index 33ddda3d..9b45845b 100644 --- a/src/app/(main)/settings/teams/TeamsPage.tsx +++ b/src/app/(main)/settings/teams/TeamsSettingsPage.tsx @@ -2,7 +2,7 @@ import TeamsDataTable from './TeamsDataTable'; import TeamsHeader from './TeamsHeader'; -export default function TeamsPage() { +export default function TeamsSettingsPage() { return ( <> diff --git a/src/app/(main)/settings/teams/page.tsx b/src/app/(main)/settings/teams/page.tsx index 93be83a2..4342b607 100644 --- a/src/app/(main)/settings/teams/page.tsx +++ b/src/app/(main)/settings/teams/page.tsx @@ -1,8 +1,8 @@ import { Metadata } from 'next'; -import TeamsPage from './TeamsPage'; +import TeamsSettingsPage from './TeamsSettingsPage'; export default function () { - return ; + return ; } export const metadata: Metadata = { diff --git a/src/app/(main)/settings/users/UsersPage.tsx b/src/app/(main)/settings/users/UsersSettingsPage.tsx similarity index 79% rename from src/app/(main)/settings/users/UsersPage.tsx rename to src/app/(main)/settings/users/UsersSettingsPage.tsx index 348c5a33..664f58d1 100644 --- a/src/app/(main)/settings/users/UsersPage.tsx +++ b/src/app/(main)/settings/users/UsersSettingsPage.tsx @@ -2,7 +2,7 @@ import UsersDataTable from './UsersDataTable'; import UsersHeader from './UsersHeader'; -export default function UsersPage() { +export default function UsersSettingsPage() { return ( <> diff --git a/src/app/(main)/settings/users/page.tsx b/src/app/(main)/settings/users/page.tsx index a3209ab3..01d5156f 100644 --- a/src/app/(main)/settings/users/page.tsx +++ b/src/app/(main)/settings/users/page.tsx @@ -1,8 +1,8 @@ import { Metadata } from 'next'; -import UsersPage from './UsersPage'; +import UsersSettingsPage from './UsersSettingsPage'; export default function () { - return ; + return ; } export const metadata: Metadata = { title: 'Users', diff --git a/src/app/(main)/settings/websites/WebsitesDataTable.tsx b/src/app/(main)/settings/websites/WebsitesDataTable.tsx index a9d99f9a..6ffe6fd0 100644 --- a/src/app/(main)/settings/websites/WebsitesDataTable.tsx +++ b/src/app/(main)/settings/websites/WebsitesDataTable.tsx @@ -4,21 +4,19 @@ import DataTable from 'components/common/DataTable'; import { useWebsites } from 'components/hooks'; export function WebsitesDataTable({ - userId, teamId, allowEdit = true, allowView = true, showActions = true, children, }: { - userId?: string; teamId?: string; allowEdit?: boolean; allowView?: boolean; showActions?: boolean; children?: ReactNode; }) { - const queryResult = useWebsites({ userId, teamId }); + const queryResult = useWebsites({ teamId }); return ( diff --git a/src/app/(main)/settings/websites/WebsitesPage.tsx b/src/app/(main)/settings/websites/WebsitesPage.tsx deleted file mode 100644 index 4de8f105..00000000 --- a/src/app/(main)/settings/websites/WebsitesPage.tsx +++ /dev/null @@ -1,15 +0,0 @@ -'use client'; -import { useLogin } from 'components/hooks'; -import WebsitesDataTable from './WebsitesDataTable'; -import WebsitesHeader from './WebsitesHeader'; - -export default function WebsitesPage({ teamId }: { teamId: string }) { - const { user } = useLogin(); - - return ( - <> - - - - ); -} diff --git a/src/app/(main)/settings/websites/WebsitesSettingsPage.tsx b/src/app/(main)/settings/websites/WebsitesSettingsPage.tsx new file mode 100644 index 00000000..14411da1 --- /dev/null +++ b/src/app/(main)/settings/websites/WebsitesSettingsPage.tsx @@ -0,0 +1,12 @@ +'use client'; +import WebsitesDataTable from './WebsitesDataTable'; +import WebsitesHeader from './WebsitesHeader'; + +export default function WebsitesSettingsPage({ teamId }: { teamId: string }) { + return ( + <> + + + + ); +} diff --git a/src/app/(main)/settings/websites/[websiteId]/WebsitePage.tsx b/src/app/(main)/settings/websites/[websiteId]/WebsiteSettingsPage.tsx similarity index 76% rename from src/app/(main)/settings/websites/[websiteId]/WebsitePage.tsx rename to src/app/(main)/settings/websites/[websiteId]/WebsiteSettingsPage.tsx index 752fd33c..00147629 100644 --- a/src/app/(main)/settings/websites/[websiteId]/WebsitePage.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/WebsiteSettingsPage.tsx @@ -2,7 +2,7 @@ import WebsiteProvider from 'app/(main)/websites/[websiteId]/WebsiteProvider'; import WebsiteSettings from './WebsiteSettings'; -export default function WebsitePage({ websiteId }: { websiteId: string }) { +export default function WebsiteSettingsPage({ websiteId }: { websiteId: string }) { return ( diff --git a/src/app/(main)/settings/websites/[websiteId]/page.tsx b/src/app/(main)/settings/websites/[websiteId]/page.tsx index 33caff5a..f3d87c78 100644 --- a/src/app/(main)/settings/websites/[websiteId]/page.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/page.tsx @@ -1,8 +1,8 @@ -import WebsitePage from './WebsitePage'; +import WebsiteSettingsPage from './WebsiteSettingsPage'; import { Metadata } from 'next'; export default async function ({ params: { websiteId } }) { - return ; + return ; } export const metadata: Metadata = { diff --git a/src/app/(main)/settings/websites/page.tsx b/src/app/(main)/settings/websites/page.tsx index 8d305e6b..d073b32b 100644 --- a/src/app/(main)/settings/websites/page.tsx +++ b/src/app/(main)/settings/websites/page.tsx @@ -1,8 +1,8 @@ import { Metadata } from 'next'; -import WebsitesPage from './WebsitesPage'; +import WebsitesSettingsPage from './WebsitesSettingsPage'; export default function ({ params: { teamId } }: { params: { teamId: string } }) { - return ; + return ; } export const metadata: Metadata = { diff --git a/src/app/(main)/websites/WebsitesPage.tsx b/src/app/(main)/websites/WebsitesPage.tsx index fa2e9f71..75776c4c 100644 --- a/src/app/(main)/websites/WebsitesPage.tsx +++ b/src/app/(main)/websites/WebsitesPage.tsx @@ -1,12 +1,15 @@ 'use client'; import WebsitesHeader from 'app/(main)/settings/websites/WebsitesHeader'; import WebsitesDataTable from 'app/(main)/settings/websites/WebsitesDataTable'; +import { useLogin } from 'components/hooks'; + +export default function WebsitesPage({ teamId }: { teamId: string; userId: string }) { + const { user } = useLogin(); -export default function WebsitesPage({ teamId, userId }: { teamId: string; userId: string }) { return ( <> - - + + ); } diff --git a/src/components/common/Pager.tsx b/src/components/common/Pager.tsx index 82292156..3e0a8033 100644 --- a/src/components/common/Pager.tsx +++ b/src/components/common/Pager.tsx @@ -23,6 +23,7 @@ export function Pager({ page, pageSize, count, onPageChange, className }: PagerP const handlePageChange = (value: number) => { const nextPage = page + value; + if (nextPage > 0 && nextPage <= maxPage) { onPageChange(nextPage); } diff --git a/src/components/hooks/queries/useWebsites.ts b/src/components/hooks/queries/useWebsites.ts index 8bfad333..94198975 100644 --- a/src/components/hooks/queries/useWebsites.ts +++ b/src/components/hooks/queries/useWebsites.ts @@ -13,8 +13,9 @@ export function useWebsites( return useFilterQuery({ queryKey: ['websites', { userId, teamId, modified, ...params }], - queryFn: () => { + queryFn: (data: any) => { return get(teamId ? `/teams/${teamId}/websites` : `/users/${userId || user.id}/websites`, { + ...data, ...params, }); }, diff --git a/src/components/input/WebsiteSelect.tsx b/src/components/input/WebsiteSelect.tsx index 1ea8d392..0540ed38 100644 --- a/src/components/input/WebsiteSelect.tsx +++ b/src/components/input/WebsiteSelect.tsx @@ -7,12 +7,10 @@ import styles from './WebsiteSelect.module.css'; export function WebsiteSelect({ websiteId, teamId, - userId, onSelect, }: { websiteId?: string; teamId?: string; - userId?: string; onSelect?: (key: any) => void; }) { const { formatMessage, labels, messages } = useMessages(); @@ -21,7 +19,7 @@ export function WebsiteSelect({ const { data: website } = useWebsite(selectedId as string); - const queryResult = useWebsites({ teamId, userId }, { query, pageSize: 5 }); + const queryResult = useWebsites({ teamId }, { query, pageSize: 5 }); const renderValue = () => { return website?.name; From 7fce92dffdcf12e0bfb7be951ef0a1bc32938ff1 Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Mon, 19 Feb 2024 13:39:57 -0800 Subject: [PATCH 7/9] fix active visitor bug --- src/queries/analytics/getActiveVisitors.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/queries/analytics/getActiveVisitors.ts b/src/queries/analytics/getActiveVisitors.ts index 9913977f..6d55f5de 100644 --- a/src/queries/analytics/getActiveVisitors.ts +++ b/src/queries/analytics/getActiveVisitors.ts @@ -29,7 +29,7 @@ async function relationalQuery(websiteId: string) { async function clickhouseQuery(websiteId: string): Promise<{ x: number }> { const { rawQuery } = clickhouse; - const result = rawQuery( + const result = await rawQuery( ` select count(distinct session_id) x From 7639d6b36ee557723d633a218f45d6d4516c8114 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Mon, 19 Feb 2024 15:46:43 -0800 Subject: [PATCH 8/9] Fixed share url. --- .../(main)/settings/websites/[websiteId]/WebsiteSettings.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx b/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx index afd92cf3..ebe65fe0 100644 --- a/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/WebsiteSettings.tsx @@ -48,7 +48,7 @@ export function WebsiteSettings({ {tab === 'details' && } {tab === 'tracking' && } - {tab === 'share' && } + {tab === 'share' && } {tab === 'data' && } ); From 2832ff9622295cb8206f97e5dbd1982040ce02ce Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Mon, 19 Feb 2024 18:30:44 -0800 Subject: [PATCH 9/9] Always fetch website directly. --- src/lib/auth.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/lib/auth.ts b/src/lib/auth.ts index 92ec23bb..5b17cf13 100644 --- a/src/lib/auth.ts +++ b/src/lib/auth.ts @@ -5,8 +5,7 @@ import { PERMISSIONS, ROLE_PERMISSIONS, SHARE_TOKEN_HEADER, ROLES } from 'lib/co import { secret } from 'lib/crypto'; import { NextApiRequest } from 'next'; import { createSecureToken, ensureArray, getRandomChars, parseToken } from 'next-basics'; -import { getTeamUser } from 'queries'; -import { loadWebsite } from './load'; +import { getTeamUser, getWebsite } from 'queries'; import { Auth } from './types'; const log = debug('umami:auth'); @@ -50,7 +49,7 @@ export async function canViewWebsite({ user, shareToken }: Auth, websiteId: stri return true; } - const website = await loadWebsite(websiteId); + const website = await getWebsite(websiteId); if (website.userId) { return user.id === website.userId; @@ -86,7 +85,7 @@ export async function canUpdateWebsite({ user }: Auth, websiteId: string) { return true; } - const website = await loadWebsite(websiteId); + const website = await getWebsite(websiteId); if (website.userId) { return user.id === website.userId; @@ -102,7 +101,7 @@ export async function canUpdateWebsite({ user }: Auth, websiteId: string) { } export async function canTransferWebsiteToUser({ user }: Auth, websiteId: string, userId: string) { - const website = await loadWebsite(websiteId); + const website = await getWebsite(websiteId); if (website.teamId && user.id === userId) { const teamUser = await getTeamUser(website.teamId, userId); @@ -114,9 +113,9 @@ export async function canTransferWebsiteToUser({ user }: Auth, websiteId: string } export async function canTransferWebsiteToTeam({ user }: Auth, websiteId: string, teamId: string) { - const website = await loadWebsite(websiteId); + const website = await getWebsite(websiteId); - if (website.userId === user.id) { + if (website.userId && website.userId === user.id) { const teamUser = await getTeamUser(teamId, user.id); return teamUser?.role === ROLES.teamOwner; @@ -130,7 +129,7 @@ export async function canDeleteWebsite({ user }: Auth, websiteId: string) { return true; } - const website = await loadWebsite(websiteId); + const website = await getWebsite(websiteId); if (website.userId) { return user.id === website.userId;