Chat attachments

This commit is contained in:
2024-05-26 21:03:25 +08:00
parent 9cb2b9122e
commit c3bf0a19b8
5 changed files with 27 additions and 5 deletions

View File

@ -4,6 +4,7 @@ import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:get/get.dart';
import 'package:solian/models/message.dart';
import 'package:solian/widgets/account/account_avatar.dart';
import 'package:solian/widgets/attachments/attachment_list.dart';
import 'package:timeago/timeago.dart' show format;
import 'package:url_launcher/url_launcher_string.dart';
@ -136,7 +137,11 @@ class ChatMessage extends StatelessWidget {
),
),
],
),
).paddingSymmetric(horizontal: 12),
AttachmentList(
parentId: item.uuid,
attachmentsId: item.attachments ?? List.empty(),
).paddingSymmetric(vertical: 4),
],
);
}

View File

@ -6,6 +6,7 @@ import 'package:solian/models/channel.dart';
import 'package:solian/models/message.dart';
import 'package:solian/providers/auth.dart';
import 'package:solian/services.dart';
import 'package:solian/widgets/attachments/attachment_publish.dart';
import 'package:uuid/uuid.dart';
class ChatMessageInput extends StatefulWidget {
@ -34,6 +35,17 @@ class _ChatMessageInputState extends State<ChatMessageInput> {
List<int> _attachments = List.empty(growable: true);
void showAttachments() {
showModalBottomSheet(
context: context,
builder: (context) => AttachmentPublishingPopup(
usage: 'm.attachment',
current: _attachments,
onUpdate: (value) => _attachments = value,
),
);
}
Map<String, dynamic> encodeMessage(String content) {
// TODO Impl E2EE
@ -144,6 +156,11 @@ class _ChatMessageInputState extends State<ChatMessageInput> {
FocusManager.instance.primaryFocus?.unfocus(),
),
),
IconButton(
icon: const Icon(Icons.attach_file),
color: Colors.teal,
onPressed: () => showAttachments(),
),
IconButton(
icon: const Icon(Icons.send),
color: Theme.of(context).colorScheme.primary,