Remove flutter chat #26

Manually merged
Henry-Hiles merged 108 commits from remove-flutter-chat into main 2026-05-22 15:26:28 -04:00
4 changed files with 14 additions and 8 deletions
Showing only changes of commit 9303fee0de - Show all commits

fix memberships constantly reloading

Henry Hiles 2026-05-18 10:49:31 -04:00
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs

View file

@ -61,7 +61,7 @@ class RoomChatController extends AsyncNotifier<IList<Event>> {
loadOlder();
}
return room.timeline
return room.timeline.reversed
.map(
(timeline) => room.events.firstWhereOrNull(
(event) => event.rowId == timeline.eventRowId,

View file

@ -1,3 +1,4 @@
import "dart:convert";
import "package:fast_immutable_collections/fast_immutable_collections.dart";
import "package:flutter/material.dart";
import "package:nexus/models/event.dart";
@ -19,6 +20,6 @@ class EventText extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Text(event.eventId); // NEXT TODO
return Text(json.encode(event.toJson())); // NEXT TODO
}
}

View file

@ -2,6 +2,7 @@ import "package:flutter/material.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";
import "package:nexus/controllers/author_controller.dart";
import "package:nexus/helpers/extensions/better_when.dart";
import "package:nexus/helpers/extensions/get_localpart.dart";
import "package:nexus/helpers/extensions/show_user_popover.dart";
import "package:nexus/models/event.dart";
@ -29,7 +30,7 @@ class MessageDisplayname extends ConsumerWidget {
)
: null,
child: Text(
"${membership.displayName}${event.pmp == null ? "" : " (via ${event.sender})"}",
"${membership.displayName ?? event.sender.localpart}${event.pmp == null ? "" : " (via ${event.sender})"}",
style: style,
overflow: TextOverflow.ellipsis,
),

View file

@ -45,8 +45,11 @@ class RoomChat extends HookConsumerWidget {
final memberListOpened = useState<bool>(showMembersByDefault);
final listController = useRef(ListController());
final scrollController = useScrollController();
final scrollController = useScrollController(
onAttach: (position) => position.addListener(() {
// TODO: Do things on scroll to top or bottom
}),
);
final userId = ref.watch(ClientStateController.provider)?.userId;
final roomId = ref.watch(
@ -308,8 +311,12 @@ class RoomChat extends HookConsumerWidget {
child: switch (ref.watch(controllerProvider)) {
AsyncData(:final value) ||
AsyncLoading(:final value?) => CustomScrollView(
reverse: true,
controller: scrollController,
slivers: [
SliverPadding(
padding: EdgeInsetsGeometry.only(bottom: 64),
),
SuperSliverList.builder(
listController: listController.value,
itemCount: value.length,
@ -334,9 +341,6 @@ class RoomChat extends HookConsumerWidget {
isFlashing: false,
),
),
SliverPadding(
padding: EdgeInsetsGeometry.only(bottom: 64),
),
],
),
AsyncLoading() => Loading(),