@@ -175,19 +175,19 @@ class MessageListPage extends StatefulWidget {
175
175
initNarrow: narrow, initAnchorMessageId: initAnchorMessageId));
176
176
}
177
177
178
- /// The "revealed" state of a message from a muted sender.
178
+ /// The "revealed" state of a message from a muted sender,
179
+ /// if there is a [MessageListPage] ancestor, else null.
179
180
///
180
181
/// This is updated via [MessageListPageState.revealMutedMessage]
181
182
/// and [MessageListPageState.unrevealMutedMessage] .
182
183
///
183
184
/// Uses the efficient [BuildContext.dependOnInheritedWidgetOfExactType] ,
184
185
/// so this is safe to call in a build method.
185
- static RevealedMutedMessagesState revealedMutedMessagesOf (BuildContext context) {
186
+ static RevealedMutedMessagesState ? maybeRevealedMutedMessagesOf (BuildContext context) {
186
187
final state =
187
188
context.dependOnInheritedWidgetOfExactType <_RevealedMutedMessagesProvider >()
188
189
? .state;
189
- assert (state != null , 'No MessageListPage ancestor' );
190
- return state! ;
190
+ return state;
191
191
}
192
192
193
193
/// The [MessageListPageState] above this context in the tree.
@@ -1893,8 +1893,12 @@ class _SenderRow extends StatelessWidget {
1893
1893
final message = this .message;
1894
1894
if (! store.isUserMuted (message.senderId)) return false ;
1895
1895
if (message is ! Message ) return false ; // i.e., if an outbox message
1896
- return ! MessageListPage .revealedMutedMessagesOf (context)
1897
- .isMutedMessageRevealed (message.id);
1896
+ final revealedMutedMessagesState =
1897
+ MessageListPage .maybeRevealedMutedMessagesOf (context);
1898
+ // The "unrevealed" state only exists in the message list,
1899
+ // and we're about to start showing a sender row outside the message list.
1900
+ if (revealedMutedMessagesState == null ) return false ;
1901
+ return ! revealedMutedMessagesState.isMutedMessageRevealed (message.id);
1898
1902
}
1899
1903
1900
1904
@override
@@ -2036,7 +2040,7 @@ class MessageWithPossibleSender extends StatelessWidget {
2036
2040
};
2037
2041
2038
2042
final showAsMuted = store.isUserMuted (message.senderId)
2039
- && ! MessageListPage .revealedMutedMessagesOf (context)
2043
+ && ! MessageListPage .maybeRevealedMutedMessagesOf (context)!
2040
2044
.isMutedMessageRevealed (message.id);
2041
2045
2042
2046
return GestureDetector (
0 commit comments