💄 Optimize attachment editor controls
This commit is contained in:
		| @@ -459,5 +459,5 @@ | |||||||
|   "friendAdd": "添加好友", |   "friendAdd": "添加好友", | ||||||
|   "blockUser": "屏蔽用户", |   "blockUser": "屏蔽用户", | ||||||
|   "unblockUser": "解除屏蔽用户", |   "unblockUser": "解除屏蔽用户", | ||||||
|   "learMoreAboutPerson": "了解关于 TA 的更多" |   "learnMoreAboutPerson": "了解关于 TA 的更多" | ||||||
| } | } | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ class Attachment { | |||||||
|   String alt; |   String alt; | ||||||
|   String mimetype; |   String mimetype; | ||||||
|   String hash; |   String hash; | ||||||
|   String destination; |   int destination; | ||||||
|   bool isAnalyzed; |   bool isAnalyzed; | ||||||
|   bool isUploaded; |   bool isUploaded; | ||||||
|   Map<String, dynamic>? metadata; |   Map<String, dynamic>? metadata; | ||||||
|   | |||||||
| @@ -36,7 +36,7 @@ Attachment _$AttachmentFromJson(Map<String, dynamic> json) => Attachment( | |||||||
|       alt: json['alt'] as String, |       alt: json['alt'] as String, | ||||||
|       mimetype: json['mimetype'] as String, |       mimetype: json['mimetype'] as String, | ||||||
|       hash: json['hash'] as String, |       hash: json['hash'] as String, | ||||||
|       destination: json['destination'] as String, |       destination: (json['destination'] as num).toInt(), | ||||||
|       isAnalyzed: json['is_analyzed'] as bool, |       isAnalyzed: json['is_analyzed'] as bool, | ||||||
|       isUploaded: json['is_uploaded'] as bool, |       isUploaded: json['is_uploaded'] as bool, | ||||||
|       metadata: json['metadata'] as Map<String, dynamic>?, |       metadata: json['metadata'] as Map<String, dynamic>?, | ||||||
|   | |||||||
| @@ -744,8 +744,8 @@ class _AttachmentEditorPopupState extends State<AttachmentEditorPopup> { | |||||||
|               return IgnorePointer( |               return IgnorePointer( | ||||||
|                 ignoring: _uploadController.isUploading.value, |                 ignoring: _uploadController.isUploading.value, | ||||||
|                 child: Container( |                 child: Container( | ||||||
|                   height: 64, |  | ||||||
|                   width: MediaQuery.of(context).size.width, |                   width: MediaQuery.of(context).size.width, | ||||||
|  |                   padding: const EdgeInsets.all(8), | ||||||
|                   decoration: BoxDecoration( |                   decoration: BoxDecoration( | ||||||
|                     border: Border( |                     border: Border( | ||||||
|                       top: BorderSide( |                       top: BorderSide( | ||||||
| @@ -754,67 +754,72 @@ class _AttachmentEditorPopupState extends State<AttachmentEditorPopup> { | |||||||
|                       ), |                       ), | ||||||
|                     ), |                     ), | ||||||
|                   ), |                   ), | ||||||
|                   child: SingleChildScrollView( |                   child: Wrap( | ||||||
|                     scrollDirection: Axis.horizontal, |                     spacing: 8, | ||||||
|                     child: Wrap( |                     runSpacing: 8, | ||||||
|                       spacing: 8, |                     alignment: WrapAlignment.center, | ||||||
|                       runSpacing: 0, |                     runAlignment: WrapAlignment.center, | ||||||
|                       alignment: WrapAlignment.center, |                     children: [ | ||||||
|                       runAlignment: WrapAlignment.center, |                       if ((PlatformInfo.isDesktop || | ||||||
|                       children: [ |                               PlatformInfo.isIOS || | ||||||
|                         if ((PlatformInfo.isDesktop || |                               PlatformInfo.isWeb) && | ||||||
|                                 PlatformInfo.isIOS || |                           !widget.imageOnly) | ||||||
|                                 PlatformInfo.isWeb) && |                         IconButton( | ||||||
|                             !widget.imageOnly) |                           icon: const Icon(Icons.paste), | ||||||
|                           ElevatedButton.icon( |                           tooltip: 'attachmentAddClipboard'.tr, | ||||||
|                             icon: const Icon(Icons.paste), |  | ||||||
|                             label: Text('attachmentAddClipboard'.tr), |  | ||||||
|                             style: const ButtonStyle(visualDensity: density), |  | ||||||
|                             onPressed: () => _pasteFileToUpload(), |  | ||||||
|                           ), |  | ||||||
|                         ElevatedButton.icon( |  | ||||||
|                           icon: const Icon(Icons.add_photo_alternate), |  | ||||||
|                           label: Text('attachmentAddGalleryPhoto'.tr), |  | ||||||
|                           style: const ButtonStyle(visualDensity: density), |                           style: const ButtonStyle(visualDensity: density), | ||||||
|                           onPressed: () => _pickPhotoToUpload(), |                           color: Theme.of(context).colorScheme.primary, | ||||||
|  |                           onPressed: () => _pasteFileToUpload(), | ||||||
|                         ), |                         ), | ||||||
|                         if (!widget.imageOnly) |                       IconButton( | ||||||
|                           ElevatedButton.icon( |                         icon: const Icon(Icons.add_photo_alternate), | ||||||
|                             icon: const Icon(Icons.add_road), |                         tooltip: 'attachmentAddGalleryPhoto'.tr, | ||||||
|                             label: Text('attachmentAddGalleryVideo'.tr), |                         style: const ButtonStyle(visualDensity: density), | ||||||
|                             style: const ButtonStyle(visualDensity: density), |                         color: Theme.of(context).colorScheme.primary, | ||||||
|                             onPressed: () => _pickVideoToUpload(), |                         onPressed: () => _pickPhotoToUpload(), | ||||||
|                           ), |                       ), | ||||||
|                         ElevatedButton.icon( |                       if (!widget.imageOnly) | ||||||
|                           icon: const Icon(Icons.photo_camera_back), |                         IconButton( | ||||||
|                           label: Text('attachmentAddCameraPhoto'.tr), |                           icon: const Icon(Icons.add_road), | ||||||
|  |                           tooltip: 'attachmentAddGalleryVideo'.tr, | ||||||
|                           style: const ButtonStyle(visualDensity: density), |                           style: const ButtonStyle(visualDensity: density), | ||||||
|  |                           color: Theme.of(context).colorScheme.primary, | ||||||
|  |                           onPressed: () => _pickVideoToUpload(), | ||||||
|  |                         ), | ||||||
|  |                       if (PlatformInfo.isMobile) | ||||||
|  |                         IconButton( | ||||||
|  |                           icon: const Icon(Icons.photo_camera_back), | ||||||
|  |                           tooltip: 'attachmentAddCameraPhoto'.tr, | ||||||
|  |                           style: const ButtonStyle(visualDensity: density), | ||||||
|  |                           color: Theme.of(context).colorScheme.primary, | ||||||
|                           onPressed: () => _takeMediaToUpload(false), |                           onPressed: () => _takeMediaToUpload(false), | ||||||
|                         ), |                         ), | ||||||
|                         if (!widget.imageOnly) |                       if (!widget.imageOnly && PlatformInfo.isMobile) | ||||||
|                           ElevatedButton.icon( |                         IconButton( | ||||||
|                             icon: const Icon(Icons.video_camera_back_outlined), |                           icon: const Icon(Icons.video_camera_back_outlined), | ||||||
|                             label: Text('attachmentAddCameraVideo'.tr), |                           tooltip: 'attachmentAddCameraVideo'.tr, | ||||||
|                             style: const ButtonStyle(visualDensity: density), |                           style: const ButtonStyle(visualDensity: density), | ||||||
|                             onPressed: () => _takeMediaToUpload(true), |                           color: Theme.of(context).colorScheme.primary, | ||||||
|                           ), |                           onPressed: () => _takeMediaToUpload(true), | ||||||
|                         if (!widget.imageOnly) |                         ), | ||||||
|                           ElevatedButton.icon( |                       if (!widget.imageOnly) | ||||||
|                             icon: const Icon(Icons.file_present_rounded), |                         IconButton( | ||||||
|                             label: Text('attachmentAddFile'.tr), |                           icon: const Icon(Icons.file_present_rounded), | ||||||
|                             style: const ButtonStyle(visualDensity: density), |                           tooltip: 'attachmentAddFile'.tr, | ||||||
|                             onPressed: () => _pickFileToUpload(), |                           style: const ButtonStyle(visualDensity: density), | ||||||
|                           ), |                           color: Theme.of(context).colorScheme.primary, | ||||||
|                         if (!widget.imageOnly) |                           onPressed: () => _pickFileToUpload(), | ||||||
|                           ElevatedButton.icon( |                         ), | ||||||
|                             icon: const Icon(Icons.link), |                       if (!widget.imageOnly) | ||||||
|                             label: Text('attachmentAddFile'.tr), |                         IconButton( | ||||||
|                             style: const ButtonStyle(visualDensity: density), |                           icon: const Icon(Icons.link), | ||||||
|                             onPressed: () => _linkAttachments(), |                           tooltip: 'attachmentAddLink'.tr, | ||||||
|                           ), |                           style: const ButtonStyle(visualDensity: density), | ||||||
|                       ], |                           color: Theme.of(context).colorScheme.primary, | ||||||
|                     ).paddingSymmetric(horizontal: 12), |                           onPressed: () => _linkAttachments(), | ||||||
|                   ), |                         ), | ||||||
|  |                     ], | ||||||
|  |                   ).paddingSymmetric(horizontal: 12), | ||||||
|                 ) |                 ) | ||||||
|                     .animate( |                     .animate( | ||||||
|                       target: _uploadController.isUploading.value ? 0 : 1, |                       target: _uploadController.isUploading.value ? 0 : 1, | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ name: solian | |||||||
| description: "The Solar Network App" | description: "The Solar Network App" | ||||||
| publish_to: "none" | publish_to: "none" | ||||||
|  |  | ||||||
| version: 1.2.4+1 | version: 1.2.4+2 | ||||||
|  |  | ||||||
| environment: | environment: | ||||||
|   sdk: ">=3.3.4 <4.0.0" |   sdk: ">=3.3.4 <4.0.0" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user