From 1d9876a6eb6575755c00bd0d56426e9cdec1fc63 Mon Sep 17 00:00:00 2001 From: Mathias Mogensen <42929161+Xazin@users.noreply.github.com> Date: Mon, 21 Oct 2024 00:21:25 +0200 Subject: [PATCH] fix: notifier disposed but in use (#6586) --- .../command_palette/command_palette.dart | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/command_palette/command_palette.dart b/frontend/appflowy_flutter/lib/workspace/presentation/command_palette/command_palette.dart index 8e418ca37f..8eb7765c3a 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/command_palette/command_palette.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/command_palette/command_palette.dart @@ -56,7 +56,7 @@ class _CommandPaletteController extends StatefulWidget { } class _CommandPaletteControllerState extends State<_CommandPaletteController> { - late final ValueNotifier _toggleNotifier = widget.notifier; + late ValueNotifier _toggleNotifier = widget.notifier; bool _isOpen = false; @override @@ -71,6 +71,16 @@ class _CommandPaletteControllerState extends State<_CommandPaletteController> { super.dispose(); } + @override + void didUpdateWidget(_CommandPaletteController oldWidget) { + if (oldWidget.notifier != widget.notifier) { + oldWidget.notifier.removeListener(_onToggle); + _toggleNotifier = widget.notifier; + _toggleNotifier.addListener(_onToggle); + } + super.didUpdateWidget(oldWidget); + } + void _onToggle() { if (_toggleNotifier.value && !_isOpen) { _isOpen = true;