// // FollowButtonImageAsset.swift // SodaLive // // Created by Codex on 2025/03/15. // import SwiftUI enum FollowButtonImageType { case follow case following case followingNoAlarm } struct FollowButtonImageAsset { let type: FollowButtonImageType var imageName: String { let languageCode = LanguageHeaderProvider.current let suffix: String switch languageCode { case "ja": suffix = "_ja" case "en": suffix = "_en" default: suffix = "" } switch type { case .follow: return "btn_follow_big\(suffix)" case .following: return "btn_following_big\(suffix)" case .followingNoAlarm: return "btn_following_no_alarm_big\(suffix)" } } var size: CGSize? { let languageCode = LanguageHeaderProvider.current guard languageCode == "ja" || languageCode == "en" else { return nil } switch type { case .follow: return CGSize(width: 80, height: 26.7) case .following, .followingNoAlarm: return CGSize(width: 100, height: 26.7) } } @ViewBuilder func imageView(defaultSize: CGSize? = nil) -> some View { if let size = size { Image(imageName) .resizable() .frame(width: size.width, height: size.height) } else if let defaultSize = defaultSize { Image(imageName) .resizable() .frame(width: defaultSize.width, height: defaultSize.height) } else { Image(imageName) } } }