From d3655e339544a558e3e99733a5b0ceba8fdf6048 Mon Sep 17 00:00:00 2001 From: mike doornenbal Date: Tue, 23 Jan 2024 16:30:19 +0100 Subject: [PATCH] feat: example --- README.md | 8 +- .../example/.gitignore | 17 +- .../example/analysis_options.yaml | 3 +- packages/flutter_chat/example/lib/main.dart | 75 +++++++++ packages/flutter_chat/example/pubspec.yaml | 26 +++ packages/flutter_chat_view/example/README.md | 0 .../flutter_chat_view/example/lib/main.dart | 151 ------------------ .../flutter_chat_view/example/pubspec.yaml | 26 --- .../example/test/widget_test.dart | 14 -- .../ios/Flutter/Generated.xcconfig | 6 +- .../ios/Flutter/flutter_export_environment.sh | 6 +- .../lib/src/screens/chat_profile_screen.dart | 3 + 12 files changed, 116 insertions(+), 219 deletions(-) rename packages/{flutter_chat_view => flutter_chat}/example/.gitignore (80%) rename packages/{flutter_chat_view => flutter_chat}/example/analysis_options.yaml (93%) create mode 100644 packages/flutter_chat/example/lib/main.dart create mode 100644 packages/flutter_chat/example/pubspec.yaml delete mode 100644 packages/flutter_chat_view/example/README.md delete mode 100644 packages/flutter_chat_view/example/lib/main.dart delete mode 100644 packages/flutter_chat_view/example/pubspec.yaml delete mode 100644 packages/flutter_chat_view/example/test/widget_test.dart diff --git a/README.md b/README.md index 3caef3a..a7cdef2 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,8 @@ To use this package, add flutter_chat as a dependency in your pubspec.yaml file: ``` flutter_chat: git: - url: https://github.com/Iconica-Development/flutter_chat - path: packages/flutter_chat + url: https://github.com/Iconica-Development/flutter_chat + path: packages/flutter_chat ``` If you are going to use Firebase as the back-end of the Chat, you should also add the following package as a dependency to your pubspec.yaml file: @@ -23,8 +23,8 @@ If you are going to use Firebase as the back-end of the Chat, you should also ad ``` flutter_chat_firebase: git: - url: https://github.com/Iconica-Development/flutter_chat - path: packages/flutter_chat_firebase + url: https://github.com/Iconica-Development/flutter_chat + path: packages/flutter_chat_firebase ``` Create a Firebase project for your application and add firebase firestore and storage. diff --git a/packages/flutter_chat_view/example/.gitignore b/packages/flutter_chat/example/.gitignore similarity index 80% rename from packages/flutter_chat_view/example/.gitignore rename to packages/flutter_chat/example/.gitignore index 7beccd9..29a3a50 100644 --- a/packages/flutter_chat_view/example/.gitignore +++ b/packages/flutter_chat/example/.gitignore @@ -1,7 +1,3 @@ -# SPDX-FileCopyrightText: 2022 Iconica -# -# SPDX-License-Identifier: GPL-3.0-or-later - # Miscellaneous *.class *.log @@ -23,7 +19,7 @@ migrate_working_dir/ # The .vscode folder contains launch configuration and tasks you configure in # VS Code which you may wish to be included in version control, so this line # is commented out by default. -.vscode/ +#.vscode/ # Flutter/Dart/Pub related **/doc/api/ @@ -31,7 +27,6 @@ migrate_working_dir/ .dart_tool/ .flutter-plugins .flutter-plugins-dependencies -.packages .pub-cache/ .pub/ /build/ @@ -46,13 +41,3 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release - -android -ios -web -windows -macos -linux -.metadata - -pubspec.lock diff --git a/packages/flutter_chat_view/example/analysis_options.yaml b/packages/flutter_chat/example/analysis_options.yaml similarity index 93% rename from packages/flutter_chat_view/example/analysis_options.yaml rename to packages/flutter_chat/example/analysis_options.yaml index 61b6c4d..0d29021 100644 --- a/packages/flutter_chat_view/example/analysis_options.yaml +++ b/packages/flutter_chat/example/analysis_options.yaml @@ -13,8 +13,7 @@ linter: # The lint rules applied to this project can be customized in the # section below to disable rules from the `package:flutter_lints/flutter.yaml` # included above or to enable additional rules. A list of all available lints - # and their documentation is published at - # https://dart-lang.github.io/linter/lints/index.html. + # and their documentation is published at https://dart.dev/lints. # # Instead of disabling a lint rule for the entire project in the # section below, it can also be suppressed for a single line of code diff --git a/packages/flutter_chat/example/lib/main.dart b/packages/flutter_chat/example/lib/main.dart new file mode 100644 index 0000000..bc4bcae --- /dev/null +++ b/packages/flutter_chat/example/lib/main.dart @@ -0,0 +1,75 @@ +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:firebase_core/firebase_core.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_chat/flutter_chat.dart'; +import 'package:flutter_chat_firebase/flutter_chat_firebase.dart'; + +void main(List args) async { + WidgetsFlutterBinding.ensureInitialized(); + + await Firebase.initializeApp( + // Set your firebase app here + // options: FirebaseOptions(apiKey: 'apiKey', appId: 'appId', messagingSenderId: 'messagingSenderId', projectId: 'projectId') + ); + + runApp(const App()); +} + +class App extends StatelessWidget { + const App({super.key}); + + @override + Widget build(BuildContext context) { + return const MaterialApp( + home: Home(), + ); + } +} + +class Home extends StatefulWidget { + const Home({super.key}); + + @override + State createState() => _HomeState(); +} + +class _HomeState extends State { + @override + void initState() { + FirebaseAuth.instance.signInWithEmailAndPassword( + email: 'your email', password: 'your password'); + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: SafeArea( + child: Stack( + children: [ + Align( + alignment: Alignment.bottomRight, + child: ChatEntryWidget( + chatService: FirebaseChatService(), + onTap: _onTap, + ), + ), + ], + ), + ), + ); + } + + void _onTap() { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => chatNavigatorUserStory( + ChatUserStoryConfiguration( + chatService: FirebaseChatService(), + chatOptionsBuilder: (ctx) => const ChatOptions(), + ), + context), + ), + ); + } +} diff --git a/packages/flutter_chat/example/pubspec.yaml b/packages/flutter_chat/example/pubspec.yaml new file mode 100644 index 0000000..61bf253 --- /dev/null +++ b/packages/flutter_chat/example/pubspec.yaml @@ -0,0 +1,26 @@ +name: example +description: "A new Flutter project." +publish_to: "none" +version: 1.0.0+1 + +environment: + sdk: ">=3.2.5 <4.0.0" + +dependencies: + flutter: + sdk: flutter + cupertino_icons: ^1.0.2 + firebase_core: ^2.24.2 + firebase_auth: ^4.16.0 + flutter_chat: + path: ../ + flutter_chat_firebase: + path: ../../flutter_chat_firebase + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^2.0.0 + +flutter: + uses-material-design: true diff --git a/packages/flutter_chat_view/example/README.md b/packages/flutter_chat_view/example/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/packages/flutter_chat_view/example/lib/main.dart b/packages/flutter_chat_view/example/lib/main.dart deleted file mode 100644 index 35b723e..0000000 --- a/packages/flutter_chat_view/example/lib/main.dart +++ /dev/null @@ -1,151 +0,0 @@ -// SPDX-FileCopyrightText: 2022 Iconica -// -// SPDX-License-Identifier: BSD-3-Clause - -import 'dart:async'; -import 'package:flutter/material.dart'; -import 'package:flutter_chat_view/flutter_chat_view.dart'; - -void main() { - runApp(const MaterialApp(home: MyStatefulWidget())); -} - -class MyStatefulWidget extends StatefulWidget { - const MyStatefulWidget({super.key}); - - @override - State createState() => _MyStatefulWidgetState(); -} - -class _MyStatefulWidgetState extends State { - static final pietUser = ChatUserModel( - id: 'piet', - firstName: 'Piet', - lastName: 'Jansen', - imageUrl: 'https://xsgames.co/randomusers/avatar.php?g=female', - ); - - static final janUser = ChatUserModel( - firstName: 'Jan', - lastName: 'Jansen', - imageUrl: 'https://xsgames.co/randomusers/avatar.php?g=male', - ); - - static final messages = [ - ChatTextMessageModel( - sender: pietUser, - text: 'Hoe gaat het?', - timestamp: DateTime.now(), - ), - ChatTextMessageModel( - sender: janUser, - text: 'Met mij gaat het goed, dankje!', - timestamp: DateTime.now().subtract(const Duration(days: 2)), - ), - ChatTextMessageModel( - sender: pietUser, - text: 'Mooi zo!', - timestamp: DateTime.now().subtract(const Duration(days: 1)), - ), - ChatTextMessageModel( - sender: pietUser, - text: 'Hoe gaat het?', - timestamp: DateTime.now(), - ), - ChatTextMessageModel( - sender: janUser, - text: 'Met mij gaat het goed, dankje!', - timestamp: DateTime.now().subtract(const Duration(days: 2)), - ), - ]; - - static final chat = PersonalChatModel( - user: ChatUserModel( - firstName: 'Sjoerd', - lastName: 'Sjagerars', - imageUrl: 'https://xsgames.co/randomusers/avatar.php?g=female', - ), - lastUsed: DateTime.now(), - messages: messages, - ); - - static final groupChat = GroupChatModel( - title: 'Group chat', - imageUrl: 'https://xsgames.co/randomusers/avatar.php?g=male', - users: [pietUser, janUser], - lastUsed: DateTime.now().subtract(const Duration(days: 1)), - messages: messages, - canBeDeleted: false, - ); - - Stream> get chatStream => (() { - late StreamController> controller; - controller = StreamController>( - onListen: () { - controller.add([ - groupChat, - chat, - ]); - }, - ); - return controller.stream; - })(); - - Stream> get messageStream => (() { - late StreamController> controller; - controller = StreamController>( - onListen: () { - controller.add( - messages, - ); - - Future.delayed( - const Duration(seconds: 5), - () => controller.add( - [ - ...messages, - ...messages, - ], - ), - ); - }, - ); - return controller.stream; - })(); - - @override - Widget build(BuildContext context) { - // return ChatScreen( - // service: , - // options: options, - // onPressChat: (chat) => Navigator.of(context).push( - // MaterialPageRoute( - // builder: (context) => ChatDetailScreen( - // userId: 'piet', - // chat: chat, - // chatMessages: messageStream, - // options: options, - // onMessageSubmit: (text) async { - // return Future.delayed( - // const Duration( - // milliseconds: 500, - // ), - // () => debugPrint('onMessageSubmit'), - // ); - // }, - // onReadChat: (chat) async {}, - // onUploadImage: (image) async {}, - // ), - // ), - // ), - // onDeleteChat: (chat) => Future.delayed( - // const Duration( - // milliseconds: 500, - // ), - // () => debugPrint('onDeleteChat'), - // ), - // onPressStartChat: () => debugPrint('onPressStartChat'), - // ); - return const Text('Example '); - } -} diff --git a/packages/flutter_chat_view/example/pubspec.yaml b/packages/flutter_chat_view/example/pubspec.yaml deleted file mode 100644 index 754f658..0000000 --- a/packages/flutter_chat_view/example/pubspec.yaml +++ /dev/null @@ -1,26 +0,0 @@ -# SPDX-FileCopyrightText: 2022 Iconica -# -# SPDX-License-Identifier: GPL-3.0-or-later - -name: flutter_chat_view_example -description: A standard flutter package. - -publish_to: "none" # Remove this line if you wish to publish to pub.dev - -version: 1.0.0+1 - -environment: - sdk: ">=3.1.0 <4.0.0" -dependencies: - flutter: - sdk: flutter - flutter_chat_view: - path: .. - -dev_dependencies: - flutter_test: - sdk: flutter - flutter_lints: ^2.0.0 - -flutter: - uses-material-design: true diff --git a/packages/flutter_chat_view/example/test/widget_test.dart b/packages/flutter_chat_view/example/test/widget_test.dart deleted file mode 100644 index 73b773e..0000000 --- a/packages/flutter_chat_view/example/test/widget_test.dart +++ /dev/null @@ -1,14 +0,0 @@ -// This is a basic Flutter widget test. -// -// To perform an interaction with a widget in your test, use the WidgetTester -// utility in the flutter_test package. For example, you can send tap and scroll -// gestures. You can also use WidgetTester to find child widgets in the widget -// tree, read text, and verify that the values of widget properties are correct. - -import 'package:flutter_test/flutter_test.dart'; - -void main() { - test('blank test', () { - expect(true, isTrue); - }); -} diff --git a/packages/flutter_chat_view/ios/Flutter/Generated.xcconfig b/packages/flutter_chat_view/ios/Flutter/Generated.xcconfig index 8778ec4..047dd88 100644 --- a/packages/flutter_chat_view/ios/Flutter/Generated.xcconfig +++ b/packages/flutter_chat_view/ios/Flutter/Generated.xcconfig @@ -1,11 +1,11 @@ // This is a generated file; do not edit or check into version control. FLUTTER_ROOT=/opt/homebrew/Caskroom/flutter/3.10.2/flutter -FLUTTER_APPLICATION_PATH=/Users/mikedoornenbal/Documents/iconica/flutter_chat/packages/flutter_chat_view +FLUTTER_APPLICATION_PATH=/Users/mikedoornenbal/Documents/iconica/flutter_community_chat/packages/flutter_chat_view COCOAPODS_PARALLEL_CODE_SIGN=true FLUTTER_TARGET=lib/main.dart FLUTTER_BUILD_DIR=build -FLUTTER_BUILD_NAME=0.6.0 -FLUTTER_BUILD_NUMBER=0.6.0 +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1.0.0 EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386 EXCLUDED_ARCHS[sdk=iphoneos*]=armv7 DART_OBFUSCATION=false diff --git a/packages/flutter_chat_view/ios/Flutter/flutter_export_environment.sh b/packages/flutter_chat_view/ios/Flutter/flutter_export_environment.sh index 5b36b6b..64fffaf 100755 --- a/packages/flutter_chat_view/ios/Flutter/flutter_export_environment.sh +++ b/packages/flutter_chat_view/ios/Flutter/flutter_export_environment.sh @@ -1,12 +1,12 @@ #!/bin/sh # This is a generated file; do not edit or check into version control. export "FLUTTER_ROOT=/opt/homebrew/Caskroom/flutter/3.10.2/flutter" -export "FLUTTER_APPLICATION_PATH=/Users/mikedoornenbal/Documents/iconica/flutter_chat/packages/flutter_chat_view" +export "FLUTTER_APPLICATION_PATH=/Users/mikedoornenbal/Documents/iconica/flutter_community_chat/packages/flutter_chat_view" export "COCOAPODS_PARALLEL_CODE_SIGN=true" export "FLUTTER_TARGET=lib/main.dart" export "FLUTTER_BUILD_DIR=build" -export "FLUTTER_BUILD_NAME=0.6.0" -export "FLUTTER_BUILD_NUMBER=0.6.0" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1.0.0" export "DART_OBFUSCATION=false" export "TRACK_WIDGET_CREATION=true" export "TREE_SHAKE_ICONS=false" diff --git a/packages/flutter_chat_view/lib/src/screens/chat_profile_screen.dart b/packages/flutter_chat_view/lib/src/screens/chat_profile_screen.dart index f432231..cdbb478 100644 --- a/packages/flutter_chat_view/lib/src/screens/chat_profile_screen.dart +++ b/packages/flutter_chat_view/lib/src/screens/chat_profile_screen.dart @@ -79,6 +79,9 @@ class _ProfileScreenState extends State { width: size.width, child: ProfilePage( user: user!, + itemBuilderOptions: ItemBuilderOptions( + readOnly: true, + ), service: ChatProfileService(), ), ),