1
+ >>>
2
+ class C {
3
+ late final Command<MessageUpdateRequest, void> addNewMessageCommand =
4
+ Command.createAsyncNoResult<MessageUpdateRequest>((newMessage) async {
5
+ final chatApi = ChatsApi(di<ApiClient>());
6
+ if (_target == null) {
7
+ assert(_chatPartner != null);
8
+ _target = await chatApi.sendMessageToUserAndCreateChatIfNeeded(
9
+ _chatPartner!.id.toString(),
10
+ messageUpdateRequest: newMessage);
11
+ } else {
12
+ await chatApi.addMessageToChat(chatId, messageUpdateRequest: newMessage);
13
+ }
14
+ notifyListeners();
15
+ },
16
+ errorFilter: ApiErrorFilter(
17
+ (error) => error.code == 412 || error.code == 403,
18
+ ErrorReaction.localHandler,
19
+ ),debugName: cmdAddMessage)
20
+ ..errors.listen((ex,_) {
21
+ final apiError = ex!.error as ApiException;
22
+
23
+ /// TODO adjust to chatmessagesource
24
+ items.removeLast();
25
+ lastMessage = null;
26
+ refreshItemCOunt();
27
+ if (apiError.message?.contains('limited to 15 people') ?? false) {
28
+ di<InteractionManager>().pushToastWithBuilder(
29
+ (context) => ToastConfig(
30
+ context.l10n.messagingLimitPerDay,
31
+ ),
32
+ );
33
+ } else if (apiError.message?.contains('Permission denied') ?? false) {
34
+ di<InteractionManager>().pushToastWithBuilder(
35
+ (context) => ToastConfig(
36
+ context.l10n.defaultMessagingRestriction,
37
+ ),
38
+ );
39
+ }
40
+ });
41
+ }
42
+ <<<
43
+ class C {
44
+ late final Command<MessageUpdateRequest, void> addNewMessageCommand =
45
+ Command.createAsyncNoResult<MessageUpdateRequest>(
46
+ (newMessage) async {
47
+ final chatApi = ChatsApi(di<ApiClient>());
48
+ if (_target == null) {
49
+ assert(_chatPartner != null);
50
+ _target =
51
+ await chatApi.sendMessageToUserAndCreateChatIfNeeded(
52
+ _chatPartner!.id.toString(),
53
+ messageUpdateRequest: newMessage,
54
+ );
55
+ } else {
56
+ await chatApi.addMessageToChat(
57
+ chatId,
58
+ messageUpdateRequest: newMessage,
59
+ );
60
+ }
61
+ notifyListeners();
62
+ },
63
+ errorFilter: ApiErrorFilter(
64
+ (error) => error.code == 412 || error.code == 403,
65
+ ErrorReaction.localHandler,
66
+ ),
67
+ debugName: cmdAddMessage,
68
+ )
69
+ ..errors.listen((ex, _) {
70
+ final apiError = ex!.error as ApiException;
71
+
72
+ /// TODO adjust to chatmessagesource
73
+ items.removeLast();
74
+ lastMessage = null;
75
+ refreshItemCOunt();
76
+ if (apiError.message?.contains('limited to 15 people') ?? false) {
77
+ di<InteractionManager>().pushToastWithBuilder(
78
+ (context) => ToastConfig(context.l10n.messagingLimitPerDay),
79
+ );
80
+ } else if (apiError.message?.contains('Permission denied') ?? false) {
81
+ di<InteractionManager>().pushToastWithBuilder(
82
+ (context) => ToastConfig(
83
+ context.l10n.defaultMessagingRestriction,
84
+ ),
85
+ );
86
+ }
87
+ });
88
+ }
89
+ >>>
90
+ class C {
91
+ late final Command<MessageUpdateRequest, void> addNewMessageCommand =
92
+ Command.createAsyncNoResult<MessageUpdateRequest>(_addNewMessage,
93
+ errorFilter: ApiErrorFilter(
94
+ (error) => error.code == 412 || error.code == 403,
95
+ ErrorReaction.localHandler,
96
+ ),debugName: cmdAddMessage)
97
+ ..errors.listen((ex,_) {
98
+ final apiError = ex!.error as ApiException;
99
+
100
+ /// TODO adjust to chatmessagesource
101
+ items.removeLast();
102
+ lastMessage = null;
103
+ refreshItemCOunt();
104
+ if (apiError.message?.contains('limited to 15 people') ?? false) {
105
+ di<InteractionManager>().pushToastWithBuilder(
106
+ (context) => ToastConfig(
107
+ context.l10n.messagingLimitPerDay,
108
+ ),
109
+ );
110
+ } else if (apiError.message?.contains('Permission denied') ?? false) {
111
+ di<InteractionManager>().pushToastWithBuilder(
112
+ (context) => ToastConfig(
113
+ context.l10n.defaultMessagingRestriction,
114
+ ),
115
+ );
116
+ }
117
+ });
118
+ }
119
+ <<<
120
+ class C {
121
+ late final Command<MessageUpdateRequest, void> addNewMessageCommand =
122
+ Command.createAsyncNoResult<MessageUpdateRequest>(
123
+ _addNewMessage,
124
+ errorFilter: ApiErrorFilter(
125
+ (error) => error.code == 412 || error.code == 403,
126
+ ErrorReaction.localHandler,
127
+ ),
128
+ debugName: cmdAddMessage,
129
+ )
130
+ ..errors.listen((ex, _) {
131
+ final apiError = ex!.error as ApiException;
132
+
133
+ /// TODO adjust to chatmessagesource
134
+ items.removeLast();
135
+ lastMessage = null;
136
+ refreshItemCOunt();
137
+ if (apiError.message?.contains('limited to 15 people') ?? false) {
138
+ di<InteractionManager>().pushToastWithBuilder(
139
+ (context) => ToastConfig(context.l10n.messagingLimitPerDay),
140
+ );
141
+ } else if (apiError.message?.contains('Permission denied') ?? false) {
142
+ di<InteractionManager>().pushToastWithBuilder(
143
+ (context) => ToastConfig(
144
+ context.l10n.defaultMessagingRestriction,
145
+ ),
146
+ );
147
+ }
148
+ });
149
+ }
0 commit comments