Signed-off-by: Sahil Kumar <[email protected]>
This commit is contained in:
Sahil Kumar
2020-12-16 16:56:09 +05:30
parent adefbc1e2d
commit 7495acee3e
11 changed files with 504 additions and 323 deletions
+2 -2
View File
@@ -13,13 +13,13 @@ import 'routes/routes.dart';
const kStreamApiKey = 'STREAM_API_KEY';
const kStreamUserId = 'STREAM_USER_ID';
const kStreamToken = 'STREAM_TOKEN';
const kDefaultStreamApiKey = 'uj7qrdbfrzvg';
const kDefaultStreamApiKey = 's2dxdhpxd94g';
class ChooseUserPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final users = <String, User>{
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoidmlzaGFsIn0.lCz-idDgaZ-xszjnuB_hTfeIOhTFmJtTB2fEjhwrcCI':
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoidmlzaGFsIn0._JHWzo92fpTWZMZriJHXqOng6ShYVmWrdaIaPwEPKBg':
User(
id: 'vishal',
extraData: {
+1 -1
View File
@@ -133,7 +133,7 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
context,
Routes.CHANNEL_PAGE,
ModalRoute.withName(Routes.HOME),
arguments: channel,
arguments: ChannelPageArgs(channel: channel),
);
},
),
+11 -36
View File
@@ -337,40 +337,14 @@ class _ChannelListPageState extends State<ChannelListPage> {
final message = messageResponse.message;
final channel = Channel.fromState(
client,
ChannelState(
channel: messageResponse.channel,
messages: [message],
),
ChannelState(channel: messageResponse.channel),
);
await Future.wait([
channel.query(
messagesPagination: PaginationParams(
lessThan: message.id,
limit: 25,
),
preferOffline: true,
),
channel.query(
messagesPagination: PaginationParams(
greaterThan: message.id,
limit: 25,
),
preferOffline: true,
),
]);
final messages = channel.state.messages;
final totalMessages = messages.length;
final messageIndex = messages
.indexWhere((e) => e.id == message.id);
final initialIndex = totalMessages - messageIndex;
final bool isFirstMessage = messageIndex == 0;
Navigator.pushNamed(
context,
Routes.CHANNEL_PAGE,
arguments: ChannelPageArgs(
channel: channel,
initialScrollIndex: initialIndex,
initialAlignment: isFirstMessage ? 0 : 0.5,
initialMessage: message,
),
);
},
@@ -406,24 +380,24 @@ class _ChannelListPageState extends State<ChannelListPage> {
class ChannelPageArgs {
final Channel channel;
final int initialScrollIndex;
final double initialAlignment;
final Message initialMessage;
const ChannelPageArgs({
this.channel,
this.initialScrollIndex = 0,
this.initialAlignment = 0,
this.initialMessage,
});
}
class ChannelPage extends StatelessWidget {
final int initialScrollIndex;
final double initialAlignment;
final bool highlightInitialMessage;
const ChannelPage({
Key key,
this.initialScrollIndex = 0,
this.initialAlignment = 0,
this.initialScrollIndex,
this.initialAlignment,
this.highlightInitialMessage = false,
}) : super(key: key);
@override
@@ -441,6 +415,7 @@ class ChannelPage extends StatelessWidget {
MessageListView(
initialScrollIndex: initialScrollIndex,
initialAlignment: initialAlignment,
highlightInitialMessage: highlightInitialMessage,
threadBuilder: (_, parentMessage) {
return ThreadPage(
parent: parentMessage,
@@ -481,8 +456,8 @@ class ThreadPage extends StatelessWidget {
ThreadPage({
Key key,
this.parent,
this.initialScrollIndex = 0,
this.initialAlignment = 0,
this.initialScrollIndex,
this.initialAlignment,
}) : super(key: key);
@override
+1 -1
View File
@@ -339,7 +339,7 @@ class _NewChatScreenState extends State<NewChatScreen> {
context,
Routes.CHANNEL_PAGE,
ModalRoute.withName(Routes.HOME),
arguments: channel,
arguments: ChannelPageArgs(channel: channel),
);
}
}
+2 -2
View File
@@ -37,9 +37,9 @@ class AppRoutes {
final arg = args as ChannelPageArgs;
return StreamChannel(
channel: arg.channel,
initialMessageId: arg.initialMessage?.id,
child: ChannelPage(
initialScrollIndex: arg.initialScrollIndex,
initialAlignment: arg.initialAlignment,
highlightInitialMessage: arg.initialMessage != null,
),
);
});