mirror of
https://github.com/foss42/apidash.git
synced 2025-05-30 05:21:15 +08:00
Merge pull request #253 from opxdelwin/issue-252-updated
[feat] Implement Press Enter to Send Request in URL Input Field
This commit is contained in:
@ -81,6 +81,11 @@ class URLTextField extends ConsumerWidget {
|
||||
.read(collectionStateNotifierProvider.notifier)
|
||||
.update(selectedId, url: value);
|
||||
},
|
||||
onFieldSubmitted: (value) {
|
||||
ref
|
||||
.read(collectionStateNotifierProvider.notifier)
|
||||
.sendRequest(selectedId);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -7,11 +7,13 @@ class URLField extends StatelessWidget {
|
||||
required this.selectedId,
|
||||
this.initialValue,
|
||||
this.onChanged,
|
||||
this.onFieldSubmitted,
|
||||
});
|
||||
|
||||
final String selectedId;
|
||||
final String? initialValue;
|
||||
final void Function(String)? onChanged;
|
||||
final void Function(String)? onFieldSubmitted;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@ -29,6 +31,7 @@ class URLField extends StatelessWidget {
|
||||
border: InputBorder.none,
|
||||
),
|
||||
onChanged: onChanged,
|
||||
onFieldSubmitted: onFieldSubmitted,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -57,4 +57,41 @@ void main() {
|
||||
await tester.pumpAndSettle();
|
||||
expect(find.text('entering 123 for cell field'), findsOneWidget);
|
||||
});
|
||||
|
||||
testWidgets('URL Field sends request on enter keystroke', (tester) async {
|
||||
bool wasSubmitCalled = false;
|
||||
|
||||
void testSubmit(String val) {
|
||||
wasSubmitCalled = true;
|
||||
}
|
||||
|
||||
await tester.pumpWidget(
|
||||
MaterialApp(
|
||||
title: 'URL Field',
|
||||
theme: kThemeDataDark,
|
||||
home: Scaffold(
|
||||
body: Column(children: [
|
||||
URLField(
|
||||
selectedId: '2',
|
||||
onFieldSubmitted: testSubmit,
|
||||
)
|
||||
]),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
// ensure URLField is blank
|
||||
expect(find.byType(TextFormField), findsOneWidget);
|
||||
expect(find.textContaining('Enter API endpoint '), findsOneWidget);
|
||||
expect(wasSubmitCalled, false);
|
||||
|
||||
// modify value and press enter
|
||||
var txtForm = find.byKey(const Key("url-2"));
|
||||
await tester.enterText(txtForm, 'entering 123');
|
||||
await tester.testTextInput.receiveAction(TextInputAction.done);
|
||||
await tester.pump();
|
||||
|
||||
// check if value was updated
|
||||
expect(wasSubmitCalled, true);
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user