Skip to content

Instantly share code, notes, and snippets.

@deven98
Created April 21, 2022 19:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save deven98/ce007db57b41b38889eaaf16f2701580 to your computer and use it in GitHub Desktop.
Save deven98/ce007db57b41b38889eaaf16f2701580 to your computer and use it in GitHub Desktop.
import 'package:flutter/material.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
final client = StreamChatClient(
'YOUR_API_KEY',
logLevel: Level.INFO,
);
await client.connectUser(
User(id: 'YOUR_USER_ID'),
'''YOUR_USER_TOKEN''',
);
final channel = client.channel('messaging', id: 'YOUR_CHANNEL_ID');
await channel.watch();
runApp(
MyApp(
client: client,
channel: channel,
),
);
}
class MyApp extends StatelessWidget {
const MyApp({
Key? key,
required this.client,
required this.channel,
}) : super(key: key);
final StreamChatClient client;
/// Instance of the Channel
final Channel channel;
@override
Widget build(BuildContext context) => MaterialApp(
theme: ThemeData.light(),
darkTheme: ThemeData.dark(),
builder: (context, widget) => StreamChat(
client: client,
child: widget,
),
home: StreamChannel(
channel: channel,
child: const ChannelPage(),
),
);
}
class ChannelPage extends StatefulWidget {
const ChannelPage({
Key? key,
}) : super(key: key);
@override
State<ChannelPage> createState() => _ChannelPageState();
}
class _ChannelPageState extends State<ChannelPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: const ChannelHeader(),
body: Column(
children: <Widget>[
const Expanded(
child: MessageListView(),
),
MessageInput(
attachmentLimit: 3,
),
],
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment