68 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
//
 | 
						|
//  LiveRoomChatView.swift
 | 
						|
//  SodaLive
 | 
						|
//
 | 
						|
//  Created by klaus on 2024/01/17.
 | 
						|
//
 | 
						|
 | 
						|
import SwiftUI
 | 
						|
 | 
						|
struct LiveRoomChatView: View {
 | 
						|
    
 | 
						|
    let messages: [LiveRoomChat]
 | 
						|
    let getUserProfile: (Int) -> Void
 | 
						|
    
 | 
						|
    var body: some View {
 | 
						|
        LazyVStack(alignment: .leading, spacing: 18) {
 | 
						|
            ForEach(0..<messages.count, id: \.self) { index in
 | 
						|
                switch (messages[index].type) {
 | 
						|
                case LiveRoomChatType.ROULETTE_DONATION:
 | 
						|
                    let chatMessage = messages[index] as! LiveRoomRouletteDonationChat
 | 
						|
                    LiveRoomRouletteDonationChatItemView(chatMessage: chatMessage)
 | 
						|
                    
 | 
						|
                case LiveRoomChatType.DONATION:
 | 
						|
                    let chatMessage = messages[index] as! LiveRoomDonationChat
 | 
						|
                    LiveRoomDonationChatItemView(chatMessage: chatMessage)
 | 
						|
                    
 | 
						|
                case LiveRoomChatType.JOIN:
 | 
						|
                    let chatMessage = messages[index] as! LiveRoomJoinChat
 | 
						|
                    LiveRoomJoinChatItemView(chatMessage: chatMessage)
 | 
						|
                    
 | 
						|
                default:
 | 
						|
                    let chatMessage = messages[index] as! LiveRoomNormalChat
 | 
						|
                    LiveRoomChatItemView(
 | 
						|
                        chatMessage: chatMessage,
 | 
						|
                        onClickProfile: {
 | 
						|
                            if chatMessage.userId != UserDefaults.int(forKey: .userId) {
 | 
						|
                                getUserProfile(chatMessage.userId)
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    )
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
struct LiveRoomChatView_Previews: PreviewProvider {
 | 
						|
    static var previews: some View {
 | 
						|
        LiveRoomChatView(
 | 
						|
            messages: [
 | 
						|
                LiveRoomRouletteDonationChat(
 | 
						|
                    profileUrl: "https://cf.sodalive.net/profile/26/26-profile-ddf78b4d-0300-4c50-9c84-5d8a95fd5fe2-4892-1705256364320",
 | 
						|
                    nickname: "jkljkljkl",
 | 
						|
                    rouletteResult: "sdfjkldfsjkl",
 | 
						|
                    type: .ROULETTE_DONATION
 | 
						|
                ),
 | 
						|
                LiveRoomRouletteDonationChat(
 | 
						|
                    profileUrl: "https://cf.sodalive.net/profile/26/26-profile-ddf78b4d-0300-4c50-9c84-5d8a95fd5fe2-4892-1705256364320",
 | 
						|
                    nickname: "jkljkljkl",
 | 
						|
                    rouletteResult: "sdfjkldfsjkl",
 | 
						|
                    type: .ROULETTE_DONATION
 | 
						|
                )
 | 
						|
            ],
 | 
						|
            getUserProfile: { _ in }
 | 
						|
        )
 | 
						|
    }
 | 
						|
}
 |