fix: don't dispose new word overlay animation early (#4168)
This commit is contained in:
parent
951d8ef626
commit
783085d44c
4 changed files with 12 additions and 14 deletions
|
|
@ -517,9 +517,6 @@ class MessageOverlayController extends State<MessageSelectionOverlay>
|
|||
|
||||
void onSelectNewToken(PangeaToken token) {
|
||||
if (!isNewToken(token)) return;
|
||||
final future =
|
||||
MatrixState.pangeaController.getAnalytics.analyticsStream.stream.first;
|
||||
|
||||
MatrixState.pangeaController.putAnalytics.setState(
|
||||
AnalyticsStream(
|
||||
eventId: event.eventId,
|
||||
|
|
@ -542,13 +539,6 @@ class MessageOverlayController extends State<MessageSelectionOverlay>
|
|||
targetID: "word-zoom-card-${token.text.uniqueKey}",
|
||||
),
|
||||
);
|
||||
|
||||
future.then((_) {
|
||||
TokensUtil.clearNewTokenCache();
|
||||
if (mounted) {
|
||||
setState(() {});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/// Whether the given token is currently selected or highlighted
|
||||
|
|
|
|||
|
|
@ -123,6 +123,8 @@ class ReadingAssistanceContentState extends State<ReadingAssistanceContent> {
|
|||
onClose: () => widget.overlayController.updateSelectedSpan(null),
|
||||
langCode: widget
|
||||
.overlayController.pangeaMessageEvent.messageDisplayLangCode,
|
||||
onDismissNewWordOverlay: () =>
|
||||
widget.overlayController.setState(() {}),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,16 +5,19 @@ import 'package:flutter/material.dart';
|
|||
import 'package:fluffychat/config/themes.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/overlay.dart';
|
||||
import 'package:fluffychat/pangea/constructs/construct_level_enum.dart';
|
||||
import 'package:fluffychat/pangea/message_token_text/tokens_util.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
||||
class NewWordOverlay extends StatefulWidget {
|
||||
final Color overlayColor;
|
||||
final String transformTargetId;
|
||||
final VoidCallback? onDismiss;
|
||||
|
||||
const NewWordOverlay({
|
||||
super.key,
|
||||
required this.overlayColor,
|
||||
required this.transformTargetId,
|
||||
this.onDismiss,
|
||||
});
|
||||
|
||||
@override
|
||||
|
|
@ -57,7 +60,10 @@ class _NewWordOverlayState extends State<NewWordOverlay>
|
|||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
columnMode = FluffyThemes.isColumnMode(context);
|
||||
_showFlyingWidget();
|
||||
_controller?.forward();
|
||||
_controller?.forward().then((_) {
|
||||
TokensUtil.clearNewTokenCache();
|
||||
widget.onDismiss?.call();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -80,9 +86,6 @@ class _NewWordOverlayState extends State<NewWordOverlay>
|
|||
context: context,
|
||||
closePrevOverlay: false,
|
||||
ignorePointer: true,
|
||||
// onDismiss: () {
|
||||
// MatrixState.pAnyState.closeOverlay(widget.transformTargetId);
|
||||
// },
|
||||
offset: const Offset(0, 65),
|
||||
targetAnchor: Alignment.center,
|
||||
overlayKey: widget.transformTargetId,
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ class WordZoomWidget extends StatelessWidget {
|
|||
final VoidCallback onClose;
|
||||
|
||||
final bool wordIsNew;
|
||||
final VoidCallback? onDismissNewWordOverlay;
|
||||
final Event? event;
|
||||
|
||||
const WordZoomWidget({
|
||||
|
|
@ -36,6 +37,7 @@ class WordZoomWidget extends StatelessWidget {
|
|||
required this.langCode,
|
||||
required this.onClose,
|
||||
this.wordIsNew = false,
|
||||
this.onDismissNewWordOverlay,
|
||||
this.event,
|
||||
});
|
||||
|
||||
|
|
@ -261,6 +263,7 @@ class WordZoomWidget extends StatelessWidget {
|
|||
key: ValueKey(transformTargetId),
|
||||
overlayColor: overlayColor,
|
||||
transformTargetId: transformTargetId,
|
||||
onDismiss: onDismissNewWordOverlay,
|
||||
)
|
||||
: const SizedBox.shrink(),
|
||||
],
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue