오늘까지 반영사항은 깃허브 finalProject에 적용함
(postDetail.jsx)
// 채팅방 개설
useEffect(()=>{
localStorage.setItem("roomId", postChat)
}, [postChat])
// postChat 선언한 것이 변할 때마다 셋아이템 유즈이펙트
const onClickChatting = () =>{
dispatch(__CreateRoom({
postId:post.postId,
// 페이로드로 넘겨주는 건 postId만
}));
setTimeout(
function () {
// 만들어진 채팅방으로 이동하는 로직 => localStorage 활용한 방법 이용
// localStorage에 저장해서 데스티네이션, url 등을 맞춰서 방 개설하는 방법 활용
// 연결되었을 때 콜백함수 실행
navigate(`/chatting/${localStorage.getItem("roomId")}`);
},
300 // 밀리초 간격으로 실행
);
}
트러블슈팅 : 각종 아이콘(svg) 이동, 말풍선 좌우 정렬 이슈가 있었다.
1) 말풍선 좌우 정렬 : 우측으로 본인 글 옮기는 로직
(Chatting.jsx)
{listReducer.joinUserNickname === item.sender ?
(<ChatStyle key={uuidv4()} style={{textAlign:"right"}}>
{/* 인라인 요소로 바로 우측 정렬 해결 */}
<TimeDiv>
<TimeSpan>{item.sendDate}</TimeSpan>
<JoinUserNickname>{item.message}</JoinUserNickname>
</TimeDiv>
</ChatStyle>) :
(<ChatStyle key={uuidv4()}>
<TimeDiv>
<PostUserNickname>{item.message}</PostUserNickname>
<TimeSpan>{item.sendDate}</TimeSpan></TimeDiv>
</ChatStyle>)
}
2) 종이비행기 아이콘 정렬하기
<InputDiv>
<Input value={chatBody} onChange={inputHandler} onKeyPress={appKeyPress} placeholder="댓글을 입력하세요"/>
{/* value를 줘야 사라진다 */}
<Send onClick={onSubmitHandler} style={{position:"fixed", left:"calc(50% + 140px)", transform:"translateX(-50%)", bottom:25}}/>
{/* calc로 계산해서 반응형에 맞춰도 움직이지 않는 그림 만든다. svg는 컴포넌트처럼 임포트가 가능하다 */}
</InputDiv>