chore(repo): finish adding dart_code_metrics.yaml
Signed-off-by: xsahil03x <[email protected]>
This commit is contained in:
@@ -33,7 +33,7 @@ jobs:
|
|||||||
flutter-version: ${{ env.flutter_version }}
|
flutter-version: ${{ env.flutter_version }}
|
||||||
|
|
||||||
- name: "Install Tools"
|
- name: "Install Tools"
|
||||||
run: flutter pub global activate melos
|
run: flutter pub global activate melos 1.0.0-dev.3
|
||||||
- name: "Bootstrap Workspace"
|
- name: "Bootstrap Workspace"
|
||||||
run: melos bootstrap
|
run: melos bootstrap
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ jobs:
|
|||||||
flutter-version: ${{ env.flutter_version }}
|
flutter-version: ${{ env.flutter_version }}
|
||||||
- name: "Install Tools"
|
- name: "Install Tools"
|
||||||
run: |
|
run: |
|
||||||
flutter pub global activate melos
|
flutter pub global activate melos 1.0.0-dev.3
|
||||||
- name: "Bootstrap Workspace"
|
- name: "Bootstrap Workspace"
|
||||||
run: melos bootstrap
|
run: melos bootstrap
|
||||||
- name: "Dart Analyze"
|
- name: "Dart Analyze"
|
||||||
|
|||||||
@@ -149,12 +149,6 @@ linter:
|
|||||||
|
|
||||||
# https://dartcodemetrics.dev/docs/getting-started/introduction
|
# https://dartcodemetrics.dev/docs/getting-started/introduction
|
||||||
dart_code_metrics:
|
dart_code_metrics:
|
||||||
metrics-exclude:
|
|
||||||
- packages/*/test/**
|
|
||||||
metrics:
|
|
||||||
source-lines-of-code: 90
|
|
||||||
maximum-nesting-level: 5
|
|
||||||
halstead-volume: 150
|
|
||||||
rules:
|
rules:
|
||||||
# Dart Specific
|
# Dart Specific
|
||||||
- binary-expression-operand-order
|
- binary-expression-operand-order
|
||||||
@@ -162,6 +156,7 @@ dart_code_metrics:
|
|||||||
- prefer-match-file-name:
|
- prefer-match-file-name:
|
||||||
exclude:
|
exclude:
|
||||||
- packages/*/test/**
|
- packages/*/test/**
|
||||||
|
- packages/*/example/**
|
||||||
- packages/**/util/**
|
- packages/**/util/**
|
||||||
- packages/**/utils.dart
|
- packages/**/utils.dart
|
||||||
- packages/stream_chat/lib/src/client/client.dart
|
- packages/stream_chat/lib/src/client/client.dart
|
||||||
@@ -181,5 +176,4 @@ dart_code_metrics:
|
|||||||
|
|
||||||
# Flutter specific
|
# Flutter specific
|
||||||
- always-remove-listener
|
- always-remove-listener
|
||||||
- avoid-unnecessary-setstate
|
- avoid-unnecessary-setstate
|
||||||
- avoid-wrapping-in-padding
|
|
||||||
+1
-1
@@ -4,7 +4,7 @@ versioning:
|
|||||||
mode: independent
|
mode: independent
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
- packages/stream_chat*/*
|
- packages/**
|
||||||
|
|
||||||
scripts:
|
scripts:
|
||||||
lint:all:
|
lint:all:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
name: example
|
name: stream_chat_example
|
||||||
description: A new Flutter project.
|
description: A new Flutter project.
|
||||||
|
|
||||||
publish_to: "none"
|
publish_to: "none"
|
||||||
@@ -11,8 +11,7 @@ dependencies:
|
|||||||
cupertino_icons: ^1.0.0
|
cupertino_icons: ^1.0.0
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
stream_chat:
|
stream_chat: ^2.2.1
|
||||||
path: ../
|
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
name: example
|
name: stream_chat_flutter_example
|
||||||
description: A new Flutter project.
|
description: A new Flutter project.
|
||||||
|
|
||||||
# The following line prevents the package from being accidentally published to
|
# The following line prevents the package from being accidentally published to
|
||||||
@@ -27,18 +27,9 @@ dependencies:
|
|||||||
cupertino_icons: ^1.0.3
|
cupertino_icons: ^1.0.3
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
stream_chat_flutter: ^2.2.1
|
||||||
dependency_overrides:
|
stream_chat_localizations: ^1.1.0
|
||||||
stream_chat:
|
stream_chat_persistence: ^2.2.0
|
||||||
path: ../../stream_chat
|
|
||||||
stream_chat_flutter:
|
|
||||||
path: ../../stream_chat_flutter
|
|
||||||
stream_chat_flutter_core:
|
|
||||||
path: ../../stream_chat_flutter_core
|
|
||||||
stream_chat_localizations:
|
|
||||||
path: ../../stream_chat_localizations
|
|
||||||
stream_chat_persistence:
|
|
||||||
path: ../../stream_chat_persistence
|
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|||||||
@@ -54,131 +54,135 @@ class AttachmentActionsModal extends StatelessWidget {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.end,
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
const SizedBox(height: kToolbarHeight),
|
const SizedBox(height: kToolbarHeight),
|
||||||
Container(
|
Padding(
|
||||||
padding: const EdgeInsets.only(right: 8),
|
padding: const EdgeInsets.only(right: 8),
|
||||||
width: MediaQuery.of(context).size.width * 0.5,
|
child: Container(
|
||||||
clipBehavior: Clip.hardEdge,
|
width: MediaQuery.of(context).size.width * 0.5,
|
||||||
decoration: BoxDecoration(
|
clipBehavior: Clip.hardEdge,
|
||||||
borderRadius: BorderRadius.circular(16),
|
decoration: BoxDecoration(
|
||||||
),
|
borderRadius: BorderRadius.circular(16),
|
||||||
child: SizedBox(
|
),
|
||||||
child: Column(
|
child: SizedBox(
|
||||||
crossAxisAlignment: CrossAxisAlignment.end,
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
children: [
|
mainAxisSize: MainAxisSize.min,
|
||||||
_buildButton(
|
children: [
|
||||||
context,
|
|
||||||
context.translations.replyLabel,
|
|
||||||
StreamSvgIcon.iconCurveLineLeftUp(
|
|
||||||
size: 24,
|
|
||||||
color: theme.colorTheme.textLowEmphasis,
|
|
||||||
),
|
|
||||||
() {
|
|
||||||
Navigator.pop(context, ReturnActionType.reply);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
_buildButton(
|
|
||||||
context,
|
|
||||||
context.translations.showInChatLabel,
|
|
||||||
StreamSvgIcon.eye(
|
|
||||||
size: 24,
|
|
||||||
color: theme.colorTheme.textHighEmphasis,
|
|
||||||
),
|
|
||||||
onShowMessage,
|
|
||||||
),
|
|
||||||
_buildButton(
|
|
||||||
context,
|
|
||||||
message.attachments[currentIndex].type == 'video'
|
|
||||||
? context.translations.saveVideoLabel
|
|
||||||
: context.translations.saveImageLabel,
|
|
||||||
StreamSvgIcon.iconSave(
|
|
||||||
size: 24,
|
|
||||||
color: theme.colorTheme.textLowEmphasis,
|
|
||||||
),
|
|
||||||
() {
|
|
||||||
final attachment = message.attachments[currentIndex];
|
|
||||||
final isImage = attachment.type == 'image';
|
|
||||||
final Future<String?> Function(
|
|
||||||
Attachment, {
|
|
||||||
void Function(int, int) progressCallback,
|
|
||||||
}) saveFile = fileDownloader ?? _downloadAttachment;
|
|
||||||
final Future<String?> Function(
|
|
||||||
Attachment, {
|
|
||||||
void Function(int, int) progressCallback,
|
|
||||||
}) saveImage = imageDownloader ?? _downloadAttachment;
|
|
||||||
final downloader = isImage ? saveImage : saveFile;
|
|
||||||
|
|
||||||
final progressNotifier = ValueNotifier<_DownloadProgress?>(
|
|
||||||
_DownloadProgress.initial(),
|
|
||||||
);
|
|
||||||
|
|
||||||
downloader(
|
|
||||||
attachment,
|
|
||||||
progressCallback: (received, total) {
|
|
||||||
progressNotifier.value = _DownloadProgress(
|
|
||||||
total,
|
|
||||||
received,
|
|
||||||
);
|
|
||||||
},
|
|
||||||
).catchError((e, stk) {
|
|
||||||
progressNotifier.value = null;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Closing attachment actions modal before opening
|
|
||||||
// attachment download dialog
|
|
||||||
Navigator.pop(context);
|
|
||||||
|
|
||||||
showDialog(
|
|
||||||
barrierDismissible: false,
|
|
||||||
context: context,
|
|
||||||
barrierColor: theme.colorTheme.overlay,
|
|
||||||
builder: (context) => _buildDownloadProgressDialog(
|
|
||||||
context,
|
|
||||||
progressNotifier,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
if (StreamChat.of(context).currentUser?.id == message.user?.id)
|
|
||||||
_buildButton(
|
_buildButton(
|
||||||
context,
|
context,
|
||||||
context.translations.deleteLabel.capitalize(),
|
context.translations.replyLabel,
|
||||||
StreamSvgIcon.delete(
|
StreamSvgIcon.iconCurveLineLeftUp(
|
||||||
size: 24,
|
size: 24,
|
||||||
color: theme.colorTheme.accentError,
|
color: theme.colorTheme.textLowEmphasis,
|
||||||
),
|
),
|
||||||
() {
|
() {
|
||||||
final channel = StreamChannel.of(context).channel;
|
Navigator.pop(context, ReturnActionType.reply);
|
||||||
if (message.attachments.length > 1 ||
|
|
||||||
message.text?.isNotEmpty == true) {
|
|
||||||
final remainingAttachments = [...message.attachments]
|
|
||||||
..removeAt(currentIndex);
|
|
||||||
channel.updateMessage(message.copyWith(
|
|
||||||
attachments: remainingAttachments,
|
|
||||||
));
|
|
||||||
Navigator.of(context)
|
|
||||||
..pop()
|
|
||||||
..maybePop();
|
|
||||||
} else {
|
|
||||||
channel.deleteMessage(message);
|
|
||||||
Navigator.of(context)
|
|
||||||
..pop()
|
|
||||||
..maybePop();
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
color: theme.colorTheme.accentError,
|
|
||||||
),
|
),
|
||||||
]
|
_buildButton(
|
||||||
.map<Widget>((e) => Align(
|
context,
|
||||||
alignment: Alignment.centerRight,
|
context.translations.showInChatLabel,
|
||||||
child: e,
|
StreamSvgIcon.eye(
|
||||||
))
|
size: 24,
|
||||||
.insertBetween(
|
color: theme.colorTheme.textHighEmphasis,
|
||||||
Container(
|
|
||||||
height: 1,
|
|
||||||
color: theme.colorTheme.borders,
|
|
||||||
),
|
),
|
||||||
|
onShowMessage,
|
||||||
),
|
),
|
||||||
|
_buildButton(
|
||||||
|
context,
|
||||||
|
message.attachments[currentIndex].type == 'video'
|
||||||
|
? context.translations.saveVideoLabel
|
||||||
|
: context.translations.saveImageLabel,
|
||||||
|
StreamSvgIcon.iconSave(
|
||||||
|
size: 24,
|
||||||
|
color: theme.colorTheme.textLowEmphasis,
|
||||||
|
),
|
||||||
|
() {
|
||||||
|
final attachment = message.attachments[currentIndex];
|
||||||
|
final isImage = attachment.type == 'image';
|
||||||
|
final Future<String?> Function(
|
||||||
|
Attachment, {
|
||||||
|
void Function(int, int) progressCallback,
|
||||||
|
}) saveFile = fileDownloader ?? _downloadAttachment;
|
||||||
|
final Future<String?> Function(
|
||||||
|
Attachment, {
|
||||||
|
void Function(int, int) progressCallback,
|
||||||
|
}) saveImage = imageDownloader ?? _downloadAttachment;
|
||||||
|
final downloader = isImage ? saveImage : saveFile;
|
||||||
|
|
||||||
|
final progressNotifier =
|
||||||
|
ValueNotifier<_DownloadProgress?>(
|
||||||
|
_DownloadProgress.initial(),
|
||||||
|
);
|
||||||
|
|
||||||
|
downloader(
|
||||||
|
attachment,
|
||||||
|
progressCallback: (received, total) {
|
||||||
|
progressNotifier.value = _DownloadProgress(
|
||||||
|
total,
|
||||||
|
received,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
).catchError((e, stk) {
|
||||||
|
progressNotifier.value = null;
|
||||||
|
});
|
||||||
|
|
||||||
|
// Closing attachment actions modal before opening
|
||||||
|
// attachment download dialog
|
||||||
|
Navigator.pop(context);
|
||||||
|
|
||||||
|
showDialog(
|
||||||
|
barrierDismissible: false,
|
||||||
|
context: context,
|
||||||
|
barrierColor: theme.colorTheme.overlay,
|
||||||
|
builder: (context) => _buildDownloadProgressDialog(
|
||||||
|
context,
|
||||||
|
progressNotifier,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
if (StreamChat.of(context).currentUser?.id ==
|
||||||
|
message.user?.id)
|
||||||
|
_buildButton(
|
||||||
|
context,
|
||||||
|
context.translations.deleteLabel.capitalize(),
|
||||||
|
StreamSvgIcon.delete(
|
||||||
|
size: 24,
|
||||||
|
color: theme.colorTheme.accentError,
|
||||||
|
),
|
||||||
|
() {
|
||||||
|
final channel = StreamChannel.of(context).channel;
|
||||||
|
if (message.attachments.length > 1 ||
|
||||||
|
message.text?.isNotEmpty == true) {
|
||||||
|
final remainingAttachments = [...message.attachments]
|
||||||
|
..removeAt(currentIndex);
|
||||||
|
channel.updateMessage(message.copyWith(
|
||||||
|
attachments: remainingAttachments,
|
||||||
|
));
|
||||||
|
Navigator.of(context)
|
||||||
|
..pop()
|
||||||
|
..maybePop();
|
||||||
|
} else {
|
||||||
|
channel.deleteMessage(message);
|
||||||
|
Navigator.of(context)
|
||||||
|
..pop()
|
||||||
|
..maybePop();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
color: theme.colorTheme.accentError,
|
||||||
|
),
|
||||||
|
]
|
||||||
|
.map<Widget>((e) => Align(
|
||||||
|
alignment: Alignment.centerRight,
|
||||||
|
child: e,
|
||||||
|
))
|
||||||
|
.insertBetween(
|
||||||
|
Container(
|
||||||
|
height: 1,
|
||||||
|
color: theme.colorTheme.borders,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -112,8 +112,8 @@ class _FullScreenMediaState extends State<FullScreenMedia>
|
|||||||
attachment.assetUrl ??
|
attachment.assetUrl ??
|
||||||
attachment.thumbUrl;
|
attachment.thumbUrl;
|
||||||
return PhotoView(
|
return PhotoView(
|
||||||
loadingBuilder: (context, image) =>
|
loadingBuilder: (context, image) => const Offstage(),
|
||||||
const Offstage(),imageProvider: (imageUrl == null &&
|
imageProvider: (imageUrl == null &&
|
||||||
attachment.localUri != null &&
|
attachment.localUri != null &&
|
||||||
attachment.file?.bytes != null)
|
attachment.file?.bytes != null)
|
||||||
? Image.memory(attachment.file!.bytes!).image
|
? Image.memory(attachment.file!.bytes!).image
|
||||||
|
|||||||
@@ -251,26 +251,29 @@ class _GalleryFooterState extends State<GalleryFooter> {
|
|||||||
children: [
|
children: [
|
||||||
media,
|
media,
|
||||||
if (widget.message.user != null)
|
if (widget.message.user != null)
|
||||||
Container(
|
Padding(
|
||||||
padding: const EdgeInsets.all(10),
|
padding: const EdgeInsets.all(8),
|
||||||
clipBehavior: Clip.antiAlias,
|
child: Container(
|
||||||
decoration: BoxDecoration(
|
padding: const EdgeInsets.all(2),
|
||||||
shape: BoxShape.circle,
|
clipBehavior: Clip.antiAlias,
|
||||||
color: Colors.white.withOpacity(0.6),
|
decoration: BoxDecoration(
|
||||||
boxShadow: [
|
shape: BoxShape.circle,
|
||||||
BoxShadow(
|
color: Colors.white.withOpacity(0.6),
|
||||||
blurRadius: 8,
|
boxShadow: [
|
||||||
color: chatThemeData
|
BoxShadow(
|
||||||
.colorTheme.textHighEmphasis
|
blurRadius: 8,
|
||||||
.withOpacity(0.3),
|
color: chatThemeData
|
||||||
),
|
.colorTheme.textHighEmphasis
|
||||||
],
|
.withOpacity(0.3),
|
||||||
),
|
),
|
||||||
child: UserAvatar(
|
],
|
||||||
user: widget.message.user!,
|
),
|
||||||
constraints:
|
child: UserAvatar(
|
||||||
BoxConstraints.tight(const Size(24, 24)),
|
user: widget.message.user!,
|
||||||
showOnlineStatus: false,
|
constraints:
|
||||||
|
BoxConstraints.tight(const Size(24, 24)),
|
||||||
|
showOnlineStatus: false,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -752,28 +752,31 @@ class MessageInputState extends State<MessageInput> {
|
|||||||
? Row(
|
? Row(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Padding(
|
||||||
padding: const EdgeInsets.all(8),
|
padding: const EdgeInsets.all(8),
|
||||||
constraints: BoxConstraints.tight(const Size(64, 24)),
|
child: Container(
|
||||||
decoration: BoxDecoration(
|
constraints: BoxConstraints.tight(const Size(64, 24)),
|
||||||
borderRadius: BorderRadius.circular(12),
|
decoration: BoxDecoration(
|
||||||
color: _streamChatTheme.colorTheme.accentPrimary,
|
borderRadius: BorderRadius.circular(12),
|
||||||
),
|
color: _streamChatTheme.colorTheme.accentPrimary,
|
||||||
alignment: Alignment.center,
|
),
|
||||||
child: Row(
|
alignment: Alignment.center,
|
||||||
mainAxisSize: MainAxisSize.min,
|
child: Row(
|
||||||
children: [
|
mainAxisSize: MainAxisSize.min,
|
||||||
StreamSvgIcon.lightning(
|
children: [
|
||||||
color: Colors.white,
|
StreamSvgIcon.lightning(
|
||||||
size: 16,
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
_chosenCommand?.name.toUpperCase() ?? '',
|
|
||||||
style: _streamChatTheme.textTheme.footnoteBold.copyWith(
|
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
|
size: 16,
|
||||||
),
|
),
|
||||||
),
|
Text(
|
||||||
],
|
_chosenCommand?.name.toUpperCase() ?? '',
|
||||||
|
style:
|
||||||
|
_streamChatTheme.textTheme.footnoteBold.copyWith(
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@@ -1024,8 +1027,10 @@ class MessageInputState extends State<MessageInput> {
|
|||||||
_attachments.isNotEmpty)
|
_attachments.isNotEmpty)
|
||||||
? null
|
? null
|
||||||
: () {
|
: () {
|
||||||
pickFile(DefaultAttachmentTypes.image,
|
pickFile(
|
||||||
camera: true);
|
DefaultAttachmentTypes.image,
|
||||||
|
camera: true,
|
||||||
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
@@ -1038,8 +1043,10 @@ class MessageInputState extends State<MessageInput> {
|
|||||||
_attachments.isNotEmpty)
|
_attachments.isNotEmpty)
|
||||||
? null
|
? null
|
||||||
: () {
|
: () {
|
||||||
pickFile(DefaultAttachmentTypes.video,
|
pickFile(
|
||||||
camera: true);
|
DefaultAttachmentTypes.video,
|
||||||
|
camera: true,
|
||||||
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@@ -1053,13 +1060,15 @@ class MessageInputState extends State<MessageInput> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Container(
|
child: Padding(
|
||||||
width: 40,
|
padding: const EdgeInsets.all(8),
|
||||||
height: 4,
|
child: Container(
|
||||||
padding: const EdgeInsets.all(8),
|
width: 40,
|
||||||
decoration: BoxDecoration(
|
height: 4,
|
||||||
color: _streamChatTheme.colorTheme.inputBg,
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(4),
|
color: _streamChatTheme.colorTheme.inputBg,
|
||||||
|
borderRadius: BorderRadius.circular(4),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ class QuotedMessageWidget extends StatelessWidget {
|
|||||||
image: DecorationImage(
|
image: DecorationImage(
|
||||||
fit: BoxFit.cover,
|
fit: BoxFit.cover,
|
||||||
image: CachedNetworkImageProvider(
|
image: CachedNetworkImageProvider(
|
||||||
attachment.imageUrl!,
|
attachment.thumbUrl!,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
name: example
|
name: stream_chat_flutter_core_example
|
||||||
description: Example app for testing stream_chat_flutter_core
|
description: Example app for testing stream_chat_flutter_core
|
||||||
|
|
||||||
# The following line prevents the package from being accidentally published to
|
# The following line prevents the package from being accidentally published to
|
||||||
@@ -26,13 +26,7 @@ dependencies:
|
|||||||
cupertino_icons: ^1.0.3
|
cupertino_icons: ^1.0.3
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
stream_chat_flutter_core: ^2.2.1
|
||||||
dependency_overrides:
|
|
||||||
stream_chat:
|
|
||||||
path: ../../stream_chat
|
|
||||||
stream_chat_flutter_core:
|
|
||||||
path: ../../stream_chat_flutter_core
|
|
||||||
|
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
name: example
|
name: stream_chat_localizations_example
|
||||||
description: A new Flutter project.
|
description: A new Flutter project.
|
||||||
|
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
@@ -11,16 +11,8 @@ dependencies:
|
|||||||
cupertino_icons: ^1.0.3
|
cupertino_icons: ^1.0.3
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
stream_chat_flutter: ^2.2.1
|
||||||
dependency_overrides:
|
stream_chat_localizations: ^1.1.0
|
||||||
stream_chat:
|
|
||||||
path: ../../stream_chat
|
|
||||||
stream_chat_flutter:
|
|
||||||
path: ../../stream_chat_flutter
|
|
||||||
stream_chat_flutter_core:
|
|
||||||
path: ../../stream_chat_flutter_core
|
|
||||||
stream_chat_localizations:
|
|
||||||
path: ../../stream_chat_localizations
|
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
name: example
|
name: stream_chat_persistence_example
|
||||||
description: A new Flutter project.
|
description: A new Flutter project.
|
||||||
|
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
@@ -11,12 +11,8 @@ dependencies:
|
|||||||
cupertino_icons: ^1.0.3
|
cupertino_icons: ^1.0.3
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
stream_chat: ^2.2.1
|
||||||
dependency_overrides:
|
stream_chat_persistence: ^2.2.0
|
||||||
stream_chat:
|
|
||||||
path: ../../stream_chat
|
|
||||||
stream_chat_persistence:
|
|
||||||
path: ../../stream_chat_persistence
|
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|||||||
Reference in New Issue
Block a user