diff --git a/app/[locale]/(protected)/admin/settings/iklan/component/column.tsx b/app/[locale]/(protected)/admin/settings/iklan/component/column.tsx index 6ffd551f..c137ec06 100644 --- a/app/[locale]/(protected)/admin/settings/iklan/component/column.tsx +++ b/app/[locale]/(protected)/admin/settings/iklan/component/column.tsx @@ -45,18 +45,20 @@ const columns: ColumnDef[] = [ { accessorKey: "title", header: "Judul", - cell: ({ row }) => {row.getValue("title")}, + cell: ({ row }) =>
{row.getValue("title")}
, }, { - accessorKey: "categoryName", - header: "Kategori", - cell: ({ row }) => {row.getValue("categoryName")}, - }, - { - accessorKey: "createdAt", - header: "Tanggal Unggah", + accessorKey: "contentFileName", + header: "Judul Gambar", cell: ({ row }) => ( - {formatDateToIndonesian(row.getValue("createdAt"))} +
{row.getValue("contentFileName")}
+ ), + }, + { + accessorKey: "placements", + header: "Posisi", + cell: ({ row }) => ( +
{row.getValue("placements")}
), }, diff --git a/app/[locale]/(protected)/admin/settings/iklan/component/table.tsx b/app/[locale]/(protected)/admin/settings/iklan/component/table.tsx index e9d72d23..48ee4e8c 100644 --- a/app/[locale]/(protected)/admin/settings/iklan/component/table.tsx +++ b/app/[locale]/(protected)/admin/settings/iklan/component/table.tsx @@ -36,6 +36,7 @@ import { Trash2, TrendingDown, TrendingUp, + UploadIcon, UserIcon, } from "lucide-react"; import { cn } from "@/lib/utils"; @@ -61,14 +62,17 @@ import { PopoverContent, PopoverTrigger, } from "@/components/ui/popover"; -import { listDataMedia } from "@/service/broadcast/broadcast"; +import { + listDataAdvertisements, + listDataMedia, +} from "@/service/broadcast/broadcast"; import { listEnableCategory } from "@/service/content/content"; import { Checkbox } from "@/components/ui/checkbox"; import { close, loading } from "@/config/swal"; import { Link } from "@/i18n/routing"; import { TambahIklanModal } from "@/components/form/setting/form-add-iklan"; -const IklanList = () => { +const AdvertisementsList = () => { const router = useRouter(); const searchParams = useSearchParams(); const [showData, setShowData] = React.useState("10"); @@ -146,7 +150,7 @@ const IklanList = () => { async function fetchData() { try { loading(); - const res = await listDataMedia( + const res = await listDataAdvertisements( page - 1, showData, "", @@ -205,7 +209,15 @@ const IklanList = () => { return ( <>
- +
+ + + +
+ {/* */}
{ ); }; -export default IklanList; +export default AdvertisementsList; diff --git a/app/[locale]/(protected)/admin/settings/iklan/create/page.tsx b/app/[locale]/(protected)/admin/settings/iklan/create/page.tsx new file mode 100644 index 00000000..d4115131 --- /dev/null +++ b/app/[locale]/(protected)/admin/settings/iklan/create/page.tsx @@ -0,0 +1,19 @@ +import { Card, CardContent } from "@/components/ui/card"; +import SiteBreadcrumb from "@/components/site-breadcrumb"; +import FormTask from "@/components/form/task/task-form"; +import FormPressConference from "@/components/form/schedule/press-conference-form"; +import { CalendarPolriAdd } from "@/components/form/schedule/form-calendar-polri"; +import { TambahIklanModal } from "@/components/form/setting/form-add-iklan"; + +const AdvertisementsCreatePage = () => { + return ( +
+ +
+ +
+
+ ); +}; + +export default AdvertisementsCreatePage; diff --git a/app/[locale]/(protected)/admin/settings/iklan/page.tsx b/app/[locale]/(protected)/admin/settings/iklan/page.tsx index 3571c256..a207465b 100644 --- a/app/[locale]/(protected)/admin/settings/iklan/page.tsx +++ b/app/[locale]/(protected)/admin/settings/iklan/page.tsx @@ -1,20 +1,16 @@ "use client"; import SiteBreadcrumb from "@/components/site-breadcrumb"; import { useState } from "react"; -import { Button } from "@/components/ui/button"; -import PopUpList from "../popup/component/table"; -import PopUpListTable from "../popup/component/popup-table"; -import IklanList from "./component/table"; -import IklanListTable from "./component/popup-table"; +import AdvertisementsList from "./component/table"; -export default function AdminIklan() { +export default function AdminAdvertisements() { const [selectedTab, setSelectedTab] = useState("content"); return (
- +
); diff --git a/app/[locale]/(protected)/contributor/agenda-setting/calender-view.tsx b/app/[locale]/(protected)/contributor/agenda-setting/calender-view.tsx index 7a63a970..1861e18b 100644 --- a/app/[locale]/(protected)/contributor/agenda-setting/calender-view.tsx +++ b/app/[locale]/(protected)/contributor/agenda-setting/calender-view.tsx @@ -110,7 +110,7 @@ interface ListItemProps { interface APIResponse { error: boolean; message: any; - data: AgendaSettingsAPIResponse[] | null; // `data` bisa berupa array atau null + data: AgendaSettingsAPIResponse[] | null; } const CalendarView = ({ categories }: CalendarViewProps) => { @@ -218,15 +218,21 @@ const CalendarView = ({ categories }: CalendarViewProps) => { setSelectedCategory(categories?.map((c) => c.value)); }, [categories]); - const filteredEvents = calendarEvents?.filter((event) => - selectedCategory?.includes(event.extendedProps.calendar) - ); + const filteredEvents = calendarEvents?.filter((event) => { + const eventCategories = event.extendedProps.calendar + ?.split(",") + .map((val: string) => val.trim()); // agar "1, 2" tetap dianggap benar + + return eventCategories?.some((cat: string) => + selectedCategory?.includes(cat) + ); + }); const displayedEvents = filteredEvents?.length > 1 ? filteredEvents : apiEvents; useEffect(() => { - setSelectedCategory(categories?.map((c) => c.value)); + setSelectedCategory(categories?.map((c: any) => c.value)); }, [categories]); useEffect(() => { @@ -369,15 +375,15 @@ const CalendarView = ({ categories }: CalendarViewProps) => { }; const handleClassName = (arg: EventContentArg) => { - if (arg.event.extendedProps.calendar === "mabes") { + if (arg.event.extendedProps.calendar === "1") { return "bg-yellow-500 border-none"; - } else if (arg.event.extendedProps.calendar === "polda") { + } else if (arg.event.extendedProps.calendar === "2") { return "bg-blue-400 border-none"; - } else if (arg.event.extendedProps.calendar === "polres") { + } else if (arg.event.extendedProps.calendar === "3") { return "bg-slate-400 border-none"; - } else if (arg.event.extendedProps.calendar === "satker") { + } else if (arg.event.extendedProps.calendar === "4") { return "bg-orange-500 border-none"; - } else if (arg.event.extendedProps.calendar === "international") { + } else if (arg.event.extendedProps.calendar === "5") { return "bg-green-400 border-none"; } else { return "primary"; @@ -415,11 +421,11 @@ const CalendarView = ({ categories }: CalendarViewProps) => { const getEventColor = (type: Event["type"]): string => { const colors: Record = { - mabes: "bg-yellow-500", - polda: "bg-blue-400", - polres: "bg-slate-400", - satker: "bg-orange-500", - international: "bg-green-400", + 1: "bg-yellow-500", + 2: "bg-blue-400", + 3: "bg-slate-400", + 4: "bg-orange-500", + 5: "bg-green-400", }; return colors[type]; }; diff --git a/app/[locale]/(protected)/contributor/agenda-setting/data.ts b/app/[locale]/(protected)/contributor/agenda-setting/data.ts index 3cab4af9..837b2136 100644 --- a/app/[locale]/(protected)/contributor/agenda-setting/data.ts +++ b/app/[locale]/(protected)/contributor/agenda-setting/data.ts @@ -22,7 +22,7 @@ export const calendarEvents = [ allDay: false, //className: "warning", extendedProps: { - calendar: "polda", + calendar: "2", }, }, { @@ -33,7 +33,7 @@ export const calendarEvents = [ allDay: true, //className: "success", extendedProps: { - calendar: "national", + calendar: "1", }, }, { @@ -44,7 +44,7 @@ export const calendarEvents = [ end: new Date(date.getFullYear(), date.getMonth() + 1, -7), // className: "info", extendedProps: { - calendar: "polres", + calendar: "3", }, }, { @@ -55,7 +55,7 @@ export const calendarEvents = [ allDay: true, //className: "primary", extendedProps: { - calendar: "polres", + calendar: "3", }, }, { @@ -66,7 +66,7 @@ export const calendarEvents = [ allDay: true, // className: "danger", extendedProps: { - calendar: "polda", + calendar: "2", }, }, { @@ -77,7 +77,7 @@ export const calendarEvents = [ allDay: true, //className: "primary", extendedProps: { - calendar: "international", + calendar: "5", }, }, ]; @@ -85,31 +85,31 @@ export const calendarEvents = [ export const calendarCategories = [ { label: "Nasional", - value: "mabes", + value: "1", activeClass: "ring-primary-500 bg-primary-500", className: "group-hover:border-blue-500", }, { label: "Polda", - value: "polda", + value: "2", activeClass: "ring-success-500 bg-success-500", className: " group-hover:border-green-500", }, { label: "Polres", - value: "polres", + value: "3", activeClass: "ring-danger-500 bg-danger-500", className: " group-hover:border-red-500", }, { label: "Satker", - value: "satker", + value: "4", activeClass: "ring-yellow-500 bg-yellow-500", className: " group-hover:border-red-500", }, { label: "Internasional", - value: "international", + value: "5", activeClass: "ring-info-500 bg-info-500", className: " group-hover:border-cyan-500", }, @@ -118,31 +118,31 @@ export const calendarCategories = [ export const categories = [ { label: "Nasional", - value: "mabes", + value: "1", className: "data-[state=checked]:bg-yellow-500 data-[state=checked]:ring-yellow-500", }, { label: "Polda", - value: "polda", + value: "2", className: "data-[state=checked]:bg-blue-400 data-[state=checked]:ring-blue-400", }, { label: "Polres", - value: "polres", + value: "3", className: "data-[state=checked]:bg-slate-400 data-[state=checked]:ring-slate-400 ", }, { label: "Satker", - value: "satker", + value: "4", className: "data-[state=checked]:bg-warning data-[state=checked]:ring-warning ", }, { label: "Internasional", - value: "international", + value: "5", className: "data-[state=checked]:bg-green-500 data-[state=checked]:ring-green-500 ", }, diff --git a/app/[locale]/(protected)/contributor/agenda-setting/page.tsx b/app/[locale]/(protected)/contributor/agenda-setting/page.tsx index 4f88d946..010f3ead 100644 --- a/app/[locale]/(protected)/contributor/agenda-setting/page.tsx +++ b/app/[locale]/(protected)/contributor/agenda-setting/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client"; import { getEvents, getCategories } from "./utils"; import { calendarEvents, Category } from "./data"; @@ -8,7 +8,6 @@ import { useEffect, useState } from "react"; import { CalendarCategory } from "./data"; const CalenderPage = () => { - const [categories, setCategories] = useState([]); const userLevelNumber = Number(getCookiesDecrypt("ulne")) || 0; const userLevelId = Number(getCookiesDecrypt("ulie")) || 0; @@ -20,32 +19,32 @@ const CalenderPage = () => { async function initData() { const events = await getEvents(); const categories = await getCategories(); - let valueShowed : string[] = []; + let valueShowed: string[] = []; if (userLevelNumber == 1) { - valueShowed = ['mabes', 'polda', 'polres', 'satker', 'international']; + valueShowed = ["1", "2", "3", "4", "5"]; } else if (userLevelNumber == 2 && userLevelId != 761) { - valueShowed = ['polda', 'polres']; - } else if ((userLevelNumber == 2 && userLevelId == 761) || (userLevelNumber == 3 && userParentLevelId == 761)) { - valueShowed = ['satker']; + valueShowed = ["2", "3"]; + } else if ( + (userLevelNumber == 2 && userLevelId == 761) || + (userLevelNumber == 3 && userParentLevelId == 761) + ) { + valueShowed = ["4"]; } else if (userLevelNumber == 3 && userParentLevelId != 761) { - valueShowed = ['polres']; + valueShowed = ["3"]; } - - const formattedCategories = categories.filter((category: Category) => valueShowed.includes(category.value)) - .map((category: Category) => ({ - ...category, - activeClass: "", - })); + + const formattedCategories = categories + .filter((category: Category) => valueShowed.includes(category.value)) + .map((category: Category) => ({ + ...category, + activeClass: "", + })); console.log(formattedCategories); setCategories(formattedCategories); } }, []); - return ( -
- {categories && } -
- ); + return
{categories && }
; }; export default CalenderPage; diff --git a/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/calendar-polri-table.tsx b/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/calendar-polri-table.tsx index 3dc28244..bc7254ce 100644 --- a/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/calendar-polri-table.tsx +++ b/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/calendar-polri-table.tsx @@ -43,7 +43,10 @@ import { InputGroup, InputGroupText } from "@/components/ui/input-group"; import { useRouter, useSearchParams } from "next/navigation"; import TablePagination from "@/components/table/table-pagination"; import columns from "./columns"; -import { paginationSchedule } from "@/service/schedule/schedule"; +import { + paginationCalendar, + paginationSchedule, +} from "@/service/schedule/schedule"; import { CardHeader, CardTitle } from "@/components/ui/card"; import { Link } from "@/i18n/routing"; import { useTranslations } from "next-intl"; @@ -117,7 +120,7 @@ const CalendarPolriTable = () => { async function fetchData() { try { - const res = await paginationSchedule( + const res = await paginationCalendar( showData, page - 1, 1, @@ -162,7 +165,12 @@ const CalendarPolriTable = () => { {t("calendar-polri")} {t("schedule")}
- + + +
diff --git a/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/columns.tsx b/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/columns.tsx index 1a3a3ae3..33471915 100644 --- a/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/columns.tsx +++ b/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/columns.tsx @@ -13,6 +13,10 @@ import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { Link } from "@/components/navigation"; import { useTranslations } from "next-intl"; +import withReactContent from "sweetalert2-react-content"; +import Swal from "sweetalert2"; +import { error } from "@/lib/swal"; +import { deleteCalendar } from "@/service/schedule/schedule"; const useTableColumns = () => { const t = useTranslations("Table"); // Panggil di dalam hook @@ -58,76 +62,33 @@ const useTableColumns = () => { {row.getValue("endDate")} ), }, + { - accessorKey: "time", - header: t("time"), - cell: ({ row }: { row: { original: any } }) => { - console.log("Row Original Data:", row.original); - const { startTime, endTime } = row.original; - return ( - - {startTime || "N/A"} - {endTime || "N/A"} - - ); - }, - }, - { - accessorKey: "address", - header: t("address"), - cell: ({ row }: { row: { getValue: (key: string) => string } }) => { - const address: string = row.getValue("address"); - return ( - - {address.length > 50 ? `${address.slice(0, 40)}...` : address} - - ); - }, - }, - { - accessorKey: "statusName", + accessorKey: "isActive", header: "Status", cell: ({ row }) => { - const statusColors: Record = { - diterima: "bg-green-100 text-green-600", - "menunggu review": "bg-orange-100 text-orange-600", - }; + const isActive = row.getValue("isActive") as boolean; - // Mengambil `statusName` dari data API - const status = row.getValue("statusName") as string; - const statusName = status?.toLocaleLowerCase(); // Ubah ke huruf kecil - - // Gunakan `statusName` untuk pencocokan - const statusStyles = - statusColors[statusName] || "bg-gray-100 text-gray-600"; + const status = isActive ? "Aktif" : "Tidak Aktif"; + const statusStyles = isActive + ? "bg-green-100 text-green-600" + : "bg-gray-100 text-gray-600"; return ( - {status} {/* Tetap tampilkan nilai asli */} + {status} ); }, }, { - accessorKey: "speaker", - header: t("speaker"), - cell: ({ row }: { row: { original: any } }) => { - console.log("Row Original Data:", row.original); - const { speakerTitle, speakerName } = row.original; - return ( - - {speakerTitle || ""} {speakerName || ""} - - ); - }, - }, - { - accessorKey: "uploaderName", + accessorKey: "createdByName", header: t("source"), cell: ({ row }) => ( - {row.getValue("uploaderName")} + {row.getValue("createdByName")} ), }, @@ -138,6 +99,51 @@ const useTableColumns = () => { header: t("action"), enableHiding: false, cell: ({ row }) => { + const MySwal = withReactContent(Swal); + + async function doDelete(id: any) { + // loading(); + const data = { + id, + }; + + const response = await deleteCalendar(id); + + if (response?.error) { + error(response.message); + return false; + } + success(); + } + + function success() { + MySwal.fire({ + title: "Sukses", + icon: "success", + confirmButtonColor: "#3085d6", + confirmButtonText: "OK", + }).then((result) => { + if (result.isConfirmed) { + window.location.reload(); + } + }); + } + + const handleDeleteCalendars = (id: any) => { + MySwal.fire({ + title: "Hapus Data", + text: "", + icon: "warning", + showCancelButton: true, + cancelButtonColor: "#3085d6", + confirmButtonColor: "#d33", + confirmButtonText: "Hapus", + }).then((result) => { + if (result.isConfirmed) { + doDelete(id); + } + }); + }; return ( @@ -151,7 +157,7 @@ const useTableColumns = () => { @@ -159,14 +165,17 @@ const useTableColumns = () => { Edit - + handleDeleteCalendars(row.original.id)} + className="p-2 border-b text-destructive bg-destructive/30 focus:bg-destructive focus:text-destructive-foreground rounded-none" + > Delete diff --git a/app/[locale]/(protected)/contributor/schedule/calendar-polri/create/page.tsx b/app/[locale]/(protected)/contributor/schedule/calendar-polri/create/page.tsx index 250cc651..1ac121ed 100644 --- a/app/[locale]/(protected)/contributor/schedule/calendar-polri/create/page.tsx +++ b/app/[locale]/(protected)/contributor/schedule/calendar-polri/create/page.tsx @@ -2,13 +2,14 @@ import { Card, CardContent } from "@/components/ui/card"; import SiteBreadcrumb from "@/components/site-breadcrumb"; import FormTask from "@/components/form/task/task-form"; import FormPressConference from "@/components/form/schedule/press-conference-form"; +import { CalendarPolriAdd } from "@/components/form/schedule/form-calendar-polri"; const CalendarPolriCreatePage = () => { return (
- +
); diff --git a/app/[locale]/(protected)/contributor/schedule/calendar-polri/detail/[id]/page.tsx b/app/[locale]/(protected)/contributor/schedule/calendar-polri/detail/[id]/page.tsx index f3347ffb..f9a614f9 100644 --- a/app/[locale]/(protected)/contributor/schedule/calendar-polri/detail/[id]/page.tsx +++ b/app/[locale]/(protected)/contributor/schedule/calendar-polri/detail/[id]/page.tsx @@ -6,13 +6,14 @@ import FormPressConference from "@/components/form/schedule/press-conference-for import FormDetailPressConference from "@/components/form/schedule/press-conference-detail-form"; import { useParams } from "next/navigation"; import { id } from "date-fns/locale"; +import { CalendarPolriAddDetail } from "@/components/form/schedule/form-calendar-polri-detail"; const CalendarPolriDetailPage = () => { return (
- +
); diff --git a/app/[locale]/(protected)/contributor/schedule/calendar-polri/update/[id]/page.tsx b/app/[locale]/(protected)/contributor/schedule/calendar-polri/update/[id]/page.tsx index ce527b9a..dad6f5b1 100644 --- a/app/[locale]/(protected)/contributor/schedule/calendar-polri/update/[id]/page.tsx +++ b/app/[locale]/(protected)/contributor/schedule/calendar-polri/update/[id]/page.tsx @@ -7,13 +7,14 @@ import FormDetailPressConference from "@/components/form/schedule/press-conferen import { useParams } from "next/navigation"; import { id } from "date-fns/locale"; import FormUpdatePressConference from "@/components/form/schedule/press-conference-update-form"; +import { CalendarPolriAddUpdate } from "@/components/form/schedule/form-calendar-polri-update"; const CalendarPolriUpdatePage = () => { return (
- +
); diff --git a/app/[locale]/(public)/(polda)/polda/[polda_name]/audio/detail/[slug]/page.tsx b/app/[locale]/(public)/(polda)/polda/[polda_name]/audio/detail/[slug]/page.tsx index 46e77a78..85118303 100644 --- a/app/[locale]/(public)/(polda)/polda/[polda_name]/audio/detail/[slug]/page.tsx +++ b/app/[locale]/(public)/(polda)/polda/[polda_name]/audio/detail/[slug]/page.tsx @@ -8,7 +8,15 @@ import { Link, useRouter } from "@/i18n/routing"; import { Textarea } from "@/components/ui/textarea"; import { BarWave } from "react-cssfx-loading"; import { useToast } from "@/components/ui/use-toast"; -import { checkWishlistStatus, createPublicSuggestion, deletePublicSuggestion, deleteWishlist, getDetail, getPublicSuggestionList, saveWishlist } from "@/service/landing/landing"; +import { + checkWishlistStatus, + createPublicSuggestion, + deletePublicSuggestion, + deleteWishlist, + getDetail, + getPublicSuggestionList, + saveWishlist, +} from "@/service/landing/landing"; import { getCookiesDecrypt } from "@/lib/utils"; import { close, error, loading, warning } from "@/config/swal"; import { useTranslations } from "next-intl"; @@ -18,7 +26,6 @@ import Swal from "sweetalert2"; import parse from "html-react-parser"; import { postActivityLog } from "@/service/content/content"; - const DetailAudio = () => { const [selectedSize, setSelectedSize] = useState("L"); const [selectedTab, setSelectedTab] = useState("video"); @@ -196,7 +203,8 @@ const DetailAudio = () => { xhr.addEventListener("readystatechange", () => { if (xhr.readyState === 4 && xhr.status === 200) { - const contentType = xhr.getResponseHeader("content-type") || "application/octet-stream"; + const contentType = + xhr.getResponseHeader("content-type") || "application/octet-stream"; const extension = contentType.split("/")[1]; const filename = `${name}.${extension}`; @@ -228,7 +236,7 @@ const DetailAudio = () => { { label: "S", value: "1066 x 599 px" }, { label: "XS", value: "800 x 450 px" }, ]; - async function sendSuggestionParent() { + async function sendSuggestionParent() { if (message?.length > 3) { loading(); const data = { @@ -280,41 +288,45 @@ const DetailAudio = () => { document.querySelector(`#${e}`)?.classList.toggle("none"); setVisibleInput(visibleInput === e ? null : e); }; - async function sendSuggestionChild(parentId: any) { - const inputElement = document.querySelector(`#input-comment-${parentId}`) as HTMLInputElement; - - if (inputElement && inputElement.value.length > 3) { - loading(); - const data = { - mediaUploadId: slug?.split("-")?.[0], - message: inputElement.value, - parentId, - }; - - console.log(data); - const response = await createPublicSuggestion(data); - console.log(response); - const responseGet: any = await getPublicSuggestionList(slug?.split("-")?.[0]); - console.log(responseGet.data?.data); - setListSuggestion(responseGet.data?.data); - - // Reset input field - inputElement.value = ""; - - // document.querySelector("#comment-id-" + parentId)?.style.display = "none"; - - close(); - } - } - async function deleteDataSuggestion(dataId: any) { + async function sendSuggestionChild(parentId: any) { + const inputElement = document.querySelector( + `#input-comment-${parentId}` + ) as HTMLInputElement; + + if (inputElement && inputElement.value.length > 3) { loading(); - const response = await deletePublicSuggestion(dataId); + const data = { + mediaUploadId: slug?.split("-")?.[0], + message: inputElement.value, + parentId, + }; + + console.log(data); + const response = await createPublicSuggestion(data); console.log(response); - const responseGet = await getPublicSuggestionList(slug.split("-")?.[0]); - console.log(responseGet.data?.data); - setListSuggestion(responseGet.data?.data); + const responseGet: any = await getPublicSuggestionList( + slug?.split("-")?.[0] + ); + console.log(responseGet?.data?.data); + setListSuggestion(responseGet?.data?.data); + + // Reset input field + inputElement.value = ""; + + // document.querySelector("#comment-id-" + parentId)?.style.display = "none"; + close(); } + } + async function deleteDataSuggestion(dataId: any) { + loading(); + const response = await deletePublicSuggestion(dataId); + console.log(response); + const responseGet = await getPublicSuggestionList(slug.split("-")?.[0]); + console.log(responseGet?.data?.data); + setListSuggestion(responseGet?.data?.data); + close(); + } const deleteData = (dataId: any) => { MySwal.fire({ title: "Delete Comment", @@ -331,17 +343,17 @@ const DetailAudio = () => { }); }; const postDataChild = (id: any) => { - const checkMessage = checkMaliciousText(message); - if (checkMessage == "") { - if (Number(userRoleId) < 1 || userRoleId == undefined) { - router.push("/auth"); - } else { - sendSuggestionChild(id); - } + const checkMessage = checkMaliciousText(message); + if (checkMessage == "") { + if (Number(userRoleId) < 1 || userRoleId == undefined) { + router.push("/auth"); } else { - warning(checkMessage); + sendSuggestionChild(id); } - }; + } else { + warning(checkMessage); + } + }; return ( <>
@@ -351,13 +363,23 @@ const DetailAudio = () => {
- +
{/* Footer Informasi */}

- oleh {detailDataAudio?.uploadedBy?.userLevel?.name} | Diupdate pada {detailDataAudio?.updatedAt} WIB |  + oleh  + + {detailDataAudio?.uploadedBy?.userLevel?.name} + +  | Diupdate pada {detailDataAudio?.updatedAt}{" "} + WIB |    {detailDataAudio?.clickCount} @@ -366,20 +388,33 @@ const DetailAudio = () => {

{/* Keterangan */}
-

{detailDataAudio?.title}

-
+

+ {detailDataAudio?.title} +

+
{/* Bagian Kanan */}
{isSaved ? ( - handleDeleteWishlist()} className="flex flex-col mb-3 items-center justify-center cursor-pointer"> + handleDeleteWishlist()} + className="flex flex-col mb-3 items-center justify-center cursor-pointer" + >

Hapus

) : ( - doBookmark()} className="flex flex-col mb-3 items-center justify-center cursor-pointer"> + doBookmark()} + className="flex flex-col mb-3 items-center justify-center cursor-pointer" + >

Simpan

@@ -388,13 +423,20 @@ const DetailAudio = () => { {/* garis */}
- + {detailDataAudio?.category?.name}
{detailDataAudio?.tags?.split(",").map((tag: string) => ( - router.push(`/all/filter?tag=${tag}`)} key={tag} className="bg-gray-200 text-gray-700 text-xs px-3 py-1 rounded-full cursor-pointer hover:bg-gray-500"> + router.push(`/all/filter?tag=${tag}`)} + key={tag} + className="bg-gray-200 text-gray-700 text-xs px-3 py-1 rounded-full cursor-pointer hover:bg-gray-500" + > {tag} ))} @@ -403,15 +445,27 @@ const DetailAudio = () => {
{/* Opsi Ukuran Foto */} -

Opsi Ukuran Audio

+

+ Opsi Ukuran Audio +

{sizes.map((size: any) => (
-
- setSelectedSize(size.label)} className="text-red-600 focus:ring-red-600" /> +
+ setSelectedSize(size.label)} + className="text-red-600 focus:ring-red-600" + />
{size.label}
@@ -424,15 +478,30 @@ const DetailAudio = () => { {/* Download Semua */}
{/* Tombol Download */} -