Skip to content

Commit

Permalink
[Fix] useSocket 종속성 함수들 수정 (#183)
Browse files Browse the repository at this point in the history
  • Loading branch information
wken5577 committed Dec 15, 2023
1 parent 16c28eb commit 87f44fa
Showing 1 changed file with 61 additions and 49 deletions.
110 changes: 61 additions & 49 deletions project/frontend/src/hooks/useSocket.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import useToast from '@/components/common/useToast';
import { messageType } from '@/components/dm/message/MessageContent';
import { getSocket } from '@/lib/Socket';
import { useRouter } from 'next/navigation';
import { useEffect } from 'react';
import { useCallback, useEffect } from 'react';

const handleDirectMessage = (
socket: any,
Expand Down Expand Up @@ -34,64 +34,68 @@ export const useSocket = (
targetName: string | undefined,
) => {
const router = useRouter();
const { openIsOut, openIsKick, openIsBan, openIsMute, openIsPromote } = useToast();
const { openIsOut, openIsKick, openIsBan, openIsMute, openIsPromote } =
useToast();


const handleLeave = (
socket: any,
setMessages: any,
meId: string | undefined,
router: any,
) => {
socket.on('leave', (res: any) => {
if (res.data.member.id === meId) {
openIsOut();
router.replace('/channel');
} else {
setMessages((messages: any) => [...messages, res]);
}
});
};
const handleLeave = useCallback(
(socket: any, setMessages: any, meId: string | undefined, router: any) => {
socket.on('leave', (res: any) => {
if (res.data.member.id === meId) {
openIsOut();
router.replace('/channel');
} else {
setMessages((messages: any) => [...messages, res]);
}
});
},
[openIsOut],
);

const handleJoin = (socket: any, setMessages: any) => {
socket.on('join', (res: any) => {
setMessages((messages: any) => [...messages, res]);
});
};

const handleKickBanPromote = (
socket: any,
meId: string | undefined,
channelId: string | undefined,
router: any,
) => {
socket.on('kickBanPromote', (res: any) => {
const targetUserId = res.data.targetUser.id;
const handleKickBanPromote = useCallback(
(
socket: any,
meId: string | undefined,
channelId: string | undefined,
router: any,
) => {
socket.on('kickBanPromote', (res: any) => {
const targetUserId = res.data.targetUser.id;

if (res.data.actionType === 'KICK' || res.data.actionType === 'BANNED') {
if (targetUserId === meId && channelId === res.data.channelId) {
if (res.data.actionType === 'KICK') {
openIsKick();
} else {
openIsBan();
if (
res.data.actionType === 'KICK' ||
res.data.actionType === 'BANNED'
) {
if (targetUserId === meId && channelId === res.data.channelId) {
if (res.data.actionType === 'KICK') {
openIsKick();
} else {
openIsBan();
}
router.replace('/channel');
}
router.replace('/channel');
} else if (
res.data.actionType === 'PROMOTE' &&
channelId === res.data.channelId &&
targetUserId === meId
) {
openIsPromote();
} else if (
res.data.actionType === 'MUTE' &&
targetUserId === meId &&
channelId === res.data.channelId
) {
openIsMute();
}
} else if (
res.data.actionType === 'PROMOTE' &&
channelId === res.data.channelId &&
targetUserId === meId
) {
openIsPromote();
} else if (
res.data.actionType === 'MUTE' &&
targetUserId === meId &&
channelId === res.data.channelId
) {
openIsMute();
}
});
};
});
},
[openIsBan, openIsKick, openIsMute, openIsPromote],
);

useEffect(() => {
const socket = getSocket();
Expand All @@ -116,5 +120,13 @@ const handleLeave = (
socket.off('kickBanPromote');
}
};
}, [type, setMessages, channelId, targetName, router]);
}, [
type,
setMessages,
channelId,
targetName,
router,
handleKickBanPromote,
handleLeave,
]);
};

0 comments on commit 87f44fa

Please sign in to comment.