Merge pull request #536 from AppFlowy-IO/fix/emoji_close

fix: emoji picker remove without attach overlay
This commit is contained in:
Nathan.fooo 2022-06-05 22:00:16 +08:00 committed by GitHub
commit 9b6451506f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -27,7 +27,7 @@ class _EmojiStyleButtonState extends State<FlowyEmojiStyleButton> {
bool _isToggled = false;
// Style get _selectionStyle => widget.controller.getSelectionStyle();
final GlobalKey emojiButtonKey = GlobalKey();
OverlayEntry _entry = OverlayEntry(builder: (context) => Container());
OverlayEntry? _entry;
// final FocusNode _keyFocusNode = FocusNode();
@override
@ -54,7 +54,7 @@ class _EmojiStyleButtonState extends State<FlowyEmojiStyleButton> {
@override
void dispose() {
_entry.remove();
_entry?.remove();
super.dispose();
}
@ -83,8 +83,9 @@ class _EmojiStyleButtonState extends State<FlowyEmojiStyleButton> {
// }
void _toggleAttribute() {
if (_entry.mounted) {
_entry.remove();
if (_entry?.mounted ?? false) {
_entry?.remove();
_entry = null;
setState(() => _isToggled = false);
} else {
RenderBox box = emojiButtonKey.currentContext?.findRenderObject() as RenderBox;
@ -99,7 +100,7 @@ class _EmojiStyleButtonState extends State<FlowyEmojiStyleButton> {
),
);
Overlay.of(context)!.insert(_entry);
Overlay.of(context)!.insert(_entry!);
setState(() => _isToggled = true);
}