2025-02-17 13:39:57 +01:00

136 lines
3.5 KiB
Swift

enum PageIcon: String, CaseIterable {
// MARK: General
case calendar
case clockFill = "clock-fill"
case file
case globe
case location
case poster
case video
case bell
// MARK: Statistics
case statisticsTime = "time"
case statisticsElevationUp = "elevation-up"
case statisticsElevationDown = "elevation-down"
case statisticsDistance = "distance"
case statisticsEnergy = "energy"
// MARK: Buttons
case buttonDownload = "download"
case buttonExternalLink = "external"
case buttonGitLink = "git"
case buttonPlay = "play-circle"
// MARK: Audio player
case audioPlayerPlaylist = "playlist"
case audioPlayerClose = "close"
case audioPlayerPlay = "play"
case audioPlayerPause = "pause"
case audioPlayerPrevious = "previous"
case audioPlayerNext = "next"
// MARK: Image compare
case leftRightArrow = "left-right-arrow"
var icon: ContentIcon.Type {
switch self {
case .statisticsTime: Icon.Statistics.Time.self
case .statisticsElevationUp: Icon.Statistics.ElevationUp.self
case .statisticsElevationDown: Icon.Statistics.ElevationDown.self
case .statisticsDistance: Icon.Statistics.Distance.self
case .statisticsEnergy: Icon.Statistics.Energy.self
case .buttonDownload: Icon.ArrowDown.self
case .buttonExternalLink: Icon.ArrowRight.self
case .buttonGitLink: Icon.Git.self
case .buttonPlay: Icon.Play.self
case .audioPlayerPlaylist: Icon.AudioPlayer.Playlist.self
case .audioPlayerClose: Icon.AudioPlayer.Close.self
case .audioPlayerPlay: Icon.AudioPlayer.Play.self
case .audioPlayerPause: Icon.AudioPlayer.Pause.self
case .audioPlayerPrevious: Icon.AudioPlayer.Previous.self
case .audioPlayerNext: Icon.AudioPlayer.Next.self
case .calendar: Icon.Calendar.self
case .clockFill: Icon.ClockFill.self
case .file: Icon.File.self
case .globe: Icon.Globe.self
case .location: Icon.Location.self
case .poster: Icon.Poster.self
case .video: Icon.Video.self
case .leftRightArrow: Icon.LeftRightArrow.self
case .bell: Icon.Bell.self
}
}
var name: String {
switch self {
case .calendar: "Calendar"
case .clockFill: "ClockFill"
case .file: "File"
case .globe: "Globe"
case .location: "Location"
case .poster: "Poster"
case .video: "Video"
case .bell: "Bell"
case .leftRightArrow: "LeftRightArrow"
case .buttonExternalLink: "Button: External Link"
case .buttonGitLink: "Button: Git Link"
case .buttonPlay: "Button: Play"
case .audioPlayerPlaylist: "Audio Player: Playlist"
case .audioPlayerClose: "Audio Player: Close"
case .audioPlayerPlay: "Audio Player: Play"
case .audioPlayerPause: "Audio Player: Pause"
case .audioPlayerPrevious: "Audio Player: Previous"
case .audioPlayerNext: "Audio Player: Next"
case .buttonDownload: "Button: Download"
case .statisticsTime: "Time"
case .statisticsElevationUp: "Elevation Up"
case .statisticsElevationDown: "Elevation Down"
case .statisticsDistance: "Distance"
case .statisticsEnergy: "Energy / Calories"
}
}
var svgString: String {
icon.svgString
}
var id: String {
icon.id
}
var usageString: String {
icon.usageString
}
}
extension PageIcon: Hashable {
}