'use client' import { WARNA } from "@/module/_global"; import { Avatar, Badge, Box, Divider, Flex, Group, Skeleton, Spoiler, Text, TextInput } from "@mantine/core"; import { useParams, useRouter, useSearchParams } from "next/navigation"; import { useState } from "react"; import { GrChatOption } from "react-icons/gr"; import { HiMagnifyingGlass } from "react-icons/hi2"; import { funGetAllDiscussion } from "../lib/api_discussion"; import { useShallowEffect } from "@mantine/hooks"; import { IDataDiscussion } from "../lib/type_discussion"; import toast from "react-hot-toast"; import _ from "lodash"; export default function ListDiscussion({ id }: { id: string }) { const [isData, setData] = useState([]) const [searchQuery, setSearchQuery] = useState('') const param = useParams<{ id: string }>() const [loading, setLoading] = useState(true) const getData = async () => { try { setLoading(true) const response = await funGetAllDiscussion('?division=' + id + '&search=' + searchQuery) if ( response.success ) { setData(response.data) } else { toast.error(response.message) } setLoading(false) } catch (error) { console.log(error) } finally { setLoading(false) } } useShallowEffect(() => { getData() }, [searchQuery]) const router = useRouter() return ( } placeholder="Pencarian" value={searchQuery} onChange={(e) => setSearchQuery(e.target.value)} /> {loading ? Array(3) .fill(null) .map((_, i) => ( )) : _.isEmpty(isData) ? Tidak ada Diskusi : isData.map((v, i) => { return ( { router.push(`/division/${param.id}/discussion/${v.id}`) }} > {v.user_name} {v.status === 1 ? "BUKA" : "TUTUP"} {v.createdAt} { router.push(`/division/${param.id}/discussion/${v.id}`) }} > {v.desc} Diskusikan {v.total_komentar} Komentar {isData.length <= 1 ? "" : } ); }) } ) }