"use client"; import { Textarea } from "@/components/ui/textarea"; import { useParams, usePathname, useSearchParams } from "next/navigation"; import React, { useEffect, useState } from "react"; import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, } from "@/components/ui/carousel"; import { Link, useRouter } from "@/i18n/routing"; import { deleteBlogComments, getBlogComments, getDetailIndeks, getPublicSuggestionList, postBlogComments, publicDetailBlog, } from "@/service/landing/landing"; import { formatDateToIndonesian } from "@/utils/globals"; import { Icon } from "@iconify/react/dist/iconify.js"; import { getCookiesDecrypt } from "@/lib/utils"; import { close, loading } from "@/config/swal"; import { Input } from "@/components/ui/input"; import { useTranslations } from "next-intl"; import Image from "next/image"; const IndeksDetail = () => { const searchParams = useSearchParams(); const id = searchParams?.get("id"); const [indeksData, setIndeksData] = useState(); const params = useParams(); const slug = params?.slug; const [indexData, setIndexData] = useState(); const [message, setMessage] = useState(""); const [messageChild, setMessageChild] = useState(""); const userId = getCookiesDecrypt("uie"); const userRoleId = getCookiesDecrypt("urie"); const router: any = useRouter(); const [listComments, setListComments] = useState([]); const t = useTranslations("LandingPage"); useEffect(() => { initFetch(); detailFetch(); }, []); const initFetch = async () => { const response = await getDetailIndeks(); console.log(response); setIndexData(response?.data?.data?.content); }; const detailFetch = async () => { const response = await publicDetailBlog(slug); console.log(response); setIndeksData(response?.data?.data); getDataComment(response?.data?.data?.id); }; async function getDataComment(id?: any) { const response = await getBlogComments(id || indeksData?.id); console.log(response.data?.data); setListComments(response.data?.data); } const showInput = (e: any) => { console.log(document.querySelector(`#${e}`)?.classList); document.querySelector(`#${e}`)?.classList.toggle("hidden"); }; async function sendCommentParent() { if (message?.length > 3) { loading(); const data = { blogId: indeksData?.id, message: message, parentId: null, }; const response = await postBlogComments(data); console.log(response); setMessage(""); getDataComment(); close(); } } // async function sendCommentChild(parentId: any) { // if (messageChild.length > 3) { // loading(); // const data = { // blogId: indeksData?.id, // message: messageChild, // parentId, // }; // console.log(data); // const response = await postBlogComments(data); // console.log(response); // const responseGet = await getPublicSuggestionList(slug); // console.log(responseGet?.data?.data); // setMessageChild(""); // // $(":input").val(""); // close(); // } // } async function sendCommentChild(parentId: any) { const inputMsg = document.querySelector( `#input-comment-${parentId}` ) as HTMLInputElement; if (inputMsg && inputMsg.value.length > 3) { loading(); const data = { blogId: indeksData?.id, message: inputMsg.value, parentId, }; console.log(data); const response = await postBlogComments(data); console.log(response); const responseGet = await getPublicSuggestionList(slug); console.log(responseGet?.data?.data); getDataComment(); inputMsg.value = ""; close(); } } async function deleteDataComment(dataId: any) { loading(); const response = await deleteBlogComments(dataId); console.log(response); getDataComment(); close(); } const getInputValue = (e: any) => { const message = e.target.value; console.log(message); setMessage(message); getDataComment(); }; const postData = () => { if (Number(userRoleId) < 1) { router.push("/auth"); } else { sendCommentParent(); } getDataComment(); }; const postDataChild = (id: any) => { if (Number(userRoleId) < 1) { router.push("/auth"); } else { sendCommentChild(id); } }; const deleteData = (dataId: any) => { deleteDataComment(dataId); console.log(dataId); }; const shimmer = (w: number, h: number) => ` `; const toBase64 = (str: string) => typeof window === "undefined" ? Buffer.from(str).toString("base64") : window.btoa(str); return ( <>
{/* Judul */}

Index / Detail

{indeksData?.title}

{/* Gambar Utama */}
Main
{/* Footer Informasi */}

{t("by", { defaultValue: "By" })}  {indeksData?.uploaderName}   |  {t("updatedOn", { defaultValue: "Updated On" })} {indeksData?.createdAt} WIB  

{/* Keterangan */}

{/* Comment */}

{t("comment", { defaultValue: "Comment" })}