fixes for null check / disposed widget errors

pull/1384/head
ggurdin 1 year ago
parent c9e023e684
commit 4f1445d975

@ -416,7 +416,7 @@ class ChatController extends State<ChatPageWithRoom>
onInsert: onInsert, onInsert: onInsert,
); );
// #Pangea // #Pangea
if (visibleEvents.length < 10) { if (visibleEvents.length < 10 && timeline != null) {
int prevNumEvents = timeline!.events.length; int prevNumEvents = timeline!.events.length;
await requestHistory(); await requestHistory();
int numRequests = 0; int numRequests = 0;

@ -130,19 +130,27 @@ class _SpaceViewState extends State<SpaceView> {
if (prevBatch != null) { if (prevBatch != null) {
response.rooms.insertAll(0, _lastResponse[activeSpaceId]?.rooms ?? []); response.rooms.insertAll(0, _lastResponse[activeSpaceId]?.rooms ?? []);
} }
setState(() { // #Pangea
_lastResponse[activeSpaceId] = response; if (mounted) {
}); // Pangea#
setState(() {
_lastResponse[activeSpaceId] = response;
});
}
return _lastResponse[activeSpaceId]!; return _lastResponse[activeSpaceId]!;
} catch (e) { } catch (e) {
setState(() { // #Pangea
error = e; if (mounted) {
}); // Pangea#
setState(() {
error = e;
});
}
rethrow; rethrow;
} finally { } finally {
// #Pangea // #Pangea
if (activeSpace != null) { if (activeSpace != null) {
await setChatCount( setChatCount(
activeSpace, activeSpace,
_lastResponse[activeSpaceId] ?? _lastResponse[activeSpaceId] ??
GetSpaceHierarchyResponse( GetSpaceHierarchyResponse(
@ -150,10 +158,12 @@ class _SpaceViewState extends State<SpaceView> {
), ),
); );
} }
// Pangea# if (mounted) {
setState(() { // Pangea#
loading = false; setState(() {
}); loading = false;
});
}
} }
} }
@ -499,6 +509,7 @@ class _SpaceViewState extends State<SpaceView> {
} }
bool includeSpaceChild(sc, matchingSpaceChildren) { bool includeSpaceChild(sc, matchingSpaceChildren) {
if (!mounted) return false;
final bool isAnalyticsRoom = sc.roomType == PangeaRoomTypes.analytics; final bool isAnalyticsRoom = sc.roomType == PangeaRoomTypes.analytics;
final bool isMember = [Membership.join, Membership.invite] final bool isMember = [Membership.join, Membership.invite]
.contains(Matrix.of(context).client.getRoomById(sc.roomId)?.membership); .contains(Matrix.of(context).client.getRoomById(sc.roomId)?.membership);

Loading…
Cancel
Save