lib/search/kanji: add codepoints

This commit is contained in:
2025-05-19 16:40:33 +02:00
parent 135d81db80
commit 60d2017473
2 changed files with 13 additions and 0 deletions

View File

@@ -43,6 +43,10 @@ class KanjiSearchResult extends Equatable {
/// Note that this list might not always be complete.
final List<String> parts;
/// Ids for the kanji's symbol in different encoding systems
/// (e.g. JIS213, JIS208, UCS, etc.)
final Map<String, String> codepoints;
const KanjiSearchResult({
required this.kanji,
this.taughtIn,
@@ -56,6 +60,7 @@ class KanjiSearchResult extends Equatable {
// this.onyomiExamples = const [],
this.radical,
this.parts = const [],
required this.codepoints,
});
@override
@@ -91,6 +96,7 @@ class KanjiSearchResult extends Equatable {
// 'strokeOrderSvgUri': strokeOrderSvgUri,
// 'strokeOrderGifUri': strokeOrderGifUri,
// 'uri': uri,
'codepoints': codepoints,
};
factory KanjiSearchResult.fromJson(Map<String, dynamic> json) {
@@ -113,6 +119,9 @@ class KanjiSearchResult extends Equatable {
? KanjiSearchRadical.fromJson(json['radical'])
: null,
parts: (json['parts'] as List).map((e) => e as String).toList(),
codepoints: (json['codepoints'] as Map<String, dynamic>).map(
(key, value) => MapEntry(key, value as String),
),
);
}
}

View File

@@ -155,5 +155,9 @@ Future<KanjiSearchResult?> searchKanjiWithDbConnection(
kunyomi: kunyomis.map((item) => item['yomi'] as String).toList(),
parts: parts.map((item) => item['radical'] as String).toList(),
onyomi: onyomis.map((item) => item['yomi'] as String).toList(),
codepoints: {
for (final codepoint in codepoints)
codepoint['type'] as String: codepoint['codepoint'] as String,
},
);
}