feat : update global

This commit is contained in:
lukman
2024-08-27 17:32:53 +08:00
parent 342d7c968c
commit bf35cd4592
5 changed files with 21 additions and 4 deletions

View File

@@ -0,0 +1,3 @@
import { hookstate } from "@hookstate/core";
export const globalRefreshDiscussion = hookstate<boolean>(false);

View File

@@ -12,6 +12,8 @@ import moment from "moment";
import "moment/locale/id"; import "moment/locale/id";
import { useParams, useRouter } from "next/navigation"; import { useParams, useRouter } from "next/navigation";
import toast from "react-hot-toast"; 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 }) { export default function DetailDiscussion({ id, idDivision }: { id: string, idDivision: string }) {
const [isData, setData] = useState<IDetailDiscussion>() const [isData, setData] = useState<IDetailDiscussion>()
@@ -19,6 +21,7 @@ export default function DetailDiscussion({ id, idDivision }: { id: string, idDiv
const param = useParams<{ id: string, detail: string }>() const param = useParams<{ id: string, detail: string }>()
const [isLoad, setIsLoad] = useState(true) const [isLoad, setIsLoad] = useState(true)
const router = useRouter() const router = useRouter()
const refresh = useHookstate(globalRefreshDiscussion)
const getData = async () => { const getData = async () => {
try { try {
@@ -35,7 +38,7 @@ export default function DetailDiscussion({ id, idDivision }: { id: string, idDiv
useShallowEffect(() => { useShallowEffect(() => {
getData() getData()
}, []) }, [refresh.get()])
const sendComent = async () => { const sendComent = async () => {
try { try {

View File

@@ -8,12 +8,15 @@ import { FaCheck, FaPencil } from "react-icons/fa6";
import { MdClose } from "react-icons/md"; import { MdClose } from "react-icons/md";
import { funDeleteDiscussion, funEditStatusDiscussion } from "../lib/api_discussion"; import { funDeleteDiscussion, funEditStatusDiscussion } from "../lib/api_discussion";
import { useParams, useRouter } from "next/navigation"; 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 }) { export default function DrawerDetailDiscussion({ onSuccess, id, status, idDivision }: { onSuccess: (val: boolean) => void, id: string, status: number, idDivision: string }) {
const [isValModal, setValModal] = useState(false) const [isValModal, setValModal] = useState(false)
const [isValModalStatus, setValModalStatus] = useState(false) const [isValModalStatus, setValModalStatus] = useState(false)
const router = useRouter() const router = useRouter()
const param = useParams<{ id: string, detail: string }>() const param = useParams<{ id: string, detail: string }>()
const refresh = useHookstate(globalRefreshDiscussion)
async function fetchStatusDiscussion(val: boolean) { async function fetchStatusDiscussion(val: boolean) {
@@ -23,6 +26,8 @@ export default function DrawerDetailDiscussion({ onSuccess, id, status, idDivisi
if (response.success) { if (response.success) {
toast.success(response.message) toast.success(response.message)
refresh.set(!refresh.get())
onSuccess(false)
setValModalStatus(false) setValModalStatus(false)
} else { } else {
toast.error(response.message) toast.error(response.message)
@@ -45,6 +50,7 @@ export default function DrawerDetailDiscussion({ onSuccess, id, status, idDivisi
if (response.success) { if (response.success) {
toast.success(response.message) toast.success(response.message)
setValModal(false) setValModal(false)
onSuccess(false)
router.push(`/division/${param.id}/discussion`) router.push(`/division/${param.id}/discussion`)
} else { } else {
toast.error(response.message) toast.error(response.message)

View File

@@ -8,12 +8,15 @@ import toast from "react-hot-toast"
import { FaPencil, FaToggleOff } from "react-icons/fa6" import { FaPencil, FaToggleOff } from "react-icons/fa6"
import { funEditPosition, funEditStatusPosition, funGetOnePosition } from "../lib/api_position" import { funEditPosition, funEditStatusPosition, funGetOnePosition } from "../lib/api_position"
import { IDataPosition } from "../lib/type_position" import { IDataPosition } from "../lib/type_position"
import { useHookstate } from "@hookstate/core"
import { globalRefreshPosition } from "../lib/val_posisition"
export default function DrawerDetailPosition({ onUpdated, id, isActive }: { export default function DrawerDetailPosition({ onUpdated, id, isActive }: {
onUpdated: (val: boolean) => void, id: string, isActive: boolean; onUpdated: (val: boolean) => void, id: string, isActive: boolean;
}) { }) {
const [openDrawerGroup, setOpenDrawerGroup] = useState(false) const [openDrawerGroup, setOpenDrawerGroup] = useState(false)
const [isModal, setModal] = useState(false) const [isModal, setModal] = useState(false)
const refresh = useHookstate(globalRefreshPosition)
const [data, setData] = useState<any>({ const [data, setData] = useState<any>({
id: id, id: id,
name: "", name: "",
@@ -68,6 +71,7 @@ export default function DrawerDetailPosition({ onUpdated, id, isActive }: {
if (res.success) { if (res.success) {
toast.success(res.message); toast.success(res.message);
refresh.set(!refresh.get())
onUpdated(true); onUpdated(true);
onCLose(); onCLose();
} else { } else {
@@ -84,7 +88,7 @@ export default function DrawerDetailPosition({ onUpdated, id, isActive }: {
useShallowEffect(() => { useShallowEffect(() => {
getAllGroup() getAllGroup()
getOneData() getOneData()
}, []) }, [refresh.get()])
async function nonActive(val: boolean) { async function nonActive(val: boolean) {
try { try {
@@ -92,6 +96,7 @@ export default function DrawerDetailPosition({ onUpdated, id, isActive }: {
const res = await funEditStatusPosition(id, { isActive: isActive }) const res = await funEditStatusPosition(id, { isActive: isActive })
if (res.success) { if (res.success) {
toast.success(res.message); toast.success(res.message);
refresh.set(!refresh.get())
onUpdated(true); onUpdated(true);
} else { } else {
onUpdated(false); onUpdated(false);

View File

@@ -43,7 +43,7 @@ export default function DrawerListPosition({ onCreated }: { onCreated: (val: boo
useShallowEffect(() => { useShallowEffect(() => {
getAllGroup() getAllGroup()
}, []) }, [refresh.get()])
async function onSubmit() { async function onSubmit() {
@@ -56,7 +56,7 @@ export default function DrawerListPosition({ onCreated }: { onCreated: (val: boo
if (res.success) { if (res.success) {
setOpenDrawerGroup(false) setOpenDrawerGroup(false)
toast.success(res.message) toast.success(res.message)
refresh.set(true) refresh.set(!refresh.get())
onCreated(true) onCreated(true)
} else { } else {
toast.error(res.message) toast.error(res.message)