filter shown recent emoji to valid emoji
This commit is contained in:
parent
294723fdfb
commit
a46d93dfc5
3 changed files with 21 additions and 5 deletions
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
|
|
@ -10,6 +10,7 @@
|
|||
"msgtype",
|
||||
"muks",
|
||||
"prefs",
|
||||
"recents",
|
||||
"unban",
|
||||
"unifiedpush",
|
||||
"unredact",
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import "package:dynamic_color/dynamic_color.dart";
|
|||
import "package:flutter/foundation.dart";
|
||||
import "package:flutter/services.dart";
|
||||
import "package:flutter_riverpod/flutter_riverpod.dart";
|
||||
import "package:material_emoji_picker/material_emoji_picker.dart";
|
||||
import "package:media_kit/media_kit.dart";
|
||||
import "package:nexus/controllers/client_state.dart";
|
||||
import "package:nexus/controllers/gomuks_listener.dart";
|
||||
|
|
@ -154,6 +155,7 @@ class const App({super.key}) extends StatelessWidget {
|
|||
MemberListOpenedController.provider,
|
||||
KeyController.provider(KeyController.roomKey),
|
||||
KeyController.provider(KeyController.spaceKey),
|
||||
EmojiController.provider,
|
||||
]),
|
||||
),
|
||||
)) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue