From 7ff98649e9767e037592dc38f04a48e6fb4283e2 Mon Sep 17 00:00:00 2001 From: Nutcake Date: Sat, 11 Nov 2023 10:20:55 +0100 Subject: [PATCH] Fix unchecked use of BuildContext after await When using the BuildContext after an asynchronus gap (like when using await), you always need to check if the context is still mounted before using it to retrieve objects from the widget tree like with `ScaffoldMessenger.of(context)`. Additionally you don't need to use `.then((value) {})` on a future, if that future is already awaited, you can simply put any following statements on a new line for better readability of program flow. --- lib/widgets/messages/message_text.dart | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/widgets/messages/message_text.dart b/lib/widgets/messages/message_text.dart index 7a85e33..1fa6ad6 100644 --- a/lib/widgets/messages/message_text.dart +++ b/lib/widgets/messages/message_text.dart @@ -14,10 +14,10 @@ class MessageText extends StatelessWidget { Widget build(BuildContext context) { return GestureDetector( onLongPress: () async { - await Clipboard.setData(ClipboardData(text: message.content)).then((_) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text("Copied to clipboard"))); - }); + await Clipboard.setData(ClipboardData(text: message.content)); + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text("Copied to clipboard"))); + } }, child: Column( crossAxisAlignment: CrossAxisAlignment.end,