Files
flutter-samples/packages/imessage/lib/message_page.dart
T
Sahil Kumar 420028da2e feat(sample-app): Migrate sample app to v4
Signed-off-by: xsahil03x <xdsahil@gmail.com>
2022-03-21 16:12:28 +05:30

70 lines
1.9 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:imessage/message_list_view.dart';
import 'package:stream_chat_flutter_core/stream_chat_flutter_core.dart'
show
LazyLoadScrollView,
MessageListController,
MessageListCore,
StreamChannel,
StreamChatCore;
import 'package:imessage/channel_image.dart';
import 'package:imessage/channel_name_text.dart';
class MessagePage extends StatelessWidget {
const MessagePage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
final streamChannel = StreamChannel.of(context);
var messageListController = MessageListController();
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
middle: Column(
children: [
ChannelImage(
size: 32,
channel: streamChannel.channel,
),
ChannelNameText(
channel: streamChannel.channel,
size: 10,
fontWeight: FontWeight.w300,
),
],
),
),
child: StreamChatCore(
client: streamChannel.channel.client,
child: MessageListCore(
messageListController: messageListController,
loadingBuilder: (context) {
return const Center(
child: CupertinoActivityIndicator(),
);
},
errorBuilder: (context, err) {
return const Center(
child: Text('Error'),
);
},
emptyBuilder: (context) {
return const Center(
child: Text('Nothing here...'),
);
},
messageListBuilder: (context, messages) => LazyLoadScrollView(
onStartOfPage: () async {
await messageListController.paginateData!();
},
child: MessageListView(
messages: messages,
),
),
),
),
);
}
}