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;