Add keyboard listener to URLField

This commit is contained in:
Ye Min Naing
2024-03-06 17:07:18 +07:00
parent dbc1e7f036
commit 4c35edea0c

View File

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