Skip to content

Commit b832f0c

Browse files
committed
action-sheet: Pass the correct BuildContext for showing SnackBar
Before this, the `SnackBar` wouldn't show as the correct `BuildContext` was not passed to `copyWithPopup` method. Fixes: #732
1 parent a015c24 commit b832f0c

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

lib/widgets/action_sheet.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ class CopyMessageTextButton extends MessageActionSheetMenuItemButton {
361361

362362
if (!messageListContext.mounted) return;
363363

364-
copyWithPopup(context: context,
364+
copyWithPopup(context: messageListContext,
365365
successContent: Text(zulipLocalizations.successMessageTextCopied),
366366
data: ClipboardData(text: rawContent));
367367
}

test/widgets/action_sheet_test.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'package:flutter_test/flutter_test.dart';
88
import 'package:http/http.dart' as http;
99
import 'package:zulip/api/model/model.dart';
1010
import 'package:zulip/api/route/messages.dart';
11+
import 'package:zulip/model/binding.dart';
1112
import 'package:zulip/model/compose.dart';
1213
import 'package:zulip/model/localizations.dart';
1314
import 'package:zulip/model/narrow.dart';
@@ -464,6 +465,9 @@ void main() {
464465
}
465466

466467
testWidgets('success', (WidgetTester tester) async {
468+
// for #732 regression check below
469+
testBinding.deviceInfoResult = IosDeviceInfo(systemVersion: '16.0');
470+
467471
final message = eg.streamMessage();
468472
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
469473
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
@@ -472,6 +476,14 @@ void main() {
472476
await tapCopyMessageTextButton(tester);
473477
await tester.pump(Duration.zero);
474478
check(await Clipboard.getData('text/plain')).isNotNull().text.equals('Hello world');
479+
480+
// regression check for #732
481+
final snackbar = tester.widget<SnackBar>(find.byType(SnackBar));
482+
check(snackbar.behavior).equals(SnackBarBehavior.floating);
483+
final zulipLocalizations = GlobalLocalizations.zulipLocalizations;
484+
tester.widget(find.descendant(matchRoot: true,
485+
of: find.byWidget(snackbar.content),
486+
matching: find.text(zulipLocalizations.successMessageTextCopied)));
475487
});
476488

477489
testWidgets('request has an error', (WidgetTester tester) async {

0 commit comments

Comments
 (0)