mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
Fix oversized mobile Manage channel sheet (#1774)
Signed-off-by: Wes <wesbillman@users.noreply.github.com> Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
This commit is contained in:
@@ -215,6 +215,10 @@ class ChannelDetailPage extends HookConsumerWidget {
|
||||
context: context,
|
||||
isScrollControlled: true,
|
||||
showDragHandle: true,
|
||||
constraints: BoxConstraints(
|
||||
maxWidth: 640,
|
||||
maxHeight: MediaQuery.sizeOf(context).height * 0.9,
|
||||
),
|
||||
builder: (_) => ManageChannelSheet(channel: resolvedChannel),
|
||||
);
|
||||
if (shouldClose == true && context.mounted) {
|
||||
|
||||
@@ -117,6 +117,7 @@ Widget _buildTestable({
|
||||
ChannelActions Function(Ref ref)? createChannelActions,
|
||||
ReadStateNotifier? readStateNotifier,
|
||||
_FakeMessagesNotifier? messagesNotifier,
|
||||
String? canvasContent,
|
||||
}) {
|
||||
final resolvedChannel = channel ?? _testChannel;
|
||||
final fakeChannelsNotifier =
|
||||
@@ -138,8 +139,8 @@ Widget _buildTestable({
|
||||
(ref) async => ChannelDetails.fromChannel(resolvedChannel),
|
||||
),
|
||||
channelCanvasProvider(_channelId).overrideWith(
|
||||
(ref) async => const ChannelCanvas(
|
||||
content: null,
|
||||
(ref) async => ChannelCanvas(
|
||||
content: canvasContent,
|
||||
updatedAt: null,
|
||||
authorPubkey: null,
|
||||
),
|
||||
@@ -371,6 +372,42 @@ void main() {
|
||||
expect(find.text('Message #general'), findsOneWidget);
|
||||
});
|
||||
|
||||
testWidgets('keeps manage sheet dismissible with a long canvas', (
|
||||
tester,
|
||||
) async {
|
||||
tester.view.physicalSize = const Size(400, 800);
|
||||
tester.view.devicePixelRatio = 1;
|
||||
addTearDown(tester.view.resetPhysicalSize);
|
||||
addTearDown(tester.view.resetDevicePixelRatio);
|
||||
|
||||
await tester.pumpWidget(
|
||||
_buildTestable(
|
||||
messages: const [],
|
||||
canvasContent: List.generate(
|
||||
80,
|
||||
(index) => 'Canvas line $index',
|
||||
).join('\n'),
|
||||
),
|
||||
);
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
await tester.tap(find.byTooltip('Manage channel'));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
final sheet = find.byType(BottomSheet);
|
||||
expect(sheet, findsOneWidget);
|
||||
expect(tester.getSize(sheet).height, lessThanOrEqualTo(720));
|
||||
|
||||
final sheetTop = tester.getTopLeft(sheet).dy;
|
||||
await tester.dragFrom(
|
||||
Offset(tester.view.physicalSize.width / 2, sheetTop + 12),
|
||||
const Offset(0, 800),
|
||||
);
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
expect(sheet, findsNothing);
|
||||
});
|
||||
|
||||
testWidgets('shows empty state when no messages', (tester) async {
|
||||
await tester.pumpWidget(_buildTestable(messages: []));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
Reference in New Issue
Block a user