diff --git a/example/analysis_options.yaml b/example/analysis_options.yaml new file mode 100644 index 0000000..7161cfd --- /dev/null +++ b/example/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +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.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 + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/example/main.dart b/example/main.dart new file mode 100644 index 0000000..d04fe0c --- /dev/null +++ b/example/main.dart @@ -0,0 +1,69 @@ +import 'dart:developer'; + +import 'package:chatview_models/chatview_models.dart'; + +void main() { + // Create sample users + const currentUser = ChatUser( + id: '1', + name: 'Flutter', + profilePhoto: Constants.profileImage, + ); + + log(currentUser.toString(), name: 'ChatView Models'); + + const otherUsers = [ + ChatUser( + id: '2', + name: 'Simform', + profilePhoto: Constants.profileImage, + ), + ]; + + log(otherUsers.map((e) => e.toString()).toString(), name: 'ChatView Models'); + + // Create some initial messages + final messages = [ + Message( + id: '1', + message: 'Hello!', + createdAt: DateTime.now().subtract(const Duration(minutes: 5)), + sentBy: '1', + status: MessageStatus.delivered, + ), + Message( + id: '2', + message: 'Hi there!', + createdAt: DateTime.now().subtract(const Duration(minutes: 4)), + sentBy: '2', + status: MessageStatus.read, + ), + ]; + + log(messages.map((e) => e.toString()).toString(), name: 'ChatView Models'); + + // Demonstrate reaction + final reaction = Reaction( + reactedUserIds: [currentUser.id], + reactions: ['👍'], + ); + + log(reaction.toString(), name: 'ChatView Models'); + + // Demonstrate reply + final replyMessage = Message( + id: '4', + message: 'I am good!', + createdAt: DateTime.now(), + sentBy: currentUser.id, + status: MessageStatus.pending, + replyMessage: ReplyMessage( + message: 'How are you?', + messageId: '3', + messageType: MessageType.text, + replyTo: 'other_user_1', + replyBy: currentUser.id, + ), + ); + log(replyMessage.toString(), name: 'ChatView Models'); +} diff --git a/example/pubspec.yaml b/example/pubspec.yaml new file mode 100644 index 0000000..150b87f --- /dev/null +++ b/example/pubspec.yaml @@ -0,0 +1,46 @@ +name: example +description: "A new Flutter project." +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: '>=3.4.0 <4.0.0' + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + + chatview_models: + path: .. + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^2.0.0