Remove flutter chat #26
1 changed files with 35 additions and 29 deletions
fix constant refreshing
commit
91d573e487
|
|
@ -23,8 +23,10 @@ import "package:nexus/widgets/chat_page/event_text.dart";
|
||||||
import "package:nexus/widgets/chat_page/member_list.dart";
|
import "package:nexus/widgets/chat_page/member_list.dart";
|
||||||
import "package:nexus/widgets/chat_page/room_appbar.dart";
|
import "package:nexus/widgets/chat_page/room_appbar.dart";
|
||||||
import "package:nexus/widgets/chat_page/wrappers/message_wrapper.dart";
|
import "package:nexus/widgets/chat_page/wrappers/message_wrapper.dart";
|
||||||
|
import "package:nexus/widgets/error_dialog.dart";
|
||||||
import "package:nexus/widgets/form_text_input.dart";
|
import "package:nexus/widgets/form_text_input.dart";
|
||||||
import "package:nexus/main.dart";
|
import "package:nexus/main.dart";
|
||||||
|
import "package:nexus/widgets/loading.dart";
|
||||||
import "package:super_sliver_list/super_sliver_list.dart";
|
import "package:super_sliver_list/super_sliver_list.dart";
|
||||||
|
|
||||||
class RoomChat extends HookConsumerWidget {
|
class RoomChat extends HookConsumerWidget {
|
||||||
|
|
@ -287,6 +289,30 @@ class RoomChat extends HookConsumerWidget {
|
||||||
].toIList();
|
].toIList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SuperListView messageView(IList<Event> events) => SuperListView.builder(
|
||||||
|
controller: scrollController,
|
||||||
|
listController: listController.value,
|
||||||
|
itemCount: events.length,
|
||||||
|
itemBuilder: (_, index) => MessageWrapper(
|
||||||
|
events[index],
|
||||||
|
EventText(
|
||||||
|
events[index],
|
||||||
|
onTapReply: () => listController.value.animateToItem(
|
||||||
|
index: index,
|
||||||
|
scrollController: scrollController,
|
||||||
|
alignment: 0.5,
|
||||||
|
duration: (_) => Duration(milliseconds: 250),
|
||||||
|
curve: (_) => Curves.easeInOut,
|
||||||
|
),
|
||||||
|
getEventOptions: getEventOptions,
|
||||||
|
),
|
||||||
|
// TODO: Reimplement grouping
|
||||||
|
isGrouped: false,
|
||||||
|
// TODO: Reimplement flashing
|
||||||
|
isFlashing: false,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: RoomAppbar(
|
appBar: RoomAppbar(
|
||||||
isDesktop: isDesktop,
|
isDesktop: isDesktop,
|
||||||
|
|
@ -302,35 +328,15 @@ class RoomChat extends HookConsumerWidget {
|
||||||
child: Stack(
|
child: Stack(
|
||||||
children: [
|
children: [
|
||||||
Positioned.fill(
|
Positioned.fill(
|
||||||
child: ref
|
child: switch (ref.watch(controllerProvider)) {
|
||||||
.watch(controllerProvider)
|
AsyncData(:final value) => messageView(value),
|
||||||
.betterWhen(
|
AsyncLoading(:final value) =>
|
||||||
data: (events) => SuperListView.builder(
|
value == null ? Loading() : messageView(value),
|
||||||
controller: scrollController,
|
AsyncError(:final error, :final stackTrace) => ErrorDialog(
|
||||||
listController: listController.value,
|
error,
|
||||||
itemCount: events.length,
|
stackTrace,
|
||||||
itemBuilder: (_, index) => MessageWrapper(
|
),
|
||||||
events[index],
|
},
|
||||||
EventText(
|
|
||||||
events[index],
|
|
||||||
onTapReply: () =>
|
|
||||||
listController.value.animateToItem(
|
|
||||||
index: index,
|
|
||||||
scrollController: scrollController,
|
|
||||||
alignment: 0.5,
|
|
||||||
duration: (_) =>
|
|
||||||
Duration(milliseconds: 250),
|
|
||||||
curve: (_) => Curves.easeInOut,
|
|
||||||
),
|
|
||||||
getEventOptions: getEventOptions,
|
|
||||||
),
|
|
||||||
// TODO: Reimplement grouping
|
|
||||||
isGrouped: false,
|
|
||||||
// TODO: Reimplement flashing
|
|
||||||
isFlashing: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
ChatBox(
|
ChatBox(
|
||||||
node: composerNode,
|
node: composerNode,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue