kreativortex/app/[locale]/(app)/dashboard/videos/new/page.tsx
Jessica Rekcah 4253483f44 jalan
2025-12-02 00:22:34 +07:00

44 lines
1.3 KiB
TypeScript

import VideoForm from '@/components/Forms/VideoForm';
import { prisma } from '@/lib/prisma';
import { getLocale } from 'next-intl/server';
import { createVideo } from '@/app/actions/video';
export default async function NewVideoPage() {
const locale = await getLocale();
const menus = await prisma.menu.findMany({
where: { isActive: true },
include: {
parent: true,
},
orderBy: { createdAt: 'asc' },
});
const getLocalizedName = (json: any) => {
if (!json) return '';
return json[locale] || json['id'] || json['en'] || '';
};
const formattedMenus = menus.map((menu) => {
const name = getLocalizedName(menu.name);
const parentName = menu.parent ? getLocalizedName(menu.parent.name) : '';
return {
id: menu.id,
title: parentName ? `${parentName} > ${name}` : name,
};
});
// Sort by title for better UX
formattedMenus.sort((a, b) => a.title.localeCompare(b.title));
return (
<div className="max-w-2xl mx-auto">
<div className="mb-6">
<h1 className="text-2xl font-bold text-white">Upload Video Baru</h1>
<p className="text-gray-400">Tambahkan video pembelajaran baru ke koleksi Anda</p>
</div>
<VideoForm menus={formattedMenus} onSubmit={createVideo} />
</div>
);
}