feat: Upgrade to 2.7.0
This commit is contained in:
parent
211dccc9da
commit
9289b5c890
|
|
@ -1,3 +1,9 @@
|
||||||
|
# 2.7.0
|
||||||
|
|
||||||
|
## Breaking Changes
|
||||||
|
|
||||||
|
* Upgraded Low-Level Native Chat SDK to 8.0.
|
||||||
|
|
||||||
# 2.6.0
|
# 2.6.0
|
||||||
|
|
||||||
## Breaking Changes
|
## Breaking Changes
|
||||||
|
|
|
||||||
|
|
@ -1241,33 +1241,33 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: tencent_cloud_chat_sdk
|
name: tencent_cloud_chat_sdk
|
||||||
sha256: "358e79b51aba5457418d3bb87e0bbd0f088a1eaf4c4463d09bdda93d1d655aa3"
|
sha256: ec9d338fe3aa82b71cd9c46b0ebe54267ae6a79f03d1b4b4c506b121fe64bd5b
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "7.9.5672"
|
version: "8.0.5897"
|
||||||
tencent_cloud_chat_uikit:
|
tencent_cloud_chat_uikit:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
path: ".."
|
path: ".."
|
||||||
relative: true
|
relative: true
|
||||||
source: path
|
source: path
|
||||||
version: "2.6.0+1"
|
version: "2.7.0"
|
||||||
tencent_cloud_uikit_core:
|
tencent_cloud_uikit_core:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: tencent_cloud_uikit_core
|
name: tencent_cloud_uikit_core
|
||||||
sha256: "61a5400b3fe75c00252272469f332e7ec07f6d1932ee636a3f2b919cf9805cb8"
|
sha256: "987e266dec10801510ada00411ddb063de8129bf550d2d25ba32d88afa272a67"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.6.0"
|
version: "1.7.0"
|
||||||
tencent_im_base:
|
tencent_im_base:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: tencent_im_base
|
name: tencent_im_base
|
||||||
sha256: daee1faac70fdf5fa4a53576db4fb7268ba5d897cc036353d3114a31abb76fb1
|
sha256: "08790ad86bc780f071975d62aadf1d9b853a7a84d5e2dfb37fceb6977856fbdc"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.3.775297"
|
version: "8.0.0"
|
||||||
tencent_im_sdk_plugin_desktop:
|
tencent_im_sdk_plugin_desktop:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -1328,10 +1328,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: tim_ui_kit_sticker_plugin
|
name: tim_ui_kit_sticker_plugin
|
||||||
sha256: "1c4164afbe0bd6479faeee70fad328e82666f8b75c8d54382e97fed250452611"
|
sha256: "723152d3c67636c25b3d14eaca2f81a5e2b75b85603a62ddbe0480db0a9d6488"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.0"
|
version: "3.2.0"
|
||||||
transparent_image:
|
transparent_image:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
|
|
||||||
// ignore: unnecessary_import
|
// ignore: unnecessary_import
|
||||||
import 'dart:typed_data';
|
import 'dart:typed_data';
|
||||||
|
|
||||||
|
|
@ -48,7 +47,15 @@ class DesktopControlBarItem {
|
||||||
final String? showName;
|
final String? showName;
|
||||||
final double? size;
|
final double? size;
|
||||||
|
|
||||||
DesktopControlBarItem({required this.item, this.icon, this.color, this.imgPath, this.svgPath, required this.onClick, this.showName, this.size})
|
DesktopControlBarItem(
|
||||||
|
{required this.item,
|
||||||
|
this.icon,
|
||||||
|
this.color,
|
||||||
|
this.imgPath,
|
||||||
|
this.svgPath,
|
||||||
|
required this.onClick,
|
||||||
|
this.showName,
|
||||||
|
this.size})
|
||||||
: assert(icon != null || TencentUtils.checkString(imgPath) != null || TencentUtils.checkString(svgPath) != null);
|
: assert(icon != null || TencentUtils.checkString(imgPath) != null || TencentUtils.checkString(svgPath) != null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -261,8 +268,11 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
}
|
}
|
||||||
|
|
||||||
String getAbstractMessage(V2TimMessage message) {
|
String getAbstractMessage(V2TimMessage message) {
|
||||||
final String? customAbstractMessage = widget.model.abstractMessageBuilder != null ? widget.model.abstractMessageBuilder!(widget.model.repliedMessage!) : null;
|
final String? customAbstractMessage = widget.model.abstractMessageBuilder != null
|
||||||
return customAbstractMessage ?? MessageUtils.getAbstractMessageAsync(widget.model.repliedMessage!, widget.model.groupMemberList ?? []);
|
? widget.model.abstractMessageBuilder!(widget.model.repliedMessage!)
|
||||||
|
: null;
|
||||||
|
return customAbstractMessage ??
|
||||||
|
MessageUtils.getAbstractMessageAsync(widget.model.repliedMessage!, widget.model.groupMemberList ?? []);
|
||||||
}
|
}
|
||||||
|
|
||||||
_buildRepliedMessage(V2TimMessage? repliedMessage) {
|
_buildRepliedMessage(V2TimMessage? repliedMessage) {
|
||||||
|
|
@ -328,8 +338,9 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
entry = null;
|
entry = null;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
initOffset:
|
initOffset: offset != null
|
||||||
offset != null ? Offset(offset.dx, max(offset.dy, 16)) : Offset(MediaQuery.of(context).size.height * 0.5 + 20, MediaQuery.of(context).size.height * 0.5 - 100),
|
? Offset(offset.dx, max(offset.dy, 16))
|
||||||
|
: Offset(MediaQuery.of(context).size.height * 0.5 + 20, MediaQuery.of(context).size.height * 0.5 - 100),
|
||||||
child: Container(
|
child: Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: const BorderRadius.all(Radius.circular(8)),
|
borderRadius: const BorderRadius.all(Radius.circular(8)),
|
||||||
|
|
@ -462,13 +473,16 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
inputElem = html.document.getElementById("__file_picker_web-file-input")?.querySelector("input");
|
inputElem = html.document.getElementById("__file_picker_web-file-input")?.querySelector("input");
|
||||||
fileName = result.files.single.name;
|
fileName = result.files.single.name;
|
||||||
|
|
||||||
MessageUtils.handleMessageError(model.sendFileMessage(inputElement: inputElem, fileName: fileName, convID: convID, convType: convType), context);
|
MessageUtils.handleMessageError(
|
||||||
|
model.sendFileMessage(inputElement: inputElem, fileName: fileName, convID: convID, convType: convType),
|
||||||
|
context);
|
||||||
} else {
|
} else {
|
||||||
File file = File(result.files.single.path!);
|
File file = File(result.files.single.path!);
|
||||||
final int size = file.lengthSync();
|
final int size = file.lengthSync();
|
||||||
final String savePath = file.path;
|
final String savePath = file.path;
|
||||||
|
|
||||||
MessageUtils.handleMessageError(model.sendFileMessage(filePath: savePath, size: size, convID: convID, convType: convType), context);
|
MessageUtils.handleMessageError(
|
||||||
|
model.sendFileMessage(filePath: savePath, size: size, convID: convID, convType: convType), context);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw TypeError();
|
throw TypeError();
|
||||||
|
|
@ -490,7 +504,9 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
final alignBox = key.currentContext?.findRenderObject() as RenderBox?;
|
final alignBox = key.currentContext?.findRenderObject() as RenderBox?;
|
||||||
var offset = alignBox?.localToGlobal(Offset.zero);
|
var offset = alignBox?.localToGlobal(Offset.zero);
|
||||||
final double? dx = (offset?.dx != null) ? offset!.dx : null;
|
final double? dx = (offset?.dx != null) ? offset!.dx : null;
|
||||||
final double? dy = (offset?.dy != null && alignBox?.size.height != null) ? offset!.dy - (widget.chatConfig.desktopStickerPanelHeight + 20) : null;
|
final double? dy = (offset?.dy != null && alignBox?.size.height != null)
|
||||||
|
? offset!.dy - (widget.chatConfig.desktopStickerPanelHeight + 20)
|
||||||
|
: null;
|
||||||
e.onClick((dx != null && dy != null) ? Offset(dx, dy) : null);
|
e.onClick((dx != null && dy != null) ? Offset(dx, dy) : null);
|
||||||
},
|
},
|
||||||
child: Tooltip(
|
child: Tooltip(
|
||||||
|
|
@ -545,7 +561,10 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
inputElem = html.document.getElementById("__image_picker_web-file-input")?.querySelector("input");
|
inputElem = html.document.getElementById("__image_picker_web-file-input")?.querySelector("input");
|
||||||
final convID = widget.conversationID;
|
final convID = widget.conversationID;
|
||||||
final convType = widget.conversationType;
|
final convType = widget.conversationType;
|
||||||
MessageUtils.handleMessageError(model.sendImageMessage(inputElement: inputElem, imagePath: tempFile?.path, convID: convID, convType: convType), context);
|
MessageUtils.handleMessageError(
|
||||||
|
model.sendImageMessage(
|
||||||
|
inputElement: inputElem, imagePath: tempFile?.path, convID: convID, convType: convType),
|
||||||
|
context);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// ignore: avoid_print
|
// ignore: avoid_print
|
||||||
outputLogger.i("_sendFileErr: ${e.toString()}");
|
outputLogger.i("_sendFileErr: ${e.toString()}");
|
||||||
|
|
@ -561,7 +580,8 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
fileContent = videoContent;
|
fileContent = videoContent;
|
||||||
|
|
||||||
if (fileName!.split(".")[fileName!.split(".").length - 1] != "mp4") {
|
if (fileName!.split(".")[fileName!.split(".").length - 1] != "mp4") {
|
||||||
onTIMCallback(TIMCallback(type: TIMCallbackType.INFO, infoRecommendText: TIM_t("视频消息仅限 mp4 格式"), infoCode: 6660412));
|
onTIMCallback(
|
||||||
|
TIMCallback(type: TIMCallbackType.INFO, infoRecommendText: TIM_t("视频消息仅限 mp4 格式"), infoCode: 6660412));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -569,7 +589,10 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
inputElem = html.document.getElementById("__image_picker_web-file-input")?.querySelector("input");
|
inputElem = html.document.getElementById("__image_picker_web-file-input")?.querySelector("input");
|
||||||
final convID = widget.conversationID;
|
final convID = widget.conversationID;
|
||||||
final convType = widget.conversationType;
|
final convType = widget.conversationType;
|
||||||
MessageUtils.handleMessageError(model.sendVideoMessage(inputElement: inputElem, videoPath: tempFile?.path, convID: convID, convType: convType), context);
|
MessageUtils.handleMessageError(
|
||||||
|
model.sendVideoMessage(
|
||||||
|
inputElement: inputElem, videoPath: tempFile?.path, convID: convID, convType: convType),
|
||||||
|
context);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// ignore: avoid_print
|
// ignore: avoid_print
|
||||||
outputLogger.i("_sendFileErr: ${e.toString()}");
|
outputLogger.i("_sendFileErr: ${e.toString()}");
|
||||||
|
|
@ -582,7 +605,8 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
final originFile = await asset.originFile;
|
final originFile = await asset.originFile;
|
||||||
final size = await originFile!.length();
|
final size = await originFile!.length();
|
||||||
if (size >= 104857600) {
|
if (size >= 104857600) {
|
||||||
onTIMCallback(TIMCallback(type: TIMCallbackType.INFO, infoRecommendText: TIM_t("发送失败,视频不能大于100MB"), infoCode: 6660405));
|
onTIMCallback(
|
||||||
|
TIMCallback(type: TIMCallbackType.INFO, infoRecommendText: TIM_t("发送失败,视频不能大于100MB"), infoCode: 6660405));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -602,7 +626,10 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
quality: 100,
|
quality: 100,
|
||||||
height: 128,
|
height: 128,
|
||||||
);
|
);
|
||||||
MessageUtils.handleMessageError(model.sendVideoMessage(videoPath: filePath, duration: duration, snapshotPath: tempPath, convID: convID, convType: convType), context);
|
MessageUtils.handleMessageError(
|
||||||
|
model.sendVideoMessage(
|
||||||
|
videoPath: filePath, duration: duration, snapshotPath: tempPath, convID: convID, convType: convType),
|
||||||
|
context);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
onTIMCallback(TIMCallback(type: TIMCallbackType.INFO, infoRecommendText: TIM_t("视频文件异常"), infoCode: 6660415));
|
onTIMCallback(TIMCallback(type: TIMCallbackType.INFO, infoRecommendText: TIM_t("视频文件异常"), infoCode: 6660415));
|
||||||
}
|
}
|
||||||
|
|
@ -623,7 +650,8 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
final type = asset.type;
|
final type = asset.type;
|
||||||
if (filePath != null) {
|
if (filePath != null) {
|
||||||
if (type == AssetType.image) {
|
if (type == AssetType.image) {
|
||||||
MessageUtils.handleMessageError(model.sendImageMessage(imagePath: filePath, convID: convID, convType: convType), context);
|
MessageUtils.handleMessageError(
|
||||||
|
model.sendImageMessage(imagePath: filePath, convID: convID, convType: convType), context);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == AssetType.video) {
|
if (type == AssetType.video) {
|
||||||
|
|
@ -640,10 +668,13 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
if (result != null && result.files.isNotEmpty) {
|
if (result != null && result.files.isNotEmpty) {
|
||||||
File file = File(result.files.single.path!);
|
File file = File(result.files.single.path!);
|
||||||
final String savePath = file.path;
|
final String savePath = file.path;
|
||||||
final String type = TencentUtils.getFileType((savePath.split(".")[savePath.split(".").length - 1]).toLowerCase()).split("/")[0];
|
final String type =
|
||||||
|
TencentUtils.getFileType((savePath.split(".")[savePath.split(".").length - 1]).toLowerCase())
|
||||||
|
.split("/")[0];
|
||||||
|
|
||||||
if (type == "image") {
|
if (type == "image") {
|
||||||
MessageUtils.handleMessageError(model.sendImageMessage(imagePath: savePath, convID: convID, convType: convType), context);
|
MessageUtils.handleMessageError(
|
||||||
|
model.sendImageMessage(imagePath: savePath, convID: convID, convType: convType), context);
|
||||||
} else if (type == "video") {
|
} else if (type == "video") {
|
||||||
String tempPath = (await getTemporaryDirectory()).path + p.basename(savePath) + ".jpeg";
|
String tempPath = (await getTemporaryDirectory()).path + p.basename(savePath) + ".jpeg";
|
||||||
await plugin.getVideoThumbnail(
|
await plugin.getVideoThumbnail(
|
||||||
|
|
@ -655,7 +686,9 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
quality: 100,
|
quality: 100,
|
||||||
height: 128,
|
height: 128,
|
||||||
);
|
);
|
||||||
MessageUtils.handleMessageError(model.sendVideoMessage(videoPath: savePath, convID: convID, convType: convType, snapshotPath: tempPath), context);
|
MessageUtils.handleMessageError(
|
||||||
|
model.sendVideoMessage(videoPath: savePath, convID: convID, convType: convType, snapshotPath: tempPath),
|
||||||
|
context);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw TypeError();
|
throw TypeError();
|
||||||
|
|
@ -669,62 +702,69 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
}
|
}
|
||||||
|
|
||||||
_sendImageWithConfirmation({String? fileName, Size? fileSize, required String filePath}) async {
|
_sendImageWithConfirmation({String? fileName, Size? fileSize, required String filePath}) async {
|
||||||
final option1 = widget.currentConversation.showName ?? (widget.conversationType == ConvType.group ? TIM_t("群聊") : TIM_t("对方"));
|
final option1 =
|
||||||
|
widget.currentConversation.showName ?? (widget.conversationType == ConvType.group ? TIM_t("群聊") : TIM_t("对方"));
|
||||||
final size = fileSize ?? await ScreenshotHelper.getImageSize(filePath);
|
final size = fileSize ?? await ScreenshotHelper.getImageSize(filePath);
|
||||||
|
|
||||||
TUIKitWidePopup.showPopupWindow(
|
TUIKitWidePopup.showPopupWindow(
|
||||||
operationKey: TUIKitWideModalOperationKey.beforeSendScreenShot,
|
operationKey: TUIKitWideModalOperationKey.beforeSendScreenShot,
|
||||||
context: context,
|
context: context,
|
||||||
isDarkBackground: false,
|
isDarkBackground: false,
|
||||||
width: 500,
|
width: 500,
|
||||||
height: min(500, size.height / 2 + 140),
|
height: min(500, size.height / 2 + 140),
|
||||||
title: TIM_t_para("发送给{{option1}}", "发送给$option1")(option1: option1),
|
title: TIM_t_para("发送给{{option1}}", "发送给$option1")(option1: option1),
|
||||||
child: (closeFunc) => Container(
|
child: (closeFunc) => Container(
|
||||||
padding: const EdgeInsets.all(16),
|
padding: const EdgeInsets.all(16),
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: min(360, size.height / 2),
|
height: min(360, size.height / 2),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
launchUrl(PlatformUtils().isWeb ? Uri.parse(filePath) : Uri.file(filePath));
|
launchUrl(PlatformUtils().isWeb ? Uri.parse(filePath) : Uri.file(filePath));
|
||||||
},
|
},
|
||||||
child: PlatformUtils().isWeb
|
child: PlatformUtils().isWeb
|
||||||
? Image.network(
|
? Image.network(
|
||||||
filePath,
|
filePath,
|
||||||
height: min(360, size.height / 2),
|
height: min(360, size.height / 2),
|
||||||
)
|
)
|
||||||
: Image.file(
|
: Image.file(
|
||||||
File(filePath),
|
File(filePath),
|
||||||
height: min(360, size.height / 2),
|
height: min(360, size.height / 2),
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
OutlinedButton(
|
|
||||||
onPressed: () {
|
|
||||||
closeFunc();
|
|
||||||
},
|
|
||||||
child: Text(TIM_t("取消"))),
|
|
||||||
const SizedBox(
|
|
||||||
width: 20,
|
|
||||||
),
|
),
|
||||||
ElevatedButton(
|
|
||||||
onPressed: () {
|
|
||||||
MessageUtils.handleMessageError(
|
|
||||||
widget.model.sendImageMessage(imagePath: filePath, imageName: fileName, convID: widget.conversationID, convType: widget.conversationType), context);
|
|
||||||
closeFunc();
|
|
||||||
},
|
|
||||||
child: Text(TIM_t("发送")))
|
|
||||||
],
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
));
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
children: [
|
||||||
|
OutlinedButton(
|
||||||
|
onPressed: () {
|
||||||
|
closeFunc();
|
||||||
|
},
|
||||||
|
child: Text(TIM_t("取消"))),
|
||||||
|
const SizedBox(
|
||||||
|
width: 20,
|
||||||
|
),
|
||||||
|
ElevatedButton(
|
||||||
|
onPressed: () {
|
||||||
|
MessageUtils.handleMessageError(
|
||||||
|
widget.model.sendImageMessage(
|
||||||
|
imagePath: filePath,
|
||||||
|
imageName: fileName,
|
||||||
|
convID: widget.conversationID,
|
||||||
|
convType: widget.conversationType),
|
||||||
|
context);
|
||||||
|
closeFunc();
|
||||||
|
},
|
||||||
|
child: Text(TIM_t("发送")))
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
_sendScreenShot() async {
|
_sendScreenShot() async {
|
||||||
|
|
@ -798,7 +838,10 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
child: (onClose) => TIMUIKitSearchMsgDetail(
|
child: (onClose) => TIMUIKitSearchMsgDetail(
|
||||||
currentConversation: widget.currentConversation,
|
currentConversation: widget.currentConversation,
|
||||||
keyword: '',
|
keyword: '',
|
||||||
initMessageList: widget.model.getOriginMessageList().getRange(0, min(widget.model.getOriginMessageList().length, 100)).toList(),
|
initMessageList: widget.model
|
||||||
|
.getOriginMessageList()
|
||||||
|
.getRange(0, min(widget.model.getOriginMessageList().length, 100))
|
||||||
|
.toList(),
|
||||||
onTapConversation: (V2TimConversation conversation, V2TimMessage? message) {},
|
onTapConversation: (V2TimConversation conversation, V2TimMessage? message) {},
|
||||||
),
|
),
|
||||||
theme: widget.theme);
|
theme: widget.theme);
|
||||||
|
|
@ -809,7 +852,10 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Widget> generateControlBar(TUIChatSeparateViewModel model, TUITheme theme) {
|
List<Widget> generateControlBar(TUIChatSeparateViewModel model, TUITheme theme) {
|
||||||
final List<DesktopControlBarItem> itemsList = [...defaultControlBarItems, ...(widget.chatConfig.additionalDesktopControlBarItems ?? [])];
|
final List<DesktopControlBarItem> itemsList = [
|
||||||
|
...defaultControlBarItems,
|
||||||
|
...(widget.chatConfig.additionalDesktopControlBarItems ?? [])
|
||||||
|
];
|
||||||
|
|
||||||
return generateBarIcons(itemsList, theme);
|
return generateBarIcons(itemsList, theme);
|
||||||
}
|
}
|
||||||
|
|
@ -934,7 +980,9 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
hintStyle: const TextStyle(
|
hintStyle: const TextStyle(
|
||||||
color: Color(0xffAEA4A3),
|
color: Color(0xffAEA4A3),
|
||||||
),
|
),
|
||||||
fillColor: widget.backgroundColor ?? theme.desktopChatMessageInputBgColor ?? hexToColor("fafafa"),
|
fillColor: widget.backgroundColor ??
|
||||||
|
theme.desktopChatMessageInputBgColor ??
|
||||||
|
hexToColor("fafafa"),
|
||||||
filled: true,
|
filled: true,
|
||||||
isDense: true,
|
isDense: true,
|
||||||
hintText: widget.hintText ?? '',
|
hintText: widget.hintText ?? '',
|
||||||
|
|
@ -943,8 +991,13 @@ class _TIMUIKitTextFieldLayoutWideState extends TIMUIKitState<TIMUIKitTextFieldL
|
||||||
specialTextSpanBuilder: PlatformUtils().isWeb
|
specialTextSpanBuilder: PlatformUtils().isWeb
|
||||||
? null
|
? null
|
||||||
: DefaultSpecialTextSpanBuilder(
|
: DefaultSpecialTextSpanBuilder(
|
||||||
isUseQQPackage: (widget.model.chatConfig.stickerPanelConfig?.useTencentCloudChatStickerPackage ?? true) || widget.isUseDefaultEmoji,
|
isUseQQPackage: (widget.model.chatConfig.stickerPanelConfig
|
||||||
isUseTencentCloudChatPackage: widget.model.chatConfig.stickerPanelConfig?.useTencentCloudChatStickerPackage ?? true,
|
?.useTencentCloudChatStickerPackage ??
|
||||||
|
true) ||
|
||||||
|
widget.isUseDefaultEmoji,
|
||||||
|
isUseTencentCloudChatPackage:
|
||||||
|
widget.model.chatConfig.stickerPanelConfig?.useTencentCloudChatStickerPackage ??
|
||||||
|
true,
|
||||||
customEmojiStickerList: widget.customEmojiStickerList,
|
customEmojiStickerList: widget.customEmojiStickerList,
|
||||||
showAtBackground: true,
|
showAtBackground: true,
|
||||||
)),
|
)),
|
||||||
|
|
|
||||||
16
pubspec.lock
16
pubspec.lock
|
|
@ -1316,26 +1316,26 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: tencent_cloud_chat_sdk
|
name: tencent_cloud_chat_sdk
|
||||||
sha256: "358e79b51aba5457418d3bb87e0bbd0f088a1eaf4c4463d09bdda93d1d655aa3"
|
sha256: ec9d338fe3aa82b71cd9c46b0ebe54267ae6a79f03d1b4b4c506b121fe64bd5b
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "7.9.5672"
|
version: "8.0.5897"
|
||||||
tencent_cloud_uikit_core:
|
tencent_cloud_uikit_core:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: tencent_cloud_uikit_core
|
name: tencent_cloud_uikit_core
|
||||||
sha256: "61a5400b3fe75c00252272469f332e7ec07f6d1932ee636a3f2b919cf9805cb8"
|
sha256: "987e266dec10801510ada00411ddb063de8129bf550d2d25ba32d88afa272a67"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.6.0"
|
version: "1.7.0"
|
||||||
tencent_im_base:
|
tencent_im_base:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: tencent_im_base
|
name: tencent_im_base
|
||||||
sha256: daee1faac70fdf5fa4a53576db4fb7268ba5d897cc036353d3114a31abb76fb1
|
sha256: "08790ad86bc780f071975d62aadf1d9b853a7a84d5e2dfb37fceb6977856fbdc"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.3.775297"
|
version: "8.0.0"
|
||||||
tencent_keyboard_visibility:
|
tencent_keyboard_visibility:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -1372,10 +1372,10 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: tim_ui_kit_sticker_plugin
|
name: tim_ui_kit_sticker_plugin
|
||||||
sha256: "1c4164afbe0bd6479faeee70fad328e82666f8b75c8d54382e97fed250452611"
|
sha256: "723152d3c67636c25b3d14eaca2f81a5e2b75b85603a62ddbe0480db0a9d6488"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.0"
|
version: "3.2.0"
|
||||||
timing:
|
timing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
name: tencent_cloud_chat_uikit
|
name: tencent_cloud_chat_uikit
|
||||||
description: A powerful chat UI component library and business logic for Tencent Cloud Chat, creating seamless in-app chat modules for delightful user experiences.
|
description: A powerful chat UI component library and business logic for Tencent Cloud Chat, creating seamless in-app chat modules for delightful user experiences.
|
||||||
version: 2.6.0+2
|
version: 2.7.0
|
||||||
homepage: https://trtc.io/products/chat?utm_source=gfs&utm_medium=link&utm_campaign=%E6%B8%A0%E9%81%93&_channel_track_key=k6WgfCKn
|
homepage: https://trtc.io/products/chat?utm_source=gfs&utm_medium=link&utm_campaign=%E6%B8%A0%E9%81%93&_channel_track_key=k6WgfCKn
|
||||||
repository: https://github.com/TencentCloud/chat-uikit-flutter
|
repository: https://github.com/TencentCloud/chat-uikit-flutter
|
||||||
documentation: https://comm.qq.com/im/doc/flutter/en/TUIKit/readme.html
|
documentation: https://comm.qq.com/im/doc/flutter/en/TUIKit/readme.html
|
||||||
|
|
@ -61,8 +61,8 @@ dependencies:
|
||||||
uuid: ^3.0.6
|
uuid: ^3.0.6
|
||||||
open_file: ^3.3.2
|
open_file: ^3.3.2
|
||||||
tencent_keyboard_visibility: ^1.0.1
|
tencent_keyboard_visibility: ^1.0.1
|
||||||
tim_ui_kit_sticker_plugin: ^3.1.0
|
tim_ui_kit_sticker_plugin: ^3.2.0
|
||||||
tencent_im_base: ^3.3.775297
|
tencent_im_base: ^8.0.0
|
||||||
fc_native_video_thumbnail: any
|
fc_native_video_thumbnail: any
|
||||||
path: ^1.8.1
|
path: ^1.8.1
|
||||||
tencent_cloud_uikit_core: ^1.6.0
|
tencent_cloud_uikit_core: ^1.6.0
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue