mirror of
https://github.com/element-hq/element-x-ios.git
synced 2025-03-11 13:59:13 +00:00

* Switch license file to AGPL * Update file copyright headers * Update the default project file header
33 lines
916 B
Swift
33 lines
916 B
Swift
//
|
|
// Copyright 2023, 2024 New Vector Ltd.
|
|
//
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
// Please see LICENSE in the repository root for full details.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
// Taken from https://gist.github.com/krummler/879e1ce942893db3104783d1d0e67b34
|
|
extension Character {
|
|
/// A simple emoji is one scalar and presented to the user as an Emoji
|
|
var isSimpleEmoji: Bool {
|
|
unicodeScalars.count == 1 && unicodeScalars.first?.properties.isEmojiPresentation ?? false
|
|
}
|
|
|
|
/// Checks if the scalars will be merged into and emoji
|
|
var isCombinedIntoEmoji: Bool {
|
|
unicodeScalars.count > 1 &&
|
|
unicodeScalars.contains { $0.properties.isJoinControl || $0.properties.isVariationSelector }
|
|
}
|
|
|
|
var isEmoji: Bool {
|
|
isSimpleEmoji || isCombinedIntoEmoji
|
|
}
|
|
}
|
|
|
|
extension String {
|
|
var containsOnlyEmoji: Bool {
|
|
!isEmpty && !contains { !$0.isEmoji }
|
|
}
|
|
}
|