URLs
Manage all your shortened URLs.
diff --git a/src/app/(admin)/dashboard/page.tsx b/src/app/(admin)/admin/dashboard/page.tsx
similarity index 87%
rename from src/app/(admin)/dashboard/page.tsx
rename to src/app/(admin)/admin/dashboard/page.tsx
index 24cc977..1b4acab 100644
--- a/src/app/(admin)/dashboard/page.tsx
+++ b/src/app/(admin)/admin/dashboard/page.tsx
@@ -1,14 +1,14 @@
import { getSession } from "@/lib/auth/session"
import { getDashboardStats } from "@/lib/dashboard/stats"
import { LinkIcon, MousePointerClick, TrendingUp } from "lucide-react"
-import { UrlFormCard } from "./_components/simple-url-form-card"
-import { StatsCard } from "./_components/stats-card"
+import { UrlFormCard } from "../_components/simple-url-form-card"
+import { StatsCard } from "../_components/stats-card"
export default async function Dashboard() {
- const { session, redirect } = await getSession()
+ const { session, redirectToSignIn } = await getSession()
if (!session) {
- redirect("/sign-in")
+ redirectToSignIn()
}
const stats = await getDashboardStats()
@@ -20,7 +20,7 @@ export default async function Dashboard() {
: "No URLs"
return (
-
+
Dashboard
-
+
{children}
diff --git a/src/app/(admin)/admin/user/auth/page.tsx b/src/app/(admin)/admin/user/auth/page.tsx
new file mode 100644
index 0000000..f80c93f
--- /dev/null
+++ b/src/app/(admin)/admin/user/auth/page.tsx
@@ -0,0 +1,22 @@
+import { getSession } from "@/lib/auth/session"
+import DashBoardTitle from "../../_components/dashboard-title"
+import { PasskeyAdd } from "../../_components/passkey"
+import PasskeysList from "../../_components/passkeys-list"
+
+export default async function UserAuthPage() {
+ const { session, redirectToSignIn } = await getSession()
+
+ if (!session) {
+ redirectToSignIn()
+ }
+
+ return (
+
+ )
+}
diff --git a/src/app/(admin)/admin/user/page.tsx b/src/app/(admin)/admin/user/page.tsx
new file mode 100644
index 0000000..3a67152
--- /dev/null
+++ b/src/app/(admin)/admin/user/page.tsx
@@ -0,0 +1,18 @@
+import { getSession } from "@/lib/auth/session"
+import DashBoardTitle from "../_components/dashboard-title"
+import UserProfile from "../_components/user-profile"
+
+export default async function UserPage() {
+ const { session, redirectToSignIn } = await getSession()
+
+ if (!session) {
+ redirectToSignIn()
+ }
+
+ return (
+
+
+
+
+ )
+}
diff --git a/src/app/(admin)/dashboard/user/page.tsx b/src/app/(admin)/dashboard/user/page.tsx
deleted file mode 100644
index d39de94..0000000
--- a/src/app/(admin)/dashboard/user/page.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-import { getSession } from "@/lib/auth/session"
-import { PasskeyAdd } from "../_components/passkey"
-import PasskeysList from "../_components/passkeys-list"
-import UserProfile from "../_components/user-profile"
-
-export default async function UserPage() {
- const { session, redirect } = await getSession()
-
- if (!session) {
- redirect("/login")
- }
-
- return (
-
-
-
User Profile
- Manage user settings
-
-
-
- )
-}
diff --git a/src/app/sign-in/_components/signin-button.tsx b/src/app/sign-in/_components/signin-button.tsx
index 06f4cc0..f8ec892 100644
--- a/src/app/sign-in/_components/signin-button.tsx
+++ b/src/app/sign-in/_components/signin-button.tsx
@@ -22,7 +22,7 @@ export function OAuthSignInButton({
setIsLoading(true)
const res = await authClient.signIn.oauth2({
providerId: "authentik",
- callbackURL: "/dashboard"
+ callbackURL: "/admin/dashboard"
})
if (res && res.error) {
@@ -39,7 +39,7 @@ export function OAuthSignInButton({
const res = await authClient.signIn.passkey({
fetchOptions: {
onSuccess: () => {
- router.push("/dashboard")
+ router.push("/admin/dashboard")
}
}
})
diff --git a/src/app/sign-in/page.tsx b/src/app/sign-in/page.tsx
index 7c462f2..4ec9a3d 100644
--- a/src/app/sign-in/page.tsx
+++ b/src/app/sign-in/page.tsx
@@ -4,10 +4,10 @@ import { getSession } from "@/lib/auth/session"
import { LogIn } from "lucide-react"
export default async function SignInPage() {
- const { session, redirect } = await getSession()
+ const { session, redirectToHome } = await getSession()
if (session) {
- redirect("/dashboard")
+ redirectToHome()
}
return (
diff --git a/src/components/user-dropdown.tsx b/src/components/user-dropdown.tsx
index 3b6240d..35ad8ed 100644
--- a/src/components/user-dropdown.tsx
+++ b/src/components/user-dropdown.tsx
@@ -85,9 +85,9 @@ export function UserDropdown({ className }: UserDropdownProps) {
-
+
- Dashboard
+ Admin
diff --git a/src/lib/actions/url.ts b/src/lib/actions/url.ts
index 7bf17ef..167e346 100644
--- a/src/lib/actions/url.ts
+++ b/src/lib/actions/url.ts
@@ -37,7 +37,7 @@ export async function addUrl(unsafeData: unknown): Promise {
title: await getWebsiteTitle(data.url)
})
- revalidatePath("/dashboard")
+ revalidatePath("/admin/dashboard")
return {
error: false,
diff --git a/src/lib/auth/session.ts b/src/lib/auth/session.ts
index 5aa0c88..4bf2fa7 100644
--- a/src/lib/auth/session.ts
+++ b/src/lib/auth/session.ts
@@ -6,9 +6,12 @@ export async function getSession() {
const session = await auth.api.getSession({
headers: await headers()
})
- const redirectFunc = (path: string) => {
- redirect(path)
+ function redirectToSignIn() {
+ redirect("/sign-in")
+ }
+ function redirectToHome() {
+ redirect("/")
}
- return { session, redirect: redirectFunc }
+ return { session, redirectToSignIn, redirectToHome }
}
diff --git a/src/middleware.ts b/src/middleware.ts
index 8e9275b..8540e8e 100644
--- a/src/middleware.ts
+++ b/src/middleware.ts
@@ -10,4 +10,4 @@ export async function middleware(request: NextRequest) {
return NextResponse.next()
}
-export const config = { matcher: ["/dashboard"] }
+export const config = { matcher: ["/admin"] }