This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'dart:io'; | |
import 'package:flutter/cupertino.dart'; | |
import 'package:image_picker/image_picker.dart'; | |
import 'package:stream_chat_flutter/stream_chat_flutter.dart' | |
show Attachment, AttachmentFile, Message, MultipartFile, StreamChannel; | |
class MessageInput extends StatefulWidget { | |
const MessageInput({ | |
Key key, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class ChatBubble extends CustomPainter { | |
final Color color; | |
final Alignment alignment; | |
ChatBubble({ | |
@required this.color, | |
this.alignment, | |
}); | |
final _radius = 10.0; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:cached_network_image/cached_network_image.dart'; | |
import 'package:flutter/cupertino.dart'; | |
import 'package:imessage/cutom_painter.dart'; | |
import 'package:stream_chat_flutter/stream_chat_flutter.dart' | |
show Message; | |
class MessageWidget extends StatelessWidget { | |
final Alignment alignment; | |
final Message message; | |
final Color color; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:collection/collection.dart'; | |
import 'package:flutter/cupertino.dart'; | |
import 'package:imessage/message_header.dart'; | |
import 'package:imessage/message_input.dart'; | |
import 'package:imessage/message_widget.dart'; | |
import 'package:stream_chat_flutter/stream_chat_flutter.dart' | |
show Message, StreamChatCore; | |
class MessageListView extends StatelessWidget { | |
const MessageListView({Key key, this.messages}) : super(key: key); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:collection/collection.dart'; | |
final entries = groupBy(messages.reversed, | |
(Message message) => message.createdAt.toString().substring(0, 10)) | |
.entries | |
.toList(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:imessage/channel_image.dart'; | |
import 'package:imessage/channel_name_text.dart'; | |
import 'package:imessage/message_list_view.dart'; | |
class MessagePage extends StatelessWidget { | |
@override | |
Widget build(BuildContext context) { | |
return CupertinoPageScaffold( | |
navigationBar: CupertinoNavigationBar( | |
middle: Column( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class ChatLoader extends StatelessWidget { | |
const ChatLoader({ | |
Key key, | |
}) : super(key: key); | |
@override | |
Widget build(BuildContext context) { | |
return CupertinoPageScaffold( | |
child: CustomScrollView( | |
slivers: [ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/cupertino.dart'; | |
import 'package:imessage/channel_preview.dart'; | |
import 'package:imessage/message_page.dart'; | |
import 'package:animations/animations.dart'; | |
import 'package:stream_chat_flutter/stream_chat_flutter.dart' | |
show Channel, StreamChannel; | |
class ChannelListView extends StatelessWidget { | |
const ChannelListView({Key key, @required this.channels}) : super(key: key); | |
final List<Channel> channels; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:intl/intl.dart'; | |
String formatDate(DateTime date) { // 21/01/20 3:31pm | |
final dateFormat = DateFormat.yMd().add_jm(); | |
return dateFormat.format(date); | |
} | |
String formatDateSameWeek(DateTime date) { | |
DateFormat dateFormat; | |
if (date.day == DateTime.now().day) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/cupertino.dart'; | |
import 'package:imessage/channel_image.dart'; | |
import 'package:imessage/channel_name_text.dart'; | |
import 'package:imessage/utils.dart'; | |
import 'package:stream_chat_flutter/stream_chat_flutter.dart' show Channel; | |
import 'utils.dart'; | |
class ChannelPreview extends StatelessWidget { | |
final VoidCallback onTap; // onTap is a callback in our widget that we'll be used later on for navigation purposes |