diff --git a/frontend/lib/components/dashboard/search_field.dart b/frontend/lib/components/dashboard/search_field.dart index f09bd15..2d150f0 100644 --- a/frontend/lib/components/dashboard/search_field.dart +++ b/frontend/lib/components/dashboard/search_field.dart @@ -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", + ), ), ), ),