♻️ Replaced picker
This commit is contained in:
@@ -4,6 +4,7 @@ import "dart:developer" as developer;
|
|||||||
import "dart:io";
|
import "dart:io";
|
||||||
import "package:dio/dio.dart";
|
import "package:dio/dio.dart";
|
||||||
import "package:easy_localization/easy_localization.dart";
|
import "package:easy_localization/easy_localization.dart";
|
||||||
|
import "package:file_picker/file_picker.dart";
|
||||||
import "package:flutter/foundation.dart";
|
import "package:flutter/foundation.dart";
|
||||||
import "package:flutter/material.dart";
|
import "package:flutter/material.dart";
|
||||||
import "package:go_router/go_router.dart";
|
import "package:go_router/go_router.dart";
|
||||||
@@ -1251,26 +1252,32 @@ class ChatRoomScreen extends HookConsumerWidget {
|
|||||||
}, [id]);
|
}, [id]);
|
||||||
|
|
||||||
Future<void> pickPhotoMedia() async {
|
Future<void> pickPhotoMedia() async {
|
||||||
final result = await ref
|
final result = await FilePicker.platform.pickFiles(
|
||||||
.watch(imagePickerProvider)
|
type: FileType.image,
|
||||||
.pickMultiImage(requestFullMetadata: true);
|
allowMultiple: true,
|
||||||
if (result.isEmpty) return;
|
allowCompression: false,
|
||||||
|
);
|
||||||
|
if (result == null || result.count == 0) return;
|
||||||
attachments.value = [
|
attachments.value = [
|
||||||
...attachments.value,
|
...attachments.value,
|
||||||
...result.map(
|
...result.files.map(
|
||||||
(e) => UniversalFile(data: e, type: UniversalFileType.image),
|
(e) => UniversalFile(data: e, type: UniversalFileType.image),
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> pickVideoMedia() async {
|
Future<void> pickVideoMedia() async {
|
||||||
final result = await ref
|
final result = await FilePicker.platform.pickFiles(
|
||||||
.watch(imagePickerProvider)
|
type: FileType.video,
|
||||||
.pickVideo(source: ImageSource.gallery);
|
allowMultiple: true,
|
||||||
if (result == null) return;
|
allowCompression: false,
|
||||||
|
);
|
||||||
|
if (result == null || result.count == 0) return;
|
||||||
attachments.value = [
|
attachments.value = [
|
||||||
...attachments.value,
|
...attachments.value,
|
||||||
UniversalFile(data: result, type: UniversalFileType.video),
|
...result.files.map(
|
||||||
|
(e) => UniversalFile(data: e, type: UniversalFileType.video),
|
||||||
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:easy_localization/easy_localization.dart';
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
|
import 'package:file_picker/file_picker.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
@@ -388,26 +389,32 @@ class ComposeLogic {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static Future<void> pickPhotoMedia(WidgetRef ref, ComposeState state) async {
|
static Future<void> pickPhotoMedia(WidgetRef ref, ComposeState state) async {
|
||||||
final result = await ref
|
final result = await FilePicker.platform.pickFiles(
|
||||||
.watch(imagePickerProvider)
|
type: FileType.image,
|
||||||
.pickMultiImage(requestFullMetadata: true);
|
allowMultiple: true,
|
||||||
if (result.isEmpty) return;
|
allowCompression: false,
|
||||||
|
);
|
||||||
|
if (result == null || result.count == 0) return;
|
||||||
state.attachments.value = [
|
state.attachments.value = [
|
||||||
...state.attachments.value,
|
...state.attachments.value,
|
||||||
...result.map(
|
...result.files.map(
|
||||||
(e) => UniversalFile(data: e, type: UniversalFileType.image),
|
(e) => UniversalFile(data: e, type: UniversalFileType.image),
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
static Future<void> pickVideoMedia(WidgetRef ref, ComposeState state) async {
|
static Future<void> pickVideoMedia(WidgetRef ref, ComposeState state) async {
|
||||||
final result = await ref
|
final result = await FilePicker.platform.pickFiles(
|
||||||
.watch(imagePickerProvider)
|
type: FileType.video,
|
||||||
.pickVideo(source: ImageSource.gallery);
|
allowMultiple: true,
|
||||||
if (result == null) return;
|
allowCompression: false,
|
||||||
|
);
|
||||||
|
if (result == null || result.count == 0) return;
|
||||||
state.attachments.value = [
|
state.attachments.value = [
|
||||||
...state.attachments.value,
|
...state.attachments.value,
|
||||||
UniversalFile(data: result, type: UniversalFileType.video),
|
...result.files.map(
|
||||||
|
(e) => UniversalFile(data: e, type: UniversalFileType.video),
|
||||||
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user