diff --git a/lib/screens/home_page/editor_pane/url_card.dart b/lib/screens/home_page/editor_pane/url_card.dart index 753fb34a..5b87a5ec 100644 --- a/lib/screens/home_page/editor_pane/url_card.dart +++ b/lib/screens/home_page/editor_pane/url_card.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:apidash/providers/providers.dart'; import 'package:apidash/widgets/widgets.dart'; @@ -103,18 +104,31 @@ class _URLTextFieldState extends ConsumerState { @override Widget build(BuildContext context) { final activeId = ref.watch(activeIdStateProvider); - return URLField( - activeId: activeId!, - initialValue: ref - .read(collectionStateNotifierProvider.notifier) - .getRequestModel(activeId) - ?.url, - onChanged: (value) { - ref - .read(collectionStateNotifierProvider.notifier) - .update(activeId, url: value); - }, - ); + return Focus( + autofocus: true, + child: KeyboardListener( + focusNode: FocusNode(), + onKeyEvent: (KeyEvent event) { + if (event is KeyDownEvent && + event.logicalKey == LogicalKeyboardKey.enter) { + ref + .read(collectionStateNotifierProvider.notifier) + .sendRequest(activeId); + } + }, + child: URLField( + activeId: activeId!, + initialValue: ref + .read(collectionStateNotifierProvider.notifier) + .getRequestModel(activeId) + ?.url, + onChanged: (value) { + ref + .read(collectionStateNotifierProvider.notifier) + .update(activeId, url: value); + }, + ), + )); } }