123
This commit is contained in:
parent
43ead0e7f2
commit
52d95b4798
|
|
@ -0,0 +1,50 @@
|
||||||
|
"use client";
|
||||||
|
|
||||||
|
import { useEffect } from "react";
|
||||||
|
import { useParams, useRouter } from "next/navigation";
|
||||||
|
import { Loader2 } from "lucide-react";
|
||||||
|
import { apiClient } from "@/lib/api/client";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* /screen/COMPANY_7_167 → /screens/4153 리다이렉트
|
||||||
|
* 메뉴 URL이 screenCode 기반이므로, screenId로 변환 후 이동
|
||||||
|
*/
|
||||||
|
export default function ScreenCodeRedirectPage() {
|
||||||
|
const params = useParams();
|
||||||
|
const router = useRouter();
|
||||||
|
const screenCode = params.screenCode as string;
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!screenCode) return;
|
||||||
|
|
||||||
|
const numericId = parseInt(screenCode);
|
||||||
|
if (!isNaN(numericId)) {
|
||||||
|
router.replace(`/screens/${numericId}`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const resolve = async () => {
|
||||||
|
try {
|
||||||
|
const res = await apiClient.get("/screen-management/screens", {
|
||||||
|
params: { screenCode },
|
||||||
|
});
|
||||||
|
const screens = res.data?.data || [];
|
||||||
|
if (screens.length > 0) {
|
||||||
|
const id = screens[0].screenId || screens[0].screen_id;
|
||||||
|
router.replace(`/screens/${id}`);
|
||||||
|
} else {
|
||||||
|
router.replace("/");
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
router.replace("/");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
resolve();
|
||||||
|
}, [screenCode, router]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="flex h-full items-center justify-center">
|
||||||
|
<Loader2 className="text-muted-foreground h-6 w-6 animate-spin" />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue