@@ -89,7 +89,9 @@ class ChatController {
89
89
/// Used to add message in message list.
90
90
void addMessage (Message message) {
91
91
initialMessageList.add (message);
92
- messageStreamController.sink.add (initialMessageList);
92
+ if (! messageStreamController.isClosed) {
93
+ messageStreamController.sink.add (initialMessageList);
94
+ }
93
95
}
94
96
95
97
/// Used to add reply suggestions.
@@ -134,24 +136,31 @@ class ChatController {
134
136
messageType: message.messageType,
135
137
status: message.status,
136
138
);
137
- messageStreamController.sink.add (initialMessageList);
139
+ if (! messageStreamController.isClosed) {
140
+ messageStreamController.sink.add (initialMessageList);
141
+ }
138
142
}
139
143
140
144
/// Function to scroll to last messages in chat view
141
145
void scrollToLastMessage () => Timer (
142
146
const Duration (milliseconds: 300 ),
143
- () => scrollController.animateTo (
144
- scrollController.position.minScrollExtent,
145
- curve: Curves .easeIn,
146
- duration: const Duration (milliseconds: 300 ),
147
- ),
147
+ () {
148
+ if (! scrollController.hasClients) return ;
149
+ scrollController.animateTo (
150
+ scrollController.position.minScrollExtent,
151
+ curve: Curves .easeIn,
152
+ duration: const Duration (milliseconds: 300 ),
153
+ );
154
+ },
148
155
);
149
156
150
157
/// Function for loading data while pagination.
151
158
void loadMoreData (List <Message > messageList) {
152
159
/// Here, we have passed 0 index as we need to add data before first data
153
160
initialMessageList.insertAll (0 , messageList);
154
- messageStreamController.sink.add (initialMessageList);
161
+ if (! messageStreamController.isClosed) {
162
+ messageStreamController.sink.add (initialMessageList);
163
+ }
155
164
}
156
165
157
166
/// Function for getting ChatUser object from user id
0 commit comments