aves/lib/utils/emoji_utils.dart
Thibault Deckers ad3edf4458 refactor
2023-03-24 18:26:05 +01:00

22 lines
862 B
Dart

import 'package:aves/ref/unicode.dart';
class EmojiUtils {
static const _countryCodeToFlagDiff = UniCodes.regionalIndicatorSymbolLetterA - UniCodes.latinCapitalLetterA;
static const _stateCodeToFlagDiff = UniCodes.tagLatinSmallLetterA - UniCodes.latinCapitalLetterA;
static const _subFlagStart = UniCodes.wavingBlackFlag;
static const _subFlagEnd = UniCodes.cancelTag;
static String? countryCodeToFlag(String? code) {
if (code == null || code.length != 2) return null;
return String.fromCharCodes(code.toUpperCase().codeUnits.map((letter) => letter += _countryCodeToFlagDiff));
}
static String? stateCodeToFlag(String? code) {
if (code == null) return null;
return String.fromCharCodes([
_subFlagStart,
...code.toUpperCase().codeUnits.map((letter) => letter += _stateCodeToFlagDiff),
_subFlagEnd,
]);
}
}