Skip to content

Commit 9fab019

Browse files
committed
chore: pattern matching
1 parent dc6a91b commit 9fab019

2 files changed

Lines changed: 15 additions & 17 deletions

File tree

lib/app/features/chat/views/pages/chat_main_page/chat_main_page.dart

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,14 @@ import 'package:ion/app/features/chat/recent_chats/views/pages/recent_chats_empt
1313
import 'package:ion/app/features/chat/recent_chats/views/pages/recent_chats_timeline_page/recent_chats_timeline_page.dart';
1414
import 'package:ion/app/features/chat/views/pages/chat_main_page/components/chat_main_appbar/chat_main_appbar.dart';
1515
import 'package:ion/app/features/ion_connect/providers/device_keypair_dialog_notifier_provider.r.dart';
16-
import 'package:ion/app/features/tokenized_communities/views/creator_token_is_live_dialog.dart';
1716
import 'package:ion/app/hooks/use_on_init.dart';
1817
import 'package:ion/app/router/app_routes.gr.dart';
19-
import 'package:ion/app/services/ui_event_queue/ui_event_queue_notifier.r.dart';
2018

2119
class ChatMainPage extends HookConsumerWidget {
2220
const ChatMainPage({super.key});
2321

2422
@override
2523
Widget build(BuildContext context, WidgetRef ref) {
26-
useOnInit(() {
27-
ref.read(uiEventQueueNotifierProvider.notifier).emit(const CreatorTokenIsLiveDialogEvent());
28-
});
2924
_useCheckDeviceKeypairDialog(ref);
3025

3126
final scrollController = useScrollController();

lib/app/features/tokenized_communities/providers/community_token_definition_handler.r.dart

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,15 @@
33
import 'dart:async';
44
import 'dart:ui';
55

6-
import 'package:collection/collection.dart';
76
import 'package:hooks_riverpod/hooks_riverpod.dart';
87
import 'package:ion/app/features/auth/providers/auth_provider.m.dart';
9-
import 'package:ion/app/features/chat/community/models/entities/tags/pubkey_tag.f.dart';
108
import 'package:ion/app/features/ion_connect/ion_connect.dart';
9+
import 'package:ion/app/features/ion_connect/model/event_reference.f.dart';
1110
import 'package:ion/app/features/ion_connect/model/global_subscription_event_handler.dart';
12-
import 'package:ion/app/features/ion_connect/model/related_hashtag.f.dart';
1311
import 'package:ion/app/features/ion_connect/providers/ion_connect_cache.r.dart';
1412
import 'package:ion/app/features/tokenized_communities/models/entities/community_token_definition.f.dart';
15-
import 'package:ion/app/features/tokenized_communities/models/entities/constants.dart';
1613
import 'package:ion/app/features/tokenized_communities/views/creator_token_is_live_dialog.dart';
14+
import 'package:ion/app/features/user/model/user_metadata.f.dart';
1715
import 'package:ion/app/services/storage/local_storage.r.dart';
1816
import 'package:ion/app/services/ui_event_queue/ui_event_queue_notifier.r.dart';
1917
import 'package:riverpod_annotation/riverpod_annotation.dart';
@@ -42,19 +40,24 @@ class CommunityTokenDefinitionHandler extends GlobalSubscriptionEventHandler {
4240

4341
@override
4442
Future<void> handle(EventMessage eventMessage) async {
45-
final isFirstBuyEvent = currentUserMasterPubkey != null &&
46-
eventMessage.tags
47-
.any((tag) => tag.equals([RelatedHashtag.tagName, communityTokenActionTopic])) &&
48-
eventMessage.tags.any((tag) => tag.equals([PubkeyTag.tagName, currentUserMasterPubkey!]));
49-
50-
final isShown = localStorage.getBool(localStorageKey) ?? false;
43+
final entity = CommunityTokenDefinitionEntity.fromEventMessage(eventMessage);
5144

52-
if (!isShown && isFirstBuyEvent) {
45+
if (entity
46+
case CommunityTokenDefinitionEntity(
47+
data: CommunityTokenDefinitionIon(
48+
eventReference: ReplaceableEventReference(
49+
masterPubkey: final originalEventMasterPubkey,
50+
kind: UserMetadataEntity.kind
51+
),
52+
type: CommunityTokenDefinitionIonType.firstBuyAction
53+
)
54+
)
55+
when originalEventMasterPubkey == currentUserMasterPubkey &&
56+
(localStorage.getBool(localStorageKey) ?? false)) {
5357
uiEventQueueCallback();
5458
await localStorage.setBool(key: localStorageKey, value: true);
5559
}
5660

57-
final entity = CommunityTokenDefinitionEntity.fromEventMessage(eventMessage);
5861
await ionConnectCache.cache(entity);
5962
}
6063
}

0 commit comments

Comments
 (0)