feat(chat-room-bg): 배경 이미지 변경 기능 추가

This commit is contained in:
Yu Sung
2025-09-04 16:44:57 +09:00
parent a025e455a0
commit ee67e1eab7
10 changed files with 277 additions and 18 deletions

View File

@@ -16,6 +16,8 @@ final class ChatRoomViewModel: ObservableObject {
@Published var errorMessage: String = ""
@Published var isShowPopup = false
@Published var chatRoomBgImageId: Int = 0
@Published private(set) var characterId: Int64 = 0
@Published private(set) var characterProfileUrl: String = ""
@Published private(set) var characterName: String = "Character Name"
@Published private(set) var characterType: CharacterType = .Character
@@ -135,10 +137,11 @@ final class ChatRoomViewModel: ObservableObject {
isLoading = true
self.roomId = roomId
self.isHideBg = UserDefaults.standard.bool(forKey: bgHideKey())
self.chatRoomBgImageId = getSavedBackgroundImageId() ?? 0
repository.enterChatRoom(
roomId: roomId,
characterImageId: getSavedBackgroundImageId()
characterImageId: self.chatRoomBgImageId
)
.sink { result in
switch result {
@@ -155,6 +158,7 @@ final class ChatRoomViewModel: ObservableObject {
let decoded = try jsonDecoder.decode(ApiResponse<ChatRoomEnterResponse>.self, from: responseData)
if let data = decoded.data, decoded.success {
self?.characterId = data.character.characterId
self?.characterName = data.character.name
self?.characterType = data.character.characterType
self?.characterProfileUrl = data.character.profileImageUrl
@@ -352,6 +356,12 @@ final class ChatRoomViewModel: ObservableObject {
}
}
func setBackgroundImage(imageItem: CharacterImageListItemResponse) {
UserDefaults.standard.set(imageItem.id, forKey: bgImageIdKey())
chatRoomBgImageUrl = imageItem.imageUrl
chatRoomBgImageId = imageItem.id
}
private func resetData() {
characterProfileUrl = ""
characterName = "Character Name"