mirror of
https://github.com/Dimillian/IceCubesApp.git
synced 2024-12-27 17:40:38 +00:00
9ebe0b314c
* Change arrows icon to rocket for boosts * Fixing case (part 1) * Fixing Case (part 2) * Clean up after merge * Fix for disabled boost * Fixes --------- Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
72 lines
2.1 KiB
Swift
72 lines
2.1 KiB
Swift
import SwiftUI
|
|
|
|
public enum StatusAction: String, CaseIterable, Identifiable {
|
|
public var id: String {
|
|
"\(rawValue)"
|
|
}
|
|
|
|
case none, reply, boost, favorite, bookmark, quote
|
|
|
|
public func displayName(isReblogged: Bool = false, isFavorited: Bool = false, isBookmarked: Bool = false, privateBoost: Bool = false) -> LocalizedStringKey {
|
|
switch self {
|
|
case .none:
|
|
return "settings.swipeactions.status.action.none"
|
|
case .reply:
|
|
return "settings.swipeactions.status.action.reply"
|
|
case .quote:
|
|
return "settings.swipeactions.status.action.quote"
|
|
case .boost:
|
|
if privateBoost {
|
|
return isReblogged ? "status.action.unboost" : "status.action.boost-to-followers"
|
|
}
|
|
|
|
return isReblogged ? "status.action.unboost" : "settings.swipeactions.status.action.boost"
|
|
case .favorite:
|
|
return isFavorited ? "status.action.unfavorite" : "settings.swipeactions.status.action.favorite"
|
|
case .bookmark:
|
|
return isBookmarked ? "status.action.unbookmark" : "settings.swipeactions.status.action.bookmark"
|
|
}
|
|
}
|
|
|
|
public func iconName(isReblogged: Bool = false, isFavorited: Bool = false, isBookmarked: Bool = false, privateBoost: Bool = false) -> String {
|
|
switch self {
|
|
case .none:
|
|
return "slash.circle"
|
|
case .reply:
|
|
return "arrowshape.turn.up.left"
|
|
case .quote:
|
|
return "quote.bubble"
|
|
case .boost:
|
|
if privateBoost {
|
|
return isReblogged ? "Rocket.Fill" : "lock.rotation"
|
|
}
|
|
|
|
return isReblogged ? "Rocket.Fill" : "Rocket"
|
|
case .favorite:
|
|
return isFavorited ? "star.fill" : "star"
|
|
case .bookmark:
|
|
return isBookmarked ? "bookmark.fill" : "bookmark"
|
|
}
|
|
}
|
|
|
|
public func color(themeTintColor: Color, useThemeColor: Bool, outside: Bool) -> Color {
|
|
if useThemeColor {
|
|
return outside ? themeTintColor : .gray
|
|
}
|
|
|
|
switch self {
|
|
case .none:
|
|
return .gray
|
|
case .reply:
|
|
return outside ? .gray : Color(white: 0.45)
|
|
case .quote:
|
|
return outside ? .gray : Color(white: 0.45)
|
|
case .boost:
|
|
return themeTintColor
|
|
case .favorite:
|
|
return .yellow
|
|
case .bookmark:
|
|
return .pink
|
|
}
|
|
}
|
|
}
|