63 lines
1.6 KiB
Swift
63 lines
1.6 KiB
Swift
//
|
|
// EmojiCategory.swift
|
|
//
|
|
//
|
|
// Created by Niklas Amslgruber on 10.06.23.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
public class EmojiCategory: Codable {
|
|
|
|
public enum Name: String, CaseIterable, Codable {
|
|
case flags = "Flags"
|
|
case activities = "Activities"
|
|
case components = "Component"
|
|
case objects = "Objects"
|
|
case travelAndPlaces = "Travel & Places"
|
|
case symbols = "Symbols"
|
|
case peopleAndBody = "People & Body"
|
|
case animalsAndNature = "Animals & Nature"
|
|
case foodAndDrink = "Food & Drink"
|
|
case smileysAndEmotions = "Smileys & Emotion"
|
|
|
|
public static var orderedCases: [EmojiCategory.Name] {
|
|
return EmojiCategory.Name.allCases.sorted(by: { $0.order < $1.order })
|
|
}
|
|
|
|
// Order that Apple uses in their emoji picker
|
|
public var order: Int {
|
|
switch self {
|
|
case .flags:
|
|
return 10
|
|
case .activities:
|
|
return 5
|
|
case .components:
|
|
return 8
|
|
case .objects:
|
|
return 7
|
|
case .travelAndPlaces:
|
|
return 6
|
|
case .symbols:
|
|
return 9
|
|
case .peopleAndBody:
|
|
return 2
|
|
case .animalsAndNature:
|
|
return 3
|
|
case .foodAndDrink:
|
|
return 4
|
|
case .smileysAndEmotions:
|
|
return 1
|
|
}
|
|
}
|
|
}
|
|
|
|
public let name: Name
|
|
public let values: [String]
|
|
|
|
public init(name: Name, values: [String]) {
|
|
self.name = name
|
|
self.values = values
|
|
}
|
|
}
|