diff --git a/docker-compose.yml b/docker-compose.yml index b138298..48a570b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,6 @@ services: ports: - 3000:3000 environment: - - NEXT_PUBLIC_BASE_URL=${NEXT_PUBLIC_BASE_URL} - PG_USER=${PG_USER} - PG_PASSWORD=${PG_PASSWORD} - PG_HOST=${PG_HOST} diff --git a/src/app/(admin)/admin/dashboard/create/page.tsx b/src/app/(admin)/admin/dashboard/create/page.tsx index 83d234a..d74761a 100644 --- a/src/app/(admin)/admin/dashboard/create/page.tsx +++ b/src/app/(admin)/admin/dashboard/create/page.tsx @@ -1,6 +1,11 @@ import { getSession } from "@/lib/auth/session" +import type { Metadata } from "next" import { UrlFormCard } from "../../_components/url-form-card" +export const metadata: Metadata = { + title: "Create" +} + export default async function DashboardCreatePage() { const { session, redirectToSignIn } = await getSession() diff --git a/src/app/(admin)/admin/dashboard/edit/[id]/page.tsx b/src/app/(admin)/admin/dashboard/edit/[id]/page.tsx index b28e184..2b0361c 100644 --- a/src/app/(admin)/admin/dashboard/edit/[id]/page.tsx +++ b/src/app/(admin)/admin/dashboard/edit/[id]/page.tsx @@ -1,8 +1,22 @@ import { getSession } from "@/lib/auth/session" import { getUrlById } from "@/lib/db/urls" +import type { Metadata } from "next" import { notFound } from "next/navigation" import { UrlFormCard } from "../../../_components/url-form-card" +export async function generateMetadata({ + params +}: { + params: Promise<{ id: string }> +}): Promise { + const { id } = await params + const url = await getUrlById(id) + + return { + title: url === undefined ? "Link doesn't exist" : `Edit ${url.title}` + } +} + export default async function EditPage({ params }: { diff --git a/src/app/(admin)/admin/dashboard/list/page.tsx b/src/app/(admin)/admin/dashboard/list/page.tsx index 4d45ac9..4e3bda4 100644 --- a/src/app/(admin)/admin/dashboard/list/page.tsx +++ b/src/app/(admin)/admin/dashboard/list/page.tsx @@ -1,7 +1,12 @@ import { getSession } from "@/lib/auth/session" import { getAllUrls } from "@/lib/db/urls" +import type { Metadata } from "next" import { UrlsDataTable } from "../../_components/urls-data-table" +export const metadata: Metadata = { + title: "List" +} + export default async function DashboardListPage() { const { session, redirectToSignIn } = await getSession() diff --git a/src/app/(admin)/admin/dashboard/page.tsx b/src/app/(admin)/admin/dashboard/page.tsx index 1b4acab..9c2a4a7 100644 --- a/src/app/(admin)/admin/dashboard/page.tsx +++ b/src/app/(admin)/admin/dashboard/page.tsx @@ -1,9 +1,14 @@ import { getSession } from "@/lib/auth/session" import { getDashboardStats } from "@/lib/dashboard/stats" import { LinkIcon, MousePointerClick, TrendingUp } from "lucide-react" +import type { Metadata } from "next" import { UrlFormCard } from "../_components/simple-url-form-card" import { StatsCard } from "../_components/stats-card" +export const metadata: Metadata = { + title: "Dashboard" +} + export default async function Dashboard() { const { session, redirectToSignIn } = await getSession() diff --git a/src/app/(admin)/admin/user/auth/page.tsx b/src/app/(admin)/admin/user/auth/page.tsx index 08405cc..3701a4e 100644 --- a/src/app/(admin)/admin/user/auth/page.tsx +++ b/src/app/(admin)/admin/user/auth/page.tsx @@ -1,8 +1,13 @@ import { getSession } from "@/lib/auth/session" +import type { Metadata } from "next" import DashBoardTitle from "../../_components/dashboard-title" import { PasskeyAdd } from "../../_components/passkey" import PasskeysList from "../../_components/passkeys-list" +export const metadata: Metadata = { + title: "Auth" +} + export default async function UserAuthPage() { const { session, redirectToSignIn } = await getSession() diff --git a/src/app/(admin)/admin/user/page.tsx b/src/app/(admin)/admin/user/page.tsx index 39cb2db..8fad50e 100644 --- a/src/app/(admin)/admin/user/page.tsx +++ b/src/app/(admin)/admin/user/page.tsx @@ -1,7 +1,12 @@ import { getSession } from "@/lib/auth/session" +import type { Metadata } from "next" import DashBoardTitle from "../_components/dashboard-title" import UserProfile from "../_components/user-profile" +export const metadata: Metadata = { + title: "User Profile" +} + export default async function UserPage() { const { session, redirectToSignIn } = await getSession() diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 512d2a6..efce5b6 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -2,7 +2,6 @@ import type { Metadata } from "next" import { ReactNode } from "react" import "./globals.css" import { Toaster } from "@/components/ui/sonner" -import { env } from "@/lib/env/client" import { ThemeProvider } from "next-themes" export const metadata: Metadata = { @@ -15,8 +14,7 @@ export const metadata: Metadata = { keywords: ["URL shortener", "link management", "analytics", "custom slugs", "link tracking", "short links"], authors: [{ name: "Taken" }], creator: "Taken", - publisher: "Taken", - metadataBase: new URL(env.NEXT_PUBLIC_BASE_URL) + publisher: "Taken" } export default function RootLayout({ diff --git a/src/lib/env/client.ts b/src/lib/env/client.ts deleted file mode 100644 index e697c1e..0000000 --- a/src/lib/env/client.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { createEnv } from "@t3-oss/env-nextjs" -import { z } from "zod" - -export const env = createEnv({ - client: { - NEXT_PUBLIC_BASE_URL: z.url().default("https://l.mairimashita.org") - }, - runtimeEnv: { - NEXT_PUBLIC_BASE_URL: process.env.NEXT_PUBLIC_BASE_URL - }, - emptyStringAsUndefined: true -})