diff --git a/assets/translations/en-US.json b/assets/translations/en-US.json index 7ffd480..cfde366 100644 --- a/assets/translations/en-US.json +++ b/assets/translations/en-US.json @@ -333,6 +333,7 @@ "addAttachmentFromRandomId": "Link via RID", "attachmentDetailInfo": "Attachment details", "attachmentPastedImage": "Pasted Image", + "attachmentInsertedImage": "Inserted Image", "attachmentInsertLink": "Insert Link", "attachmentSetAsPostThumbnail": "Set as post thumbnail", "attachmentUnsetAsPostThumbnail": "Unset as post thumbnail", diff --git a/assets/translations/zh-CN.json b/assets/translations/zh-CN.json index ce70973..191c13b 100644 --- a/assets/translations/zh-CN.json +++ b/assets/translations/zh-CN.json @@ -331,6 +331,7 @@ "addAttachmentFromRandomId": "通过访问 ID 链接", "attachmentDetailInfo": "附件详细信息", "attachmentPastedImage": "粘贴的图片", + "attachmentInsertedImage": "插入的图片", "attachmentInsertLink": "插入连接", "attachmentSetAsPostThumbnail": "设置为帖子缩略图", "attachmentUnsetAsPostThumbnail": "取消设置为帖子缩略图", diff --git a/lib/controllers/post_write_controller.dart b/lib/controllers/post_write_controller.dart index 7c5e50a..5e04851 100644 --- a/lib/controllers/post_write_controller.dart +++ b/lib/controllers/post_write_controller.dart @@ -158,6 +158,14 @@ class PostWriteController extends ChangeNotifier { final TextEditingController aliasController = TextEditingController(); final TextEditingController rewardController = TextEditingController(); + ContentInsertionConfiguration get contentInsertionConfiguration => ContentInsertionConfiguration( + onContentInserted: (KeyboardInsertedContent content) { + if (content.hasData) { + addAttachments([PostWriteMedia.fromBytes(content.data!, 'attachmentInsertedImage'.tr(), SnMediaType.image)]); + } + }, + ); + bool _temporarySaveActive = false; PostWriteController({bool doLoadFromTemporary = true}) { diff --git a/lib/screens/post/post_editor.dart b/lib/screens/post/post_editor.dart index 63f656a..603928b 100644 --- a/lib/screens/post/post_editor.dart +++ b/lib/screens/post/post_editor.dart @@ -602,6 +602,7 @@ class _PostStoryEditor extends StatelessWidget { border: InputBorder.none, ), onTapOutside: (_) => FocusManager.instance.primaryFocus?.unfocus(), + contentInsertionConfiguration: controller.contentInsertionConfiguration, ), ], ), @@ -665,6 +666,7 @@ class _PostArticleEditor extends StatelessWidget { keyboardType: TextInputType.multiline, style: Theme.of(context).textTheme.bodyLarge, onTapOutside: (_) => FocusManager.instance.primaryFocus?.unfocus(), + contentInsertionConfiguration: controller.contentInsertionConfiguration, ).padding(horizontal: 16), const Gap(4), ]; @@ -692,6 +694,7 @@ class _PostArticleEditor extends StatelessWidget { border: InputBorder.none, ), onTapOutside: (_) => FocusManager.instance.primaryFocus?.unfocus(), + contentInsertionConfiguration: controller.contentInsertionConfiguration, ), ), const Gap(8), @@ -726,6 +729,7 @@ class _PostArticleEditor extends StatelessWidget { border: InputBorder.none, ), onTapOutside: (_) => FocusManager.instance.primaryFocus?.unfocus(), + contentInsertionConfiguration: controller.contentInsertionConfiguration, ), ), ], @@ -797,6 +801,7 @@ class _PostQuestionEditor extends StatelessWidget { border: InputBorder.none, ), onTapOutside: (_) => FocusManager.instance.primaryFocus?.unfocus(), + contentInsertionConfiguration: controller.contentInsertionConfiguration, ), ], ),