Add dedicated local admin domain routing

This commit is contained in:
MOH
2026-03-13 17:48:45 +01:00
parent bfd7adccac
commit fef44ded80
47 changed files with 260 additions and 107 deletions
+5 -4
View File
@@ -16,6 +16,7 @@ import {
DialogTrigger,
} from "@/components/ui/dialog";
import { clearAdminSessionCookie, isAdminAuthenticated } from "@/lib/admin-auth";
import { getAdminAppPath } from "@/lib/admin-routing";
import { getMediaOptions } from "@/lib/media";
import {
getActivePortfolioCategories,
@@ -53,14 +54,14 @@ export default async function AdminPortfolioProjectPage({
params,
}: AdminPortfolioProjectPageProps) {
if (!(await isAdminAuthenticated())) {
redirect("/");
redirect(getAdminAppPath("/"));
}
async function logoutAction() {
"use server";
await clearAdminSessionCookie();
redirect("/");
redirect(getAdminAppPath("/"));
}
const { id } = await params;
@@ -72,7 +73,7 @@ export default async function AdminPortfolioProjectPage({
]);
if (!project) {
redirect("/portfolio?error=Project+not+found.");
redirect(`${getAdminAppPath("/portfolio")}?error=Project+not+found.`);
}
return (
@@ -92,7 +93,7 @@ export default async function AdminPortfolioProjectPage({
mediaOptions={mediaOptions}
project={project}
formId="portfolio-project-form"
redirectPath={`/portfolio/projects/${project.id}`}
redirectPath={getAdminAppPath(`/portfolio/projects/${project.id}`)}
/>
</MotionFade>
+4 -3
View File
@@ -4,6 +4,7 @@ import { MotionFade } from "@/components/motion-fade";
import { PortfolioProjectForm } from "@/components/admin/portfolio-project-form";
import { AdminDashboardShell } from "@/components/admin/admin-dashboard-shell";
import { clearAdminSessionCookie, isAdminAuthenticated } from "@/lib/admin-auth";
import { getAdminAppPath } from "@/lib/admin-routing";
import { getMediaOptions } from "@/lib/media";
import { getActivePortfolioCategories } from "@/lib/portfolio";
@@ -26,14 +27,14 @@ const copy = {
export default async function AdminNewPortfolioProjectPage() {
if (!(await isAdminAuthenticated())) {
redirect("/");
redirect(getAdminAppPath("/"));
}
async function logoutAction() {
"use server";
await clearAdminSessionCookie();
redirect("/");
redirect(getAdminAppPath("/"));
}
const [categories, mediaOptions] = await Promise.all([
@@ -57,7 +58,7 @@ export default async function AdminNewPortfolioProjectPage() {
categories={categories}
mediaOptions={mediaOptions}
formId="portfolio-project-form"
redirectPath="/portfolio/projects/new"
redirectPath={getAdminAppPath("/portfolio/projects/new")}
/>
</MotionFade>
</div>
+3 -2
View File
@@ -3,6 +3,7 @@ import { redirect } from "next/navigation";
import { PortfolioProjectsOverview } from "@/components/admin/portfolio-projects-overview";
import { AdminDashboardShell } from "@/components/admin/admin-dashboard-shell";
import { clearAdminSessionCookie, isAdminAuthenticated } from "@/lib/admin-auth";
import { getAdminAppPath } from "@/lib/admin-routing";
import { getAdminPortfolioCategories, getAdminPortfolioProjects } from "@/lib/portfolio";
export const dynamic = "force-dynamic";
@@ -33,14 +34,14 @@ export default async function AdminPortfolioProjectsPage({
const resolvedSearchParams = await searchParams;
if (!(await isAdminAuthenticated())) {
redirect("/");
redirect(getAdminAppPath("/"));
}
async function logoutAction() {
"use server";
await clearAdminSessionCookie();
redirect("/");
redirect(getAdminAppPath("/"));
}
const selectedCategory = resolvedSearchParams?.category && resolvedSearchParams.category !== "__all__"