add filter category

This commit is contained in:
Anang Yusman 2026-02-03 19:30:26 +08:00
parent 9c01e6f467
commit df8de78666
2 changed files with 34 additions and 4 deletions

View File

@ -13,12 +13,22 @@ import { Upload, X } from "lucide-react";
import { useState, useRef, useEffect } from "react";
import { createGalery, uploadGaleryFile } from "@/service/galery";
const CATEGORY_OPTIONS = [
"Grand Opening",
"IIMS",
"GIIAS",
"GJAW",
"Exhibitions",
"Test Drive",
];
export function GaleriDialog({ open, onClose, onSubmit }: any) {
const [title, setTitle] = useState("");
const [description, setDescription] = useState("");
const [files, setFiles] = useState<File[]>([]);
const [previews, setPreviews] = useState<string[]>([]);
const fileRef = useRef<HTMLInputElement>(null);
const [category, setCategory] = useState("");
useEffect(() => {
if (!files || files.length === 0) {
@ -47,10 +57,11 @@ export function GaleriDialog({ open, onClose, onSubmit }: any) {
const handleSubmit = async () => {
try {
if (!title) return alert("Judul wajib diisi!");
if (!category) return alert("Category wajib diisi!");
const formData = new FormData();
formData.append("title", title);
formData.append("description", description);
formData.append("category", category);
const res = await createGalery(formData);
@ -73,7 +84,7 @@ export function GaleriDialog({ open, onClose, onSubmit }: any) {
}
onSubmit();
setCategory("");
setTitle("");
setDescription("");
setFiles([]);
@ -106,6 +117,26 @@ export function GaleriDialog({ open, onClose, onSubmit }: any) {
/>
</div>
{/* Category */}
<div>
<label className="font-medium text-sm">
Category <span className="text-red-500">*</span>
</label>
<select
value={category}
onChange={(e) => setCategory(e.target.value)}
className="mt-1 h-12 w-full rounded-md border border-gray-300 px-3 text-sm focus:outline-none focus:ring-2 focus:ring-[#1F6779]"
>
<option value="">Pilih category</option>
{CATEGORY_OPTIONS.map((cat) => (
<option key={cat} value={cat}>
{cat}
</option>
))}
</select>
</div>
{/* Deskripsi */}
<div>
<label className="font-medium text-sm">

View File

@ -67,8 +67,7 @@ export default function GallerySection() {
const filteredData = data.filter((item) => {
if (activeTab === "All") return true;
if (activeTab === "Grand Opening") return true; // sementara
return false; // tab lain belum ada konten
return item.category === activeTab;
});
return (