upd: document

Deskripsi:
- update realtime document

No Issues
This commit is contained in:
amel
2024-10-15 22:07:27 +08:00
parent ee43572183
commit 54a2884b31
5 changed files with 117 additions and 145 deletions

View File

@@ -1,58 +1,30 @@
"use client";
import {
LayoutDrawer,
LayoutModalViewFile,
LayoutNavbarNew,
TEMA,
} from "@/module/_global";
import {
ActionIcon,
Anchor,
Box,
Breadcrumbs,
Button,
Checkbox,
Divider,
Flex,
Grid,
Group,
Indicator,
Menu,
Modal,
rem,
Select,
SimpleGrid,
Skeleton,
Text,
TextInput,
} from "@mantine/core";
import React, { useState } from "react";
import { HiMenu } from "react-icons/hi";
import { FcDocument, FcFolder, FcImageFile } from "react-icons/fc";
import { BsDownload, BsListCheck } from "react-icons/bs";
import { keyWibu, LayoutDrawer, LayoutModalViewFile, LayoutNavbarNew, TEMA, } from "@/module/_global";
import LayoutModal from "@/module/_global/layout/layout_modal";
import { funGetDivisionById } from "@/module/division_new";
import { useHookstate } from "@hookstate/core";
import { ActionIcon, Box, Breadcrumbs, Button, Checkbox, Divider, Flex, Grid, Group, Indicator, Menu, Modal, rem, SimpleGrid, Skeleton, Text, TextInput } from "@mantine/core";
import { useMediaQuery, useShallowEffect } from "@mantine/hooks";
import { useParams, useRouter, useSearchParams } from "next/navigation";
import { useState } from "react";
import toast from "react-hot-toast";
import { AiOutlineDelete } from "react-icons/ai";
import { BsDownload, BsListCheck } from "react-icons/bs";
import { CgRename } from "react-icons/cg";
import { FaShare } from "react-icons/fa6";
import { FcDocument, FcFolder, FcImageFile } from "react-icons/fc";
import { GoChevronRight } from "react-icons/go";
import { HiMenu } from "react-icons/hi";
import { LuShare2 } from "react-icons/lu";
import { MdClose, MdOutlineMoreHoriz } from "react-icons/md";
import LayoutModal from "@/module/_global/layout/layout_modal";
import toast from "react-hot-toast";
import { useParams, useRouter, useSearchParams } from "next/navigation";
import { RiListCheck } from "react-icons/ri";
import { funDeleteDocument, funGetAllDocument, funRenameDocument, } from "../lib/api_document";
import { IDataDocument, IJalurItem } from "../lib/type_document";
import { globalRefreshDocument } from "../lib/val_document";
import DrawerMenuDocumentDivision from "./drawer_menu_document_division";
import DrawerMore from "./drawer_more";
import { funGetDivisionById } from "@/module/division_new";
import { useMediaQuery, useShallowEffect } from "@mantine/hooks";
import {
funDeleteDocument,
funGetAllDocument,
funRenameDocument,
} from "../lib/api_document";
import { IDataDocument, IJalurItem } from "../lib/type_document";
import { useHookstate } from "@hookstate/core";
import { globalRefreshDocument } from "../lib/val_document";
import { RiListCheck } from "react-icons/ri";
import { GoChevronRight } from "react-icons/go";
import DrawerShareDocument from "./drawer_share_document";
import { FaShare } from "react-icons/fa6";
import { useWibuRealtime } from "wibu-realtime";
export default function NavbarDocumentDivision() {
const router = useRouter();
@@ -80,6 +52,10 @@ export default function NavbarDocumentDivision() {
const isMobile2 = useMediaQuery("(max-width: 496px)");
const tema = useHookstate(TEMA);
const [loading, setLoading] = useState(true);
const [dataRealTime, setDataRealtime] = useWibuRealtime({
WIBU_REALTIME_TOKEN: keyWibu,
project: "sdm"
})
const [bodyRename, setBodyRename] = useState({
id: "",
name: "",
@@ -166,7 +142,11 @@ export default function NavbarDocumentDivision() {
try {
const respon = await funDeleteDocument(selectedFiles);
if (respon.success) {
getOneData();
getOneData(false);
setDataRealtime([{
category: "division-document",
id: path,
}])
} else {
toast.error(respon.message);
}
@@ -185,7 +165,11 @@ export default function NavbarDocumentDivision() {
try {
const res = await funRenameDocument(bodyRename);
if (res.success) {
getOneData();
setDataRealtime([{
category: "division-document",
id: path,
}])
getOneData(false);
} else {
toast.error(res.message);
}
@@ -199,21 +183,25 @@ export default function NavbarDocumentDivision() {
setRename(false);
}
async function getOneData() {
useShallowEffect(() => {
if (dataRealTime && dataRealTime.some((i: any) => i.category == 'division-document' && i.id == path)) {
getOneData(false)
}
}, [dataRealTime])
async function getOneData(loading: boolean) {
try {
setLoading(true);
setLoading(loading);
const respon = await funGetAllDocument(
"?division=" + param.id + "&path=" + path
);
if (respon.success) {
setDataDocument(respon.data);
setDataJalur(respon.jalur);
setLoading(false);
} else {
toast.error(respon.message);
setDataDocument([]);
setDataJalur([]);
setLoading(false);
}
const res = await funGetDivisionById(param.id);
if (res.success) {
@@ -242,7 +230,7 @@ export default function NavbarDocumentDivision() {
}, [selectedFiles]);
useShallowEffect(() => {
getOneData();
getOneData(true);
resetRefresh();
}, [param.id, path, refresh.get()]);