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