fixing
This commit is contained in:
parent
82a4233fb1
commit
fbd5586ae6
|
|
@ -164,8 +164,8 @@ const TableImage = () => {
|
|||
setSelectedCategories(
|
||||
(prev: any) =>
|
||||
prev.includes(categoryId)
|
||||
? prev.filter((id: any) => id !== categoryId) // Hapus jika sudah dipilih
|
||||
: [...prev, categoryId] // Tambahkan jika belum dipilih
|
||||
? prev.filter((id: any) => id !== categoryId)
|
||||
: [...prev, categoryId]
|
||||
);
|
||||
|
||||
// Perbarui filter kategori
|
||||
|
|
@ -199,8 +199,8 @@ const TableImage = () => {
|
|||
statusFilter?.sort().join(",").includes("1") ? userLevelId : "",
|
||||
filterByCreator,
|
||||
filterBySource,
|
||||
formattedStartDate, // Pastikan format sesuai
|
||||
formattedEndDate, // Pastikan format sesuai
|
||||
formattedStartDate,
|
||||
formattedEndDate,
|
||||
search,
|
||||
filterByCreatorGroup,
|
||||
locale == "en"
|
||||
|
|
@ -221,16 +221,16 @@ const TableImage = () => {
|
|||
}
|
||||
|
||||
const handleSearch = (e: React.ChangeEvent<HTMLInputElement>) => {
|
||||
setSearch(e.target.value); // Perbarui state search
|
||||
table.getColumn("judul")?.setFilterValue(e.target.value); // Set filter tabel
|
||||
setSearch(e.target.value);
|
||||
table.getColumn("judul")?.setFilterValue(e.target.value);
|
||||
};
|
||||
|
||||
const handleSearchFilterBySource = (
|
||||
e: React.ChangeEvent<HTMLInputElement>
|
||||
) => {
|
||||
const value = e.target.value;
|
||||
setFilterBySource(value); // Perbarui state filter
|
||||
fetchData(); // Panggil ulang data dengan filter baru
|
||||
setFilterBySource(value);
|
||||
fetchData();
|
||||
};
|
||||
|
||||
function handleStatusCheckboxChange(value: any) {
|
||||
|
|
@ -245,8 +245,8 @@ const TableImage = () => {
|
|||
e: React.ChangeEvent<HTMLInputElement>
|
||||
) => {
|
||||
const value = e.target.value;
|
||||
setFilterByCreator(value); // Perbarui state filter
|
||||
fetchData(); // Panggil ulang data dengan filter baru
|
||||
setFilterByCreator(value);
|
||||
fetchData();
|
||||
};
|
||||
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@ import {
|
|||
import { Button } from "@/components/ui/button";
|
||||
import { format } from "date-fns";
|
||||
import { Link } from "@/i18n/routing";
|
||||
import Swal from "sweetalert2";
|
||||
import { deleteMedia } from "@/service/content/content";
|
||||
import { error, success } from "@/config/swal";
|
||||
|
||||
const userLevelId = getCookiesDecrypt("ulie");
|
||||
|
||||
|
|
@ -168,61 +171,96 @@ const columns: ColumnDef<any>[] = [
|
|||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "actions",
|
||||
accessorKey: "action",
|
||||
header: "Actions",
|
||||
enableHiding: false,
|
||||
cell: ({ row }) => {
|
||||
// Menentukan segmen path berdasarkan fileTypeId
|
||||
let fileTypeSegment;
|
||||
switch (row.original.fileTypeId) {
|
||||
case 1:
|
||||
fileTypeSegment = "image";
|
||||
break;
|
||||
case 2:
|
||||
fileTypeSegment = "video";
|
||||
break;
|
||||
case 3:
|
||||
fileTypeSegment = "teks"; // Asumsi 'teks' untuk fileTypeId 3
|
||||
break;
|
||||
case 4:
|
||||
fileTypeSegment = "audio"; // Asumsi 'audio' untuk fileTypeId 4
|
||||
break;
|
||||
default:
|
||||
fileTypeSegment = row.original.fileTypeId; // Fallback jika tidak ada yang cocok
|
||||
}
|
||||
{
|
||||
id: "actions",
|
||||
accessorKey: "action",
|
||||
header: "Actions",
|
||||
enableHiding: false,
|
||||
cell: ({ row }) => {
|
||||
// Menentukan segmen path berdasarkan fileTypeId
|
||||
let fileTypeSegment;
|
||||
switch (row.original.fileTypeId) {
|
||||
case 1:
|
||||
fileTypeSegment = "image";
|
||||
break;
|
||||
case 2:
|
||||
fileTypeSegment = "video";
|
||||
break;
|
||||
case 3:
|
||||
fileTypeSegment = "teks"; // Asumsi 'teks' untuk fileTypeId 3
|
||||
break;
|
||||
case 4:
|
||||
fileTypeSegment = "audio"; // Asumsi 'audio' untuk fileTypeId 4
|
||||
break;
|
||||
default:
|
||||
fileTypeSegment = row.original.fileTypeId; // Fallback jika tidak ada yang cocok
|
||||
}
|
||||
|
||||
return (
|
||||
<DropdownMenu>
|
||||
<DropdownMenuTrigger asChild>
|
||||
<Button
|
||||
size="icon"
|
||||
className="bg-transparent ring-offset-transparent hover:bg-transparent hover:ring-0 hover:ring-transparent"
|
||||
>
|
||||
<span className="sr-only">Buka menu</span>
|
||||
<MoreVertical className="h-4 w-4 text-default-800" />
|
||||
</Button>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent className="p-0" align="end">
|
||||
{/* Link "View" yang diperbarui dengan logika kondisional untuk fileTypeSegment */}
|
||||
<Link
|
||||
href={`/contributor/content/${fileTypeSegment}/detail/${row.original.id}`}
|
||||
>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
|
||||
<Eye className="w-4 h-4 me-1.5" />
|
||||
Lihat
|
||||
async function doDelete(id: any) {
|
||||
// loading();
|
||||
const data = {
|
||||
id,
|
||||
};
|
||||
|
||||
const response = await deleteMedia(data);
|
||||
|
||||
if (response?.error) {
|
||||
error(response.message);
|
||||
return false;
|
||||
}
|
||||
Swal.fire("Berhasil", "Konten telah dihapus.", "success");
|
||||
window.location.reload();
|
||||
}
|
||||
|
||||
const handleDeleteMedia = (id: any) => {
|
||||
Swal.fire({
|
||||
title: "Hapus Data",
|
||||
text: "",
|
||||
icon: "warning",
|
||||
showCancelButton: true,
|
||||
cancelButtonColor: "#3085d6",
|
||||
confirmButtonColor: "#d33",
|
||||
confirmButtonText: "Hapus",
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
doDelete(id);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<DropdownMenu>
|
||||
<DropdownMenuTrigger asChild>
|
||||
<Button
|
||||
size="icon"
|
||||
className="bg-transparent ring-offset-transparent hover:bg-transparent hover:ring-0 hover:ring-transparent"
|
||||
>
|
||||
<span className="sr-only">Buka menu</span>
|
||||
<MoreVertical className="h-4 w-4 text-default-800" />
|
||||
</Button>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent className="p-0" align="end">
|
||||
{/* Link "View" yang diperbarui dengan logika kondisional untuk fileTypeSegment */}
|
||||
<Link
|
||||
href={`/contributor/content/${fileTypeSegment}/detail/${row.original.id}`}
|
||||
>
|
||||
<DropdownMenuItem className="p-2 border-b text-default-700 group focus:bg-default focus:text-primary-foreground rounded-none">
|
||||
<Eye className="w-4 h-4 me-1.5" />
|
||||
Lihat
|
||||
</DropdownMenuItem>
|
||||
</Link>
|
||||
<DropdownMenuItem
|
||||
onClick={() => handleDeleteMedia(row.original.id)}
|
||||
className="p-2 border-b text-destructive bg-destructive/30 focus:bg-destructive focus:text-destructive-foreground rounded-none"
|
||||
>
|
||||
<Trash2 className="w-4 h-4 me-1.5" />
|
||||
Hapus
|
||||
</DropdownMenuItem>
|
||||
</Link>
|
||||
<DropdownMenuItem className="p-2 border-b text-destructive bg-destructive/30 focus:bg-destructive focus:text-destructive-foreground rounded-none">
|
||||
<Trash2 className="w-4 h-4 me-1.5" />
|
||||
Hapus
|
||||
</DropdownMenuItem>
|
||||
</DropdownMenuContent>
|
||||
</DropdownMenu>
|
||||
);
|
||||
</DropdownMenuContent>
|
||||
</DropdownMenu>
|
||||
);
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
export default columns;
|
||||
|
|
|
|||
|
|
@ -165,8 +165,8 @@ const ContentTable = () => {
|
|||
}
|
||||
|
||||
const handleSearch = (e: React.ChangeEvent<HTMLInputElement>) => {
|
||||
setSearch(e.target.value); // Perbarui state search
|
||||
table.getColumn("judul")?.setFilterValue(e.target.value); // Set filter tabel
|
||||
setSearch(e.target.value);
|
||||
table.getColumn("judul")?.setFilterValue(e.target.value);
|
||||
};
|
||||
|
||||
return (
|
||||
|
|
@ -216,8 +216,8 @@ const ContentTable = () => {
|
|||
<SelectContent>
|
||||
<SelectGroup>
|
||||
<SelectLabel>Filter</SelectLabel>
|
||||
<SelectItem value="1">Image</SelectItem>
|
||||
<SelectItem value="2">Video</SelectItem>
|
||||
<SelectItem value="1">Foto</SelectItem>
|
||||
<SelectItem value="2">Audio Visual</SelectItem>
|
||||
<SelectItem value="3">Teks</SelectItem>
|
||||
<SelectItem value="4">Audio</SelectItem>
|
||||
</SelectGroup>
|
||||
|
|
|
|||
Loading…
Reference in New Issue