import React, { useEffect } from "react";
import { useForm } from "@inertiajs/react";
import AuthenticatedLayout from "@/layouts/authenticated-layout";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import { Textarea } from "@/components/ui/textarea";
import { useToast } from "@/hooks/use-toast";
import { Head } from "@inertiajs/react";
import { CKEditor } from "ckeditor4-react"; // ✅ Import CKEditor langsung
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from "@/components/ui/select";
const slugify = (text: string) => text.toLowerCase().replace(/\s+/g, "-");
interface Kategori {
KategoriId: number;
NamaKategori: string;
}
interface SubKategori {
SubKategoriId: number;
KategoriId: number;
NamaSubKategori: string;
}
interface AddPostProps {
kategori: Kategori[];
subkategori: SubKategori[];
}
export default function AddPost({ kategori, subkategori }: AddPostProps) {
const { toast } = useToast();
const { data, setData, post, reset } = useForm({
KategoriId: "",
SubKategoriId: "",
JudulPost: "",
SlugPost: "",
DescPost: "",
ImagePost: null as File | null,
IsPublish: false,
});
useEffect(() => {
setData("SlugPost", slugify(data.JudulPost));
}, [data.JudulPost]);
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault();
const formData = new FormData();
formData.append("KategoriId", data.KategoriId);
formData.append("SubKategoriId", data.SubKategoriId);
formData.append("JudulPost", data.JudulPost);
formData.append("SlugPost", data.SlugPost);
formData.append("DescPost", data.DescPost);
formData.append("IsPublish", data.IsPublish.toString());
if (data.ImagePost) {
formData.append("ImagePost", data.ImagePost);
}
post("/admin/post", {
data: formData,
headers: { "Content-Type": "multipart/form-data" },
onSuccess: () => {
toast({
title: "Berhasil",
description: "Post berhasil dibuat",
variant: "default",
});
reset();
},
onError: () => {
toast({
title: "Gagal",
description: "Terjadi kesalahan saat membuat Post",
variant: "destructive",
});
},
});
};
return (