♻️ Use the dialog when launch from quick reply to post

This commit is contained in:
2025-10-12 22:32:43 +08:00
parent 67def56ad1
commit 9704a4c2c7
2 changed files with 15 additions and 14 deletions

View File

@@ -50,7 +50,11 @@ class PostComposeDialog extends HookConsumerWidget {
final isWide = isWideScreen(context); final isWide = isWideScreen(context);
useEffect(() { useEffect(() {
if (!prompted.value && originalPost == null && drafts.isNotEmpty) { if (!prompted.value &&
originalPost == null &&
initialState?.replyingTo == null &&
initialState?.forwardingTo == null &&
drafts.isNotEmpty) {
prompted.value = true; prompted.value = true;
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
_showRestoreDialog(ref, restoredInitialState); _showRestoreDialog(ref, restoredInitialState);

View File

@@ -2,7 +2,6 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:gap/gap.dart'; import 'package:gap/gap.dart';
import 'package:go_router/go_router.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/models/post.dart'; import 'package:island/models/post.dart';
import 'package:island/models/publisher.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/screens/posts/compose.dart';
import 'package:island/widgets/alert.dart'; import 'package:island/widgets/alert.dart';
import 'package:island/widgets/content/cloud_files.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:island/widgets/post/publishers_modal.dart';
import 'package:material_symbols_icons/symbols.dart'; import 'package:material_symbols_icons/symbols.dart';
import 'package:styled_widget/styled_widget.dart'; import 'package:styled_widget/styled_widget.dart';
@@ -117,19 +117,16 @@ class PostQuickReply extends HookConsumerWidget {
), ),
const Gap(8), const Gap(8),
IconButton( IconButton(
onPressed: () { onPressed: () async {
onLaunch?.call(); onLaunch?.call();
GoRouter.of(context) final value = await PostComposeDialog.show(
.pushNamed( context,
'postCompose', initialState: PostComposeInitialState(
extra: PostComposeInitialState(
content: contentController.text, content: contentController.text,
replyingTo: parent, replyingTo: parent,
), ),
) );
.then((value) {
if (value != null) onPosted?.call(); if (value != null) onPosted?.call();
});
}, },
icon: const Icon(Symbols.launch, size: 20), icon: const Icon(Symbols.launch, size: 20),
visualDensity: VisualDensity.compact, visualDensity: VisualDensity.compact,