"use client" import { ActionIcon, Avatar, Badge, Box, Center, Divider, Flex, Grid, Group, Input, rem, Skeleton, Spoiler, Text, TextInput } from "@mantine/core"; import { SkeletonDetailDiscussionComment, SkeletonDetailDiscussionMember, SkeletonSingle, WARNA } from "@/module/_global"; import { GrChatOption } from "react-icons/gr"; import { LuSendHorizonal } from "react-icons/lu"; import NavbarDetailDiscussion from "@/module/discussion/ui/navbar_detail_discussion"; import { useState } from "react"; import { funCreateComent, funGetAllDiscussion, funGetDiscussionById } from "../lib/api_discussion"; import { useShallowEffect } from "@mantine/hooks"; import { IDetailDiscussion } from "../lib/type_discussion"; import moment from "moment"; import "moment/locale/id"; import { useParams, useRouter } from "next/navigation"; import toast from "react-hot-toast"; import { useHookstate } from "@hookstate/core"; import { globalRefreshDiscussion } from "../lib/val_discussion"; export default function DetailDiscussion({ id, idDivision }: { id: string, idDivision: string }) { const [isData, setData] = useState() const [isComent, setIsComent] = useState("") const param = useParams<{ id: string, detail: string }>() const [isLoad, setIsLoad] = useState(true) const router = useRouter() const refresh = useHookstate(globalRefreshDiscussion) const getData = async () => { try { setIsLoad(true) const response = await funGetDiscussionById(id) setData(response.data) setIsLoad(false) } catch (error) { console.log(error) } finally { setIsLoad(false) } } useShallowEffect(() => { getData() }, [refresh.get()]) const sendComent = async () => { try { if (isComent.trim() == "") { return toast.error("Masukkan Komentar Anda") } const response = await funCreateComent(id, { comment: isComent, idDiscussion: param.detail }) if (response.success) { setIsComent("") getData() } else { toast.error(response.message) } } catch (error) { console.log(error) } } return ( {isLoad ? Array(1) .fill(null) .map((_, i) => ( )) : <> {isData?.totalComments == 0 ? {isData?.username ? {isData?.username} {isData?.status === 1 ? "BUKA" : "TUTUP"} : "" } {isData?.createdAt} {isData?.desc} {isData?.totalComments ? {isData?.totalComments} Komentar : ""} : {isData?.username ? {isData?.username} {isData?.status === 1 ? "BUKA" : "TUTUP"} : "" } {isData?.createdAt} {isData?.desc} {isData?.totalComments ? {isData?.totalComments} Komentar : ""} } } {isLoad ? Array(2) .fill(0) .map((_, i) => ( )) : isData?.DivisionDisscussionComment.map((v, i) => { return ( {v.username} {moment(v.createdAt).format("LL")} {v.comment} ); }) } {isLoad ? : {300 - isComent.length} karakter tersisa setIsComent(e.target.value)} value={isComent} maxLength={300} />
}
) }