handle enter click when typing search field

This commit is contained in:
lukas-heiligenbrunner 2024-02-19 20:53:11 +01:00
parent d6b388fa03
commit 70f1d76554

View File

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart';
import 'package:go_router/go_router.dart';
import '../../constants/color_constants.dart';
@ -12,29 +13,39 @@ class SearchField extends StatelessWidget {
@override
Widget build(BuildContext context) {
return TextField(
controller: controller,
decoration: InputDecoration(
hintText: "Search",
fillColor: secondaryColor,
filled: true,
border: const OutlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.all(Radius.circular(10)),
),
suffixIcon: InkWell(
onTap: () async {
context.push("/aur?query=${controller.text}");
},
child: Container(
padding: const EdgeInsets.all(defaultPadding * 0.75),
margin: const EdgeInsets.symmetric(horizontal: defaultPadding / 2),
decoration: const BoxDecoration(
color: darkgreenColor,
borderRadius: BorderRadius.all(Radius.circular(10)),
),
child: SvgPicture.asset(
"assets/icons/Search.svg",
return RawKeyboardListener(
focusNode: FocusNode(),
onKey: (event) {
if (event.runtimeType == RawKeyDownEvent &&
event.logicalKey == LogicalKeyboardKey.enter) {
context.push("/aur?query=${controller.text}");
}
},
child: TextField(
controller: controller,
decoration: InputDecoration(
hintText: "Search",
fillColor: secondaryColor,
filled: true,
border: const OutlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.all(Radius.circular(10)),
),
suffixIcon: InkWell(
onTap: () async {
context.push("/aur?query=${controller.text}");
},
child: Container(
padding: const EdgeInsets.all(defaultPadding * 0.75),
margin:
const EdgeInsets.symmetric(horizontal: defaultPadding / 2),
decoration: const BoxDecoration(
color: darkgreenColor,
borderRadius: BorderRadius.all(Radius.circular(10)),
),
child: SvgPicture.asset(
"assets/icons/Search.svg",
),
),
),
),