크리에이터 채널 - 팔로우/팔로잉 버튼 로컬 라이징 적용
This commit is contained in:
66
SodaLive/Sources/Common/FollowButtonImageAsset.swift
Normal file
66
SodaLive/Sources/Common/FollowButtonImageAsset.swift
Normal file
@@ -0,0 +1,66 @@
|
||||
//
|
||||
// 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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user