Skip to content

Commit de84255

Browse files
authored
Feat/#254-C: 피어가 캠/마이크 조작 시 아이콘 변경 (#336)
* feat: 캠/마이크 상태 전달을 위한 소켓 이벤트 핸들링 * feat: 피어가 캠/마이크 조작 시 아이콘 변경 * fix: 불필요한 key 제거
1 parent 22592a4 commit de84255

File tree

1 file changed

+18
-17
lines changed
  • client/src/components/MeetingMediaBar

1 file changed

+18
-17
lines changed

client/src/components/MeetingMediaBar/index.tsx

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import { useEffect, useState } from 'react';
2-
import { useMeetingMediaStreams } from 'src/hooks/useMeetingMediaStreams';
2+
import {
3+
useMeetingMediaStreamsV2,
4+
MeetingMediaStream,
5+
} from 'src/hooks/useMeetingMediaStreamsV2';
36
import useSocketContext from 'src/hooks/useSocketContext';
47

58
import MeetingMedia from './MeetingMedia';
@@ -8,35 +11,33 @@ import style from './style.module.scss';
811

912
function MeetingMediaBar() {
1013
const { workspaceSocket: socket } = useSocketContext();
11-
const [streams, setMyTrack] = useMeetingMediaStreams(socket);
14+
const [streams, setLocalAudio, setLocalVideo] =
15+
useMeetingMediaStreamsV2(socket);
1216

1317
const [isMicOn, setIsMicOn] = useState(true);
1418
const [isCamOn, setIsCamOn] = useState(true);
1519

1620
useEffect(() => {
17-
setMyTrack('audio', isMicOn);
21+
setLocalAudio(isMicOn);
1822
}, [isMicOn]);
1923

2024
useEffect(() => {
21-
setMyTrack('video', isCamOn);
25+
setLocalVideo(isCamOn);
2226
}, [isCamOn]);
2327

2428
return (
2529
<div className={style['meeting-bar']}>
2630
<ul>
27-
{Array.from(streams).map(([id, stream]) => (
28-
<li key={id}>
29-
<MeetingMedia
30-
key={id}
31-
stream={stream}
32-
muted={id === 'me' ? true : false}
33-
/>
34-
<StreamButton
35-
isMicOn={false}
36-
isCamOn={true} // TODO: 임시로 지정
37-
/>
38-
</li>
39-
))}
31+
{streams.map(
32+
({ id, stream, type, audioOn, videoOn }: MeetingMediaStream) => (
33+
<li key={id}>
34+
<MeetingMedia stream={stream} muted={type === 'local'} />
35+
{type === 'remote' && (
36+
<StreamButton isMicOn={audioOn} isCamOn={videoOn} />
37+
)}
38+
</li>
39+
),
40+
)}
4041
</ul>
4142
<StreamButton
4243
{...{

0 commit comments

Comments
 (0)