From 9704a4c2c732f192ace0e098af4fabe626fafc54 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sun, 12 Oct 2025 22:32:43 +0800 Subject: [PATCH] :recycle: Use the dialog when launch from quick reply to post --- lib/widgets/post/compose_dialog.dart | 6 +++++- lib/widgets/post/post_quick_reply.dart | 23 ++++++++++------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/lib/widgets/post/compose_dialog.dart b/lib/widgets/post/compose_dialog.dart index c31fd8c8..1f7e8f23 100644 --- a/lib/widgets/post/compose_dialog.dart +++ b/lib/widgets/post/compose_dialog.dart @@ -50,7 +50,11 @@ class PostComposeDialog extends HookConsumerWidget { final isWide = isWideScreen(context); useEffect(() { - if (!prompted.value && originalPost == null && drafts.isNotEmpty) { + if (!prompted.value && + originalPost == null && + initialState?.replyingTo == null && + initialState?.forwardingTo == null && + drafts.isNotEmpty) { prompted.value = true; WidgetsBinding.instance.addPostFrameCallback((_) { _showRestoreDialog(ref, restoredInitialState); diff --git a/lib/widgets/post/post_quick_reply.dart b/lib/widgets/post/post_quick_reply.dart index 3a2eb725..639b859b 100644 --- a/lib/widgets/post/post_quick_reply.dart +++ b/lib/widgets/post/post_quick_reply.dart @@ -2,7 +2,6 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:gap/gap.dart'; -import 'package:go_router/go_router.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:island/models/post.dart'; import 'package:island/models/publisher.dart'; @@ -11,6 +10,7 @@ import 'package:island/screens/creators/publishers_form.dart'; import 'package:island/screens/posts/compose.dart'; import 'package:island/widgets/alert.dart'; import 'package:island/widgets/content/cloud_files.dart'; +import 'package:island/widgets/post/compose_dialog.dart'; import 'package:island/widgets/post/publishers_modal.dart'; import 'package:material_symbols_icons/symbols.dart'; import 'package:styled_widget/styled_widget.dart'; @@ -117,19 +117,16 @@ class PostQuickReply extends HookConsumerWidget { ), const Gap(8), IconButton( - onPressed: () { + onPressed: () async { onLaunch?.call(); - GoRouter.of(context) - .pushNamed( - 'postCompose', - extra: PostComposeInitialState( - content: contentController.text, - replyingTo: parent, - ), - ) - .then((value) { - if (value != null) onPosted?.call(); - }); + final value = await PostComposeDialog.show( + context, + initialState: PostComposeInitialState( + content: contentController.text, + replyingTo: parent, + ), + ); + if (value != null) onPosted?.call(); }, icon: const Icon(Symbols.launch, size: 20), visualDensity: VisualDensity.compact,