Deskripsi:
- diskusi realtime edit
- diskusi real time status

No Issues
This commit is contained in:
amel
2024-10-10 16:11:44 +08:00
parent 79b178e933
commit 0f85d87506
3 changed files with 25 additions and 7 deletions

View File

@@ -55,7 +55,7 @@ export default function DetailDiscussion({ id, idDivision }: { id: string, idDiv
}, [refresh.get()])
useShallowEffect(() => {
if (dataRealTime && dataRealTime.some((i: any) => i.category == 'discussion-comment' && i.id == id)) {
if (dataRealTime && dataRealTime.some((i: any) => i.category == 'discussion-detail' && i.id == id)) {
getData(false)
}
}, [dataRealTime])
@@ -79,7 +79,7 @@ export default function DetailDiscussion({ id, idDivision }: { id: string, idDiv
if (response.success) {
setIsComent("")
setDataRealtime([{
category: "discussion-comment",
category: "discussion-detail",
id: id,
}])
reloadData()

View File

@@ -1,14 +1,15 @@
import { TEMA } from "@/module/_global";
import { keyWibu, TEMA } from "@/module/_global";
import LayoutModal from "@/module/_global/layout/layout_modal";
import { Box, Stack, SimpleGrid, Flex, Text } from "@mantine/core";
import { useHookstate } from "@hookstate/core";
import { Box, Flex, SimpleGrid, Stack, Text } from "@mantine/core";
import { useParams, useRouter } from "next/navigation";
import { useState } from "react";
import toast from "react-hot-toast";
import { BsTrash3 } from "react-icons/bs";
import { FaCheck, FaPencil } from "react-icons/fa6";
import { MdClose } from "react-icons/md";
import { useWibuRealtime } from "wibu-realtime";
import { funDeleteDiscussion, funEditStatusDiscussion } from "../lib/api_discussion";
import { useParams, useRouter } from "next/navigation";
import { useHookstate } from "@hookstate/core";
import { globalRefreshDiscussion } from "../lib/val_discussion";
export default function DrawerDetailDiscussion({ onSuccess, id, status, idDivision }: { onSuccess: (val: boolean) => void, id: string, status: number, idDivision: string }) {
@@ -18,6 +19,10 @@ export default function DrawerDetailDiscussion({ onSuccess, id, status, idDivisi
const param = useParams<{ id: string, detail: string }>()
const refresh = useHookstate(globalRefreshDiscussion)
const tema = useHookstate(TEMA)
const [dataRealTime, setDataRealtime] = useWibuRealtime({
WIBU_REALTIME_TOKEN: keyWibu,
project: "sdm"
})
async function fetchStatusDiscussion(val: boolean) {
@@ -28,6 +33,10 @@ export default function DrawerDetailDiscussion({ onSuccess, id, status, idDivisi
if (response.success) {
toast.success(response.message)
refresh.set(!refresh.get())
setDataRealtime([{
category: "discussion-detail",
id: id,
}])
onSuccess(false)
setValModalStatus(false)
} else {

View File

@@ -1,5 +1,5 @@
'use client'
import { TEMA } from "@/module/_global"
import { keyWibu, TEMA } from "@/module/_global"
import LayoutModal from "@/module/_global/layout/layout_modal"
import { Box, Group, Avatar, Textarea, Button, Grid, rem, Skeleton } from "@mantine/core"
import { useParams, useRouter } from "next/navigation"
@@ -9,6 +9,7 @@ import { funEditDiscussion, funGetDiscussionById } from "../lib/api_discussion"
import { useShallowEffect } from "@mantine/hooks"
import { funGetProfileByCookies } from "@/module/user/profile/lib/api_profile"
import { useHookstate } from "@hookstate/core"
import { useWibuRealtime } from "wibu-realtime"
export default function FormEditDiscussion() {
const [isValModal, setValModal] = useState(false)
@@ -22,6 +23,10 @@ export default function FormEditDiscussion() {
const [touched, setTouched] = useState({
desc: false,
});
const [dataRealTime, setDataRealtime] = useWibuRealtime({
WIBU_REALTIME_TOKEN: keyWibu,
project: "sdm"
})
async function fetchGetOneDiscussion() {
try {
@@ -45,6 +50,10 @@ export default function FormEditDiscussion() {
if (response.success) {
toast.success(response.message)
setValModal(false)
setDataRealtime([{
category: "discussion-detail",
id: param.detail,
}])
router.push(`/division/${param.id}/discussion/${param.detail}`)
} else {
toast.error(response.message)