import React from "react"; import { useDispatch, useSelector } from "react-redux"; import useFetch from "../../../hooks/useFetch"; import { chatListActions } from "../../../store/chatListSlice"; import { modalActions } from "../../../store/modalSlice"; import Modal from "../../globals/Modal"; import ModalChild from "../../globals/ModalChild"; function ChatOptionsModal() { const chatData = useSelector((state) => state.modalReducer.payload); const dispatch = useDispatch(); // pin chat request function const { reqFn: pinChatRoom } = useFetch( { method: "POST", url: `/chatRoom/${chatData.chatRoomId}`, }, () => { // Pin chat room dispatch( chatListActions.pinOrUnpinChat({ pinned: true, chatRoomId: chatData.chatRoomId, }) ); } ); // unpin chat request function const { reqFn: unpinChatRoom } = useFetch( { method: "PATCH", url: `/chatRoom/${chatData.chatRoomId}`, }, () => { // unpin chat room dispatch( chatListActions.pinOrUnpinChat({ pinned: false, chatRoomId: chatData.chatRoomId, }) ); } ); const pin = ( ); const unpin = ( ); return ( {/* Pin or unpin chat */} { if (!chatData.pinned) { pinChatRoom(); } else { unpinChatRoom(); } dispatch(modalActions.closeModal()); }} > {chatData.pinned ? unpin : pin} {chatData.pinned ? "Unpin" : "Pin"} { dispatch(modalActions.closeModal()); setTimeout(() => { dispatch( modalActions.openModal({ type: chatData.roomType ? "deleteChatModal" : "leaveGroupModal", payload: { chatData }, positions: {}, }) ); }, 210); }} className="text-danger" > {chatData.roomType ? "Delete Chat" : "Leave Group"} ); } export default ChatOptionsModal;