67 lines
1.6 KiB
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)
|
|
}
|
|
}
|
|
}
|