Files
sodalive-ios/SodaLive/Sources/Common/FollowButtonImageAsset.swift

67 lines
1.6 KiB
Swift

//
// 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)
}
}
}