fix(player): 评论面板保持高度并两段式收起
This commit is contained in:
1 parent
9876772d06
commit
d081cff3e4
3 files changed
+128
-51
No files matched your search
@@ -307,12 +307,14 @@ void main() {
|
||||
|
||||
final sheet = find.byKey(const Key('player-comments-sheet'));
|
||||
final list = find.byKey(const Key('comment-list'));
|
||||
final heightBeforeKeyboard = tester.getSize(sheet).height;
|
||||
tester.view.viewInsets = const FakeViewPadding(bottom: 180);
|
||||
await tester.pump();
|
||||
await tester.pump(const Duration(milliseconds: 200));
|
||||
|
||||
expect(sheet, findsOneWidget);
|
||||
expect(list, findsOneWidget);
|
||||
expect(tester.getSize(sheet).height, closeTo(heightBeforeKeyboard, 0.1));
|
||||
expect(find.byKey(const Key('comment-count-label')), findsOneWidget);
|
||||
final field = tester.widget<TextField>(
|
||||
find.byKey(const Key('comment-input')),
|
||||
@@ -378,6 +380,7 @@ void main() {
|
||||
);
|
||||
expect(collapsedField.maxLines, 1);
|
||||
expect(tester.getSize(find.byKey(const Key('comment-input'))).height, 44);
|
||||
expect(tester.getSize(sheet).height, closeTo(heightBeforeKeyboard, 0.1));
|
||||
expect(tester.getSize(sheet).height, lessThan(520));
|
||||
final editableAfterKeyboard = tester.state<EditableTextState>(
|
||||
find.descendant(
|
||||
@@ -402,6 +405,52 @@ void main() {
|
||||
);
|
||||
});
|
||||
|
||||
testWidgets('should_dismiss_from_outside_in_two_steps', (tester) async {
|
||||
tester.view.physicalSize = const Size(390, 844);
|
||||
tester.view.devicePixelRatio = 1;
|
||||
addTearDown(tester.view.resetPhysicalSize);
|
||||
addTearDown(tester.view.resetDevicePixelRatio);
|
||||
addTearDown(tester.view.resetViewInsets);
|
||||
final repository = FakeCommentRepository(
|
||||
pages: [
|
||||
CommentPage(
|
||||
comments: [commentFixture(id: '10', content: 'A comment')],
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
await _pumpSheet(tester, repository: repository);
|
||||
final sheet = find.byKey(const Key('player-comments-sheet'));
|
||||
final input = find.byKey(const Key('comment-input'));
|
||||
expect(
|
||||
find.byKey(const Key('player-comments-dismiss-layer')),
|
||||
findsOneWidget,
|
||||
);
|
||||
|
||||
tester.view.viewInsets = const FakeViewPadding(bottom: 180);
|
||||
await tester.tap(input);
|
||||
await tester.pumpAndSettle();
|
||||
expect(sheet, findsOneWidget);
|
||||
expect(tester.widget<TextField>(input).focusNode?.hasFocus, isTrue);
|
||||
|
||||
await tester.tap(find.byKey(const Key('comment-list')));
|
||||
await tester.pump();
|
||||
expect(sheet, findsOneWidget);
|
||||
|
||||
await tester.tapAt(const Offset(20, 20));
|
||||
await tester.pump();
|
||||
expect(sheet, findsOneWidget);
|
||||
expect(tester.widget<TextField>(input).focusNode?.hasFocus, isFalse);
|
||||
|
||||
tester.view.viewInsets = const FakeViewPadding();
|
||||
await tester.pumpAndSettle();
|
||||
expect(sheet, findsOneWidget);
|
||||
|
||||
await tester.tapAt(const Offset(20, 20));
|
||||
await tester.pumpAndSettle();
|
||||
expect(sheet, findsNothing);
|
||||
});
|
||||
|
||||
testWidgets('should_use_polished_comment_sizes', (tester) async {
|
||||
final repository = FakeCommentRepository(
|
||||
pages: [
|
||||
|
||||
Reference in new issue
Block a user