Skip to content

Instantly share code, notes, and snippets.

@sendbird-community
sendbird-community / create_channel_view.dart
Last active April 28, 2021 21:46
Flutter | Create a list view with application users
Widget body(BuildContext context) {
return ListView.builder(
itemCount: _availableUsers.length,
itemBuilder: (context, index) {
User user = _availableUsers[index];
return CheckboxListTile(
title: Text(user.nickname.isEmpty ? user.userId : user.nickname,
style: TextStyle(color: Colors.black)),
controlAffinity: ListTileControlAffinity.platform,
value: _selectedUsers.contains(user),
@sendbird-community
sendbird-community / sample.dart
Created April 28, 2021 18:13
Flutter | Navigation bar with createChannels
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: navigationBar(),
body: body(context),
);
}
Widget navigationBar() {
return AppBar(
@sendbird-community
sendbird-community / channel_list_view.dart
Created April 28, 2021 18:24
Flutter | Initial channel list view
import 'package:flutter/material.dart';
import 'package:sendbird_sdk/sendbird_sdk.dart';
class ChannelListView extends StatefulWidget {
@override
_ChannelListViewState createState() => _ChannelListViewState();
}
class _ChannelListViewState extends State<ChannelListView>
with ChannelEventHandler {
@sendbird-community
sendbird-community / channel_list_view.dart
Created April 28, 2021 18:54
Flutter | Channel List future builder
Widget body(BuildContext context) {
return FutureBuilder(
future: getGroupChannels(),
builder: (context, snapshot) {
if (snapshot.hasData == false || snapshot.data == null) {
// Nothing to display yet - good place for a loading indicator
return Container();
}
List<GroupChannel> channels = snapshot.data;
return ListView.builder(
@sendbird-community
sendbird-community / channel_list_view.dart
Created April 28, 2021 18:56
Flutter | Channel list navigation bar
Widget navigationBar() {
return AppBar(
automaticallyImplyLeading: true,
backgroundColor: Colors.white,
centerTitle: true,
leading: BackButton(color: Theme.of(context).primaryColor),
title: Text(
'Channels',
style: TextStyle(color: Colors.black),
),
@sendbird-community
sendbird-community / sample.dart
Created April 28, 2021 18:59
Flutter | Scaffold build with appBar and body
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: navigationBar(),
body: body(context),
);
}
@sendbird-community
sendbird-community / login_view.dart
Created April 28, 2021 20:11
Flutter | Initial login view
import 'package:flutter/material.dart';
class LoginView extends StatefulWidget {
@override
LoginViewState createState() => LoginViewState();
}
class LoginViewState extends State<LoginView> {
@override
Widget build(BuildContext context) {
@sendbird-community
sendbird-community / main.dart
Created April 28, 2021 20:20
Flutter | sendbird_flutter_dashchat main
import 'package:flutter/material.dart';
import 'login_view.dart';
import 'channel_list_view.dart';
import 'create_channel_view.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@sendbird-community
sendbird-community / create_channel_view.dart
Created April 28, 2021 21:53
Flutter | Create channel view navigation bar
Widget navigationBar() {
return AppBar(
automaticallyImplyLeading: true,
backgroundColor: Colors.white,
centerTitle: true,
leading: BackButton(color: Theme.of(context).buttonColor),
title: Text(
'Select members',
style: TextStyle(color: Colors.black),
),
@sendbird-community
sendbird-community / channel_view.dart
Created April 28, 2021 23:00
Flutter | DashChat initial state
import 'package:flutter/material.dart';
import 'package:dash_chat/dash_chat.dart';
import 'package:sendbird_sdk/sendbird_sdk.dart';
class GroupChannelView extends StatefulWidget {
final GroupChannel groupChannel;
GroupChannelView({Key key, @required this.groupChannel}) : super(key: key);
@override
_GroupChannelViewState createState() => _GroupChannelViewState();