-
Notifications
You must be signed in to change notification settings - Fork 63
/
file_sharing.dart
66 lines (63 loc) · 1.91 KB
/
file_sharing.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
part of 'chat.dart';
class _SendFileDialog extends HookConsumerWidget {
const _SendFileDialog(
this.file, {
Key? key,
required this.room,
required this.onSendPressed,
this.partialMessage,
}) : super(key: key);
final File file;
final ChatRoom room;
final String? partialMessage;
final Function(types.PartialText) onSendPressed;
@override
Widget build(BuildContext context, WidgetRef ref) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const SizedBox(height: 20),
Row(
children: [
const SizedBox(width: 20),
const Icon(Icons.insert_drive_file_outlined, size: 40),
const SizedBox(width: 8),
Flexible(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(filesize(file.lengthSync())),
Text(
basename(file.path),
maxLines: 2,
overflow: TextOverflow.ellipsis,
),
],
),
),
const Expanded(child: SizedBox()),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: IconButtonFactory.close(),
),
],
),
const SizedBox(height: 8),
_CustomInput(
initialText: partialMessage,
hintText: AppLocalizations.of(context)!
.chatEmptyMessageHint,
onSendPressed: (desc) {
final worker = ref.read(qaulWorkerProvider);
worker.sendFile(
pathName: file.path,
conversationId: room.conversationId,
description: desc.text);
Navigator.pop(context);
},
sendButtonVisibilityMode: SendButtonVisibilityMode.always,
),
],
);
}
}