프로필 이미지 리듀서 loginRes 업데이트 액션 프로필 변경 액션 정의 notification 액션 정의 이펙트 대화방 프로필 이미지 업데이트 대상 RoomType: bot, single 대화방 유저 리스트 프로필 이미지 업데이트 대화방 리스트, 대화방 유저 프로필 이미지 roomUsersShort.userInfos 동료 프로필 이미지 업데이트 BuddySelector.buddies 동료, 대화방 프로필 이미지 스테이트 확인 자신 프로필 변경 스토어 변경 동료 프로필 변경 알림 동료, 대화방 프로필 변경 프로필 변경 데이터 updateUserInfoNoti updateProfileImageNoti updateBuddyProfile 대화방 user seq find -> room info -> userList||userShort -> update this.store.pipe(select(RoomSelector.rooms)), this.store.pipe(select(RoomSelector.roomUsers)), this.store.pipe(select(RoomSelector.roomUsersShort)) roomUsers = (roomUsers || []).filter( (userMap) => rooms.findIndex((roomInfo) => roomInfo.roomId === userMap.roomId) > -1 ); roomUsersShort = (roomUsersShort || []).filter( (userMap) => rooms.findIndex((roomInfo) => roomInfo.roomId === userMap.roomId) > -1 ); const recommendedWordList = []; for (const r of rooms) { if (!!r.roomName && '' !== r.roomName.trim()) { recommendedWordList.push(r.roomName); } } for (const ru of roomUsers) { for (const u of ru.userInfos) { if (!!this.loginRes && u.seq !== Number(this.loginRes.userSeq)) { if (!!u.name && '' !== u.name.trim() && u.isJoinRoom) { recommendedWordList.push(u.name); } } } } for (const ru of roomUsersShort) { for (const u of ru.userInfos) { if (!!this.loginRes && u.seq !== Number(this.loginRes.userSeq)) { if (!!u.name && '' !== u.name.trim() && u.isJoinRoom) { recommendedWordList.push(u.name); } } } } this.recommendedWordList = [ ...recommendedWordList.filter( (item, index) => recommendedWordList.indexOf(item) === index ) ]; auth 12 group 17 org 12 chat 44 const profile = { userSeq: this.loginRes.userSeq + '', deviceType: 'W', token: this.loginRes.tokenString, file: profileImageFileUploadItem.file, fileUploadItem: profileImageFileUploadItem } as FileProfileSaveRequest; this.appFileServie.fileProfileSave( profile, this.versionInfo2Res.profileUploadUrl );