Merge pull request #291 from GetStream/hotfix/attachments
Hotfix/attachments
This commit is contained in:
@@ -10,6 +10,8 @@ assignees: ''
|
|||||||
**Describe the bug**
|
**Describe the bug**
|
||||||
A clear and concise description of what the bug is.
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
**What package are you using? What version?**
|
||||||
|
|
||||||
**To Reproduce**
|
**To Reproduce**
|
||||||
Steps to reproduce the behavior:
|
Steps to reproduce the behavior:
|
||||||
1. Go to '...'
|
1. Go to '...'
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
**Quick Links**
|
**Quick Links**
|
||||||
|
|
||||||
- [Register](https://getstream.io/chat/trial/) to get an API key for Stream Chat
|
- [Register](https://getstream.io/chat/trial/) to get an API key for Stream Chat
|
||||||
- [Flutter Chat Tutorial](https://getstream.io/chat/flutter/tutorial/)
|
- [Flutter Chat SDK Tutorial](https://getstream.io/chat/flutter/tutorial/)
|
||||||
- [Chat UI Kit](https://getstream.io/chat/ui-kit/)
|
- [Chat UI Kit](https://getstream.io/chat/ui-kit/)
|
||||||
- [Sample apps](https://github.com/GetStream/flutter-samples)
|
- [Sample apps](https://github.com/GetStream/flutter-samples)
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,14 @@
|
|||||||
|
## 1.3.1-beta
|
||||||
|
|
||||||
|
- Debounced frequent db calls
|
||||||
|
|
||||||
|
## 1.3.0-beta
|
||||||
|
|
||||||
|
- Save pinned messages in offline storage
|
||||||
|
- Minor fixes
|
||||||
|
- `StreamClient.QueryChannels` now returns a Stream and fetches the channels from storage before calling the api
|
||||||
|
- Added `StreamClient.QueryChannelsOnline` and `StreamClient.QueryChannelsOffline` to fetch channels only from online or offline
|
||||||
|
|
||||||
## 1.2.0-beta
|
## 1.2.0-beta
|
||||||
|
|
||||||
- 🛑 **BREAKING** Changed signature of `StreamClient.search` method
|
- 🛑 **BREAKING** Changed signature of `StreamClient.search` method
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import 'package:dio/dio.dart';
|
|||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:rxdart/rxdart.dart';
|
import 'package:rxdart/rxdart.dart';
|
||||||
import 'package:stream_chat/src/api/retry_queue.dart';
|
import 'package:stream_chat/src/api/retry_queue.dart';
|
||||||
|
import 'package:stream_chat/src/debounce.dart';
|
||||||
import 'package:stream_chat/src/event_type.dart';
|
import 'package:stream_chat/src/event_type.dart';
|
||||||
import 'package:stream_chat/src/models/attachment_file.dart';
|
import 'package:stream_chat/src/models/attachment_file.dart';
|
||||||
import 'package:stream_chat/src/models/channel_state.dart';
|
import 'package:stream_chat/src/models/channel_state.dart';
|
||||||
@@ -237,9 +238,15 @@ class Channel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void onSendProgress(int sent, int total) {
|
void onSendProgress(int sent, int total) {
|
||||||
updateAttachment(it.copyWith(
|
debounce(
|
||||||
uploadState: UploadState.inProgress(uploaded: sent, total: total),
|
timeout: Duration(seconds: 1),
|
||||||
));
|
target: updateAttachment,
|
||||||
|
positionalArguments: [
|
||||||
|
it.copyWith(
|
||||||
|
uploadState: UploadState.inProgress(uploaded: sent, total: total),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
final isImage = it.type == 'image';
|
final isImage = it.type == 'image';
|
||||||
@@ -1441,7 +1448,7 @@ class ChannelClientState {
|
|||||||
|
|
||||||
final oldIndex = newMessages.indexWhere((m) => m.id == message.id);
|
final oldIndex = newMessages.indexWhere((m) => m.id == message.id);
|
||||||
if (oldIndex != -1) {
|
if (oldIndex != -1) {
|
||||||
newMessages[oldIndex] = newMessages[oldIndex].merge(message);
|
newMessages[oldIndex] = message;
|
||||||
} else {
|
} else {
|
||||||
newMessages.add(message);
|
newMessages.add(message);
|
||||||
}
|
}
|
||||||
@@ -1685,7 +1692,11 @@ class ChannelClientState {
|
|||||||
|
|
||||||
set _channelState(ChannelState v) {
|
set _channelState(ChannelState v) {
|
||||||
_channelStateController.add(v);
|
_channelStateController.add(v);
|
||||||
_channel._client.chatPersistenceClient?.updateChannelState(v);
|
debounce(
|
||||||
|
timeout: Duration(milliseconds: 500),
|
||||||
|
target: _channel._client.chatPersistenceClient?.updateChannelState,
|
||||||
|
positionalArguments: [v],
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The channel threads related to this channel
|
/// The channel threads related to this channel
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ class RetryQueue {
|
|||||||
|
|
||||||
/// Add a list of messages
|
/// Add a list of messages
|
||||||
void add(List<Message> messages) {
|
void add(List<Message> messages) {
|
||||||
|
logger?.info('added ${messages.length} messages');
|
||||||
final messageList = _messageQueue.toList();
|
final messageList = _messageQueue.toList();
|
||||||
_messageQueue.addAll(messages
|
_messageQueue.addAll(messages
|
||||||
.where((element) => !messageList.any((m) => m.id == element.id)));
|
.where((element) => !messageList.any((m) => m.id == element.id)));
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
import 'dart:async';
|
||||||
|
|
||||||
|
import 'package:meta/meta.dart';
|
||||||
|
|
||||||
|
/// Map of timeouts being debounced
|
||||||
|
Map<Function, Timer> timeouts = {};
|
||||||
|
|
||||||
|
/// Runs a function avoiding calling it too many times in a [timeoutMS] window
|
||||||
|
void debounce({
|
||||||
|
@required Duration timeout,
|
||||||
|
@required Function target,
|
||||||
|
List positionalArguments,
|
||||||
|
Map<Symbol, dynamic> namedArguments,
|
||||||
|
}) {
|
||||||
|
if (timeouts.containsKey(target)) {
|
||||||
|
timeouts[target].cancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
final timer = Timer(timeout, () {
|
||||||
|
Function.apply(
|
||||||
|
target,
|
||||||
|
positionalArguments,
|
||||||
|
namedArguments,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
timeouts[target] = timer;
|
||||||
|
}
|
||||||
@@ -2,26 +2,56 @@ import 'platform_detector_stub.dart'
|
|||||||
if (dart.library.html) 'platform_detector_web.dart'
|
if (dart.library.html) 'platform_detector_web.dart'
|
||||||
if (dart.library.io) 'platform_detector_io.dart';
|
if (dart.library.io) 'platform_detector_io.dart';
|
||||||
|
|
||||||
|
/// Possible platforms
|
||||||
enum PlatformType {
|
enum PlatformType {
|
||||||
|
///
|
||||||
Android,
|
Android,
|
||||||
|
|
||||||
|
///
|
||||||
Ios,
|
Ios,
|
||||||
|
|
||||||
|
///
|
||||||
Web,
|
Web,
|
||||||
|
|
||||||
|
///
|
||||||
MacOS,
|
MacOS,
|
||||||
|
|
||||||
|
///
|
||||||
Windows,
|
Windows,
|
||||||
|
|
||||||
|
///
|
||||||
Linux,
|
Linux,
|
||||||
|
|
||||||
|
///
|
||||||
Fuchsia,
|
Fuchsia,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Utility class that provides information on the current platform
|
||||||
class CurrentPlatform {
|
class CurrentPlatform {
|
||||||
CurrentPlatform._();
|
CurrentPlatform._();
|
||||||
|
|
||||||
|
/// True if the app is running on android
|
||||||
static bool get isAndroid => type == PlatformType.Android;
|
static bool get isAndroid => type == PlatformType.Android;
|
||||||
|
|
||||||
|
/// True if the app is running on ios
|
||||||
static bool get isIos => type == PlatformType.Ios;
|
static bool get isIos => type == PlatformType.Ios;
|
||||||
|
|
||||||
|
/// True if the app is running on web
|
||||||
static bool get isWeb => type == PlatformType.Web;
|
static bool get isWeb => type == PlatformType.Web;
|
||||||
|
|
||||||
|
/// True if the app is running on macos
|
||||||
static bool get isMacOS => type == PlatformType.MacOS;
|
static bool get isMacOS => type == PlatformType.MacOS;
|
||||||
|
|
||||||
|
/// True if the app is running on windows
|
||||||
static bool get isWindows => type == PlatformType.Windows;
|
static bool get isWindows => type == PlatformType.Windows;
|
||||||
|
|
||||||
|
/// True if the app is running on linux
|
||||||
static bool get isLinux => type == PlatformType.Linux;
|
static bool get isLinux => type == PlatformType.Linux;
|
||||||
|
|
||||||
|
/// True if the app is running on fuchsia
|
||||||
static bool get isFuchsia => type == PlatformType.Fuchsia;
|
static bool get isFuchsia => type == PlatformType.Fuchsia;
|
||||||
|
|
||||||
|
/// Returns a string version of the platform
|
||||||
static String get name {
|
static String get name {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case PlatformType.Android:
|
case PlatformType.Android:
|
||||||
@@ -43,5 +73,6 @@ class CurrentPlatform {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Get current platform type
|
||||||
static PlatformType get type => currentPlatform;
|
static PlatformType get type => currentPlatform;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'platform_detector.dart';
|
import 'platform_detector.dart';
|
||||||
|
|
||||||
|
/// Version running on native systems
|
||||||
PlatformType get currentPlatform {
|
PlatformType get currentPlatform {
|
||||||
if (Platform.isWindows) return PlatformType.Windows;
|
if (Platform.isWindows) return PlatformType.Windows;
|
||||||
if (Platform.isFuchsia) return PlatformType.Fuchsia;
|
if (Platform.isFuchsia) return PlatformType.Fuchsia;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import 'platform_detector.dart';
|
import 'platform_detector.dart';
|
||||||
|
|
||||||
|
/// Stub implementation
|
||||||
PlatformType get currentPlatform {
|
PlatformType get currentPlatform {
|
||||||
throw UnimplementedError();
|
throw UnimplementedError();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
import 'platform_detector.dart';
|
import 'platform_detector.dart';
|
||||||
|
|
||||||
|
/// Version running on web
|
||||||
PlatformType get currentPlatform => PlatformType.Web;
|
PlatformType get currentPlatform => PlatformType.Web;
|
||||||
|
|||||||
@@ -2,4 +2,4 @@ import 'package:stream_chat/src/client.dart';
|
|||||||
|
|
||||||
/// Current package version
|
/// Current package version
|
||||||
/// Used in [StreamChatClient] to build the `x-stream-client` header
|
/// Used in [StreamChatClient] to build the `x-stream-client` header
|
||||||
const PACKAGE_VERSION = '1.2.0-beta';
|
const PACKAGE_VERSION = '1.3.1-beta';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: stream_chat
|
name: stream_chat
|
||||||
homepage: https://getstream.io/
|
homepage: https://getstream.io/
|
||||||
description: The official Dart client for Stream Chat, a service for building chat applications.
|
description: The official Dart client for Stream Chat, a service for building chat applications.
|
||||||
version: 1.2.0-beta
|
version: 1.3.1-beta
|
||||||
repository: https://github.com/GetStream/stream-chat-flutter
|
repository: https://github.com/GetStream/stream-chat-flutter
|
||||||
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,21 @@
|
|||||||
|
## 1.3.1-beta
|
||||||
|
|
||||||
|
- Updated `stream_chat_core` dependency
|
||||||
|
- Fixed minor bugs
|
||||||
|
|
||||||
|
## 1.3.0-beta
|
||||||
|
|
||||||
|
- Added `MessageInputTheme`
|
||||||
|
- Fixed overflow in `MessageInput` animation
|
||||||
|
- Delete only image on imagegallery
|
||||||
|
- Close keyboard after sending a command
|
||||||
|
- Exposed `customAttachmentBuilders` through `MessageListView`
|
||||||
|
- Updated `stream_chat_core` dependency
|
||||||
|
|
||||||
## 1.2.0-beta
|
## 1.2.0-beta
|
||||||
|
|
||||||
- Minor fixes
|
- Minor fixes
|
||||||
- Update stream_chat_core dependency
|
- Updated `stream_chat_core` dependency
|
||||||
|
|
||||||
## 1.1.1-beta
|
## 1.1.1-beta
|
||||||
|
|
||||||
|
|||||||
@@ -25,8 +25,7 @@ dependencies:
|
|||||||
sdk: flutter
|
sdk: flutter
|
||||||
stream_chat_flutter:
|
stream_chat_flutter:
|
||||||
path: ../
|
path: ../
|
||||||
stream_chat_persistence:
|
stream_chat_persistence: ^1.3.0-beta
|
||||||
path: ../../stream_chat_persistence
|
|
||||||
|
|
||||||
# The following adds the Cupertino Icons font to your application.
|
# The following adds the Cupertino Icons font to your application.
|
||||||
# Use with the CupertinoIcons class for iOS style icons.
|
# Use with the CupertinoIcons class for iOS style icons.
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class _ChannelFileDisplayScreenState extends State<ChannelFileDisplayScreen> {
|
|||||||
messageSearchBloc.search(
|
messageSearchBloc.search(
|
||||||
filter: {
|
filter: {
|
||||||
'cid': {
|
'cid': {
|
||||||
r'$in': ['messaging:${StreamChannel.of(context).channel.id}']
|
r'$in': [StreamChannel.of(context).channel.cid]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
messageFilter: {
|
messageFilter: {
|
||||||
@@ -146,7 +146,7 @@ class _ChannelFileDisplayScreenState extends State<ChannelFileDisplayScreen> {
|
|||||||
onEndOfPage: () => messageSearchBloc.loadMore(
|
onEndOfPage: () => messageSearchBloc.loadMore(
|
||||||
filter: {
|
filter: {
|
||||||
'cid': {
|
'cid': {
|
||||||
r'$in': ['messaging:${StreamChannel.of(context).channel.id}']
|
r'$in': [StreamChannel.of(context).channel.cid]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
messageFilter: {
|
messageFilter: {
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
import 'dart:async';
|
|
||||||
import 'dart:convert';
|
|
||||||
|
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_slidable/flutter_slidable.dart';
|
import 'package:flutter_slidable/flutter_slidable.dart';
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ class _ChannelMediaDisplayScreenState extends State<ChannelMediaDisplayScreen> {
|
|||||||
messageSearchBloc.search(
|
messageSearchBloc.search(
|
||||||
filter: {
|
filter: {
|
||||||
'cid': {
|
'cid': {
|
||||||
r'$in': ['messaging:${StreamChannel.of(context).channel.id}']
|
r'$in': [StreamChannel.of(context).channel.cid],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
messageFilter: {
|
messageFilter: {
|
||||||
@@ -169,7 +169,7 @@ class _ChannelMediaDisplayScreenState extends State<ChannelMediaDisplayScreen> {
|
|||||||
onEndOfPage: () => messageSearchBloc.loadMore(
|
onEndOfPage: () => messageSearchBloc.loadMore(
|
||||||
filter: {
|
filter: {
|
||||||
'cid': {
|
'cid': {
|
||||||
r'$in': ['messaging:${StreamChannel.of(context).channel.id}']
|
r'$in': [StreamChannel.of(context).channel.cid]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
messageFilter: {
|
messageFilter: {
|
||||||
|
|||||||
@@ -845,7 +845,9 @@ class ChannelHeaderTheme {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Defines the theme dedicated to the [MessageInput] widget
|
||||||
class MessageInputTheme {
|
class MessageInputTheme {
|
||||||
|
/// Duration of the [MessageInput] send button animation
|
||||||
final Duration sendAnimationDuration;
|
final Duration sendAnimationDuration;
|
||||||
|
|
||||||
/// Background color of [MessageInput] send button
|
/// Background color of [MessageInput] send button
|
||||||
@@ -863,6 +865,7 @@ class MessageInputTheme {
|
|||||||
/// Background color of [MessageInput]
|
/// Background color of [MessageInput]
|
||||||
final Color inputBackground;
|
final Color inputBackground;
|
||||||
|
|
||||||
|
/// Returns a new [MessageInputTheme]
|
||||||
const MessageInputTheme({
|
const MessageInputTheme({
|
||||||
this.sendAnimationDuration,
|
this.sendAnimationDuration,
|
||||||
this.actionButtonColor,
|
this.actionButtonColor,
|
||||||
@@ -872,6 +875,7 @@ class MessageInputTheme {
|
|||||||
this.inputBackground,
|
this.inputBackground,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/// Returns a new [MessageInputTheme] replacing some of its properties
|
||||||
MessageInputTheme copyWith({
|
MessageInputTheme copyWith({
|
||||||
Duration sendAnimationDuration,
|
Duration sendAnimationDuration,
|
||||||
Color inputBackground,
|
Color inputBackground,
|
||||||
@@ -891,6 +895,7 @@ class MessageInputTheme {
|
|||||||
sendButtonIdleColor: sendButtonIdleColor ?? this.sendButtonIdleColor,
|
sendButtonIdleColor: sendButtonIdleColor ?? this.sendButtonIdleColor,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/// Merges [this] [MessageInputTheme] with the [other]
|
||||||
MessageInputTheme merge(MessageInputTheme other) {
|
MessageInputTheme merge(MessageInputTheme other) {
|
||||||
if (other == null) return this;
|
if (other == null) return this;
|
||||||
return copyWith(
|
return copyWith(
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: stream_chat_flutter
|
name: stream_chat_flutter
|
||||||
homepage: https://github.com/GetStream/stream-chat-flutter
|
homepage: https://github.com/GetStream/stream-chat-flutter
|
||||||
description: Stream Chat official Flutter SDK. Build your own chat experience using Dart and Flutter.
|
description: Stream Chat official Flutter SDK. Build your own chat experience using Dart and Flutter.
|
||||||
version: 1.2.0-beta
|
version: 1.3.1-beta
|
||||||
repository: https://github.com/GetStream/stream-chat-flutter
|
repository: https://github.com/GetStream/stream-chat-flutter
|
||||||
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ environment:
|
|||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
stream_chat_flutter_core: ^1.2.0-beta
|
stream_chat_flutter_core: ^1.3.0-beta
|
||||||
flutter_app_badger: ^1.1.2
|
flutter_app_badger: ^1.1.2
|
||||||
photo_view: ^0.10.3
|
photo_view: ^0.10.3
|
||||||
rxdart: ^0.25.0
|
rxdart: ^0.25.0
|
||||||
|
|||||||
@@ -1,3 +1,12 @@
|
|||||||
|
## 1.3.1-beta
|
||||||
|
|
||||||
|
* Update llc dependency
|
||||||
|
|
||||||
|
## 1.3.0-beta
|
||||||
|
|
||||||
|
* Update llc dependency
|
||||||
|
* Minor fixes
|
||||||
|
|
||||||
## 1.2.0-beta
|
## 1.2.0-beta
|
||||||
|
|
||||||
* Update llc dependency
|
* Update llc dependency
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: stream_chat_flutter_core
|
name: stream_chat_flutter_core
|
||||||
homepage: https://github.com/GetStream/stream-chat-flutter
|
homepage: https://github.com/GetStream/stream-chat-flutter
|
||||||
description: Stream Chat official Flutter SDK Core. Build your own chat experience using Dart and Flutter.
|
description: Stream Chat official Flutter SDK Core. Build your own chat experience using Dart and Flutter.
|
||||||
version: 1.2.0-beta
|
version: 1.3.1-beta
|
||||||
repository: https://github.com/GetStream/stream-chat-flutter
|
repository: https://github.com/GetStream/stream-chat-flutter
|
||||||
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
||||||
|
|
||||||
@@ -10,7 +10,7 @@ environment:
|
|||||||
flutter: ">=1.17.0"
|
flutter: ">=1.17.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
stream_chat: ^1.2.0-beta
|
stream_chat: ^1.3.1-beta
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
rxdart: ^0.25.0
|
rxdart: ^0.25.0
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 1.3.0-beta
|
||||||
|
|
||||||
|
* Update llc dependency
|
||||||
|
|
||||||
## 1.2.0-beta
|
## 1.2.0-beta
|
||||||
|
|
||||||
* Update llc dependency
|
* Update llc dependency
|
||||||
|
|||||||
@@ -11,8 +11,7 @@ dependencies:
|
|||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
cupertino_icons: ^1.0.0
|
cupertino_icons: ^1.0.0
|
||||||
stream_chat:
|
stream_chat: ^1.3.0
|
||||||
path: ../../stream_chat
|
|
||||||
stream_chat_persistence:
|
stream_chat_persistence:
|
||||||
path: ../
|
path: ../
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: stream_chat_persistence
|
name: stream_chat_persistence
|
||||||
homepage: https://github.com/GetStream/stream-chat-flutter
|
homepage: https://github.com/GetStream/stream-chat-flutter
|
||||||
description: Official Stream Chat Persistence library. Build your own chat experience using Dart and Flutter.
|
description: Official Stream Chat Persistence library. Build your own chat experience using Dart and Flutter.
|
||||||
version: 1.2.0-beta
|
version: 1.3.0-beta
|
||||||
repository: https://github.com/GetStream/stream-chat-flutter
|
repository: https://github.com/GetStream/stream-chat-flutter
|
||||||
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
||||||
|
|
||||||
@@ -13,8 +13,7 @@ dependencies:
|
|||||||
path: ^1.7.0
|
path: ^1.7.0
|
||||||
path_provider: ^1.6.27
|
path_provider: ^1.6.27
|
||||||
sqlite3_flutter_libs: ^0.4.0+1
|
sqlite3_flutter_libs: ^0.4.0+1
|
||||||
stream_chat:
|
stream_chat: ^1.3.0-beta
|
||||||
path: ../stream_chat
|
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
test: ^1.15.7
|
test: ^1.15.7
|
||||||
|
|||||||
Reference in New Issue
Block a user