filter shown recent emoji to valid emoji

This commit is contained in:
Henry Hiles 2026-10-04 13:01:06 -04:00
commit a46d93dfc5
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
3 changed files with 21 additions and 5 deletions

View file

@ -1,17 +1,30 @@
import "package:collection/collection.dart";
import "package:fast_immutable_collections/fast_immutable_collections.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";
import "package:material_emoji_picker/material_emoji_picker.dart";
import "package:nexus/controllers/account_data.dart";
import "package:nexus/controllers/client.dart";
import "package:nexus/models/account_data.dart";
class RecentEmojiController extends Notifier<IList<RecentEmoji>> {
@override
IList<RecentEmoji> build() => ref.watch(
AccountDataController.provider.select(
(value) => value.recentEmoji.recentEmoji,
),
);
IList<RecentEmoji> build() {
final Set<String> emoji = ref
.watch(EmojiController.provider)
.requireValue
.map((element) => element.emojis)
.flattened
.map((e) => e.value)
.toSet();
final IList<RecentEmoji> recents = ref.watch(
AccountDataController.provider.select(
(value) => value.recentEmoji.recentEmoji,
),
);
return .new(recents.where((recent) => emoji.contains(recent.emoji)));
}
Future<void> add(String emoji) => ref
.watch(ClientController.provider.notifier)