[client] Populate search field text

This commit is contained in:
Abhishek Shroff
2025-04-22 22:38:18 +05:30
parent 5ad8f32cd7
commit e5d9690f94
2 changed files with 55 additions and 15 deletions

View File

@@ -3,10 +3,9 @@ import 'package:flutter_state_notifier/flutter_state_notifier.dart';
import 'package:phylum/ui/app/app_actions.dart';
import 'package:phylum/ui/app/fab_action.dart';
import 'package:phylum/ui/app/nav_list.dart';
import 'package:phylum/ui/app/router.dart';
import 'package:phylum/ui/app/search_field.dart';
import 'package:phylum/ui/explorer/explorer_view.dart';
import 'package:phylum/ui/explorer/explorer_controller.dart';
import 'package:phylum/ui/explorer/page.dart';
import 'package:phylum/ui/explorer/resource_drop_and_drop.dart';
import 'package:phylum/ui/explorer/resource_info_view.dart';
import 'package:phylum/ui/explorer/selection_mode.dart';
@@ -157,19 +156,7 @@ class ExpandedAppLayout extends StatelessWidget {
child: Icon(Icons.search),
),
Expanded(
child: TextField(
decoration: InputDecoration.collapsed(
hintText: 'Search Files...',
hintStyle: TextStyle(fontSize: 18),
),
style: TextStyle(fontSize: 18),
onSubmitted: (text) {
final query = text.trim();
if (query.isNotEmpty) {
context.read<PhylumRouterDelegate>().go(ExplorerPageSearch(query: query));
}
},
),
child: SearchField(),
),
],
),

View File

@@ -0,0 +1,53 @@
import 'package:flutter/material.dart';
import 'package:phylum/ui/app/router.dart';
import 'package:phylum/ui/explorer/explorer_controller.dart';
import 'package:phylum/ui/explorer/page.dart';
import 'package:provider/provider.dart';
class SearchField extends StatefulWidget {
const SearchField({super.key});
@override
State<SearchField> createState() => _SearchFieldState();
}
class _SearchFieldState extends State<SearchField> {
final _controller = TextEditingController();
@override
void initState() {
super.initState();
context.read<ExplorerController>().addListener((state) {
final page = state.page;
if (page is ExplorerPageSearch) {
_controller.text = page.query;
} else {
_controller.text = '';
}
});
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return TextField(
decoration: InputDecoration.collapsed(
hintText: 'Search Files...',
hintStyle: TextStyle(fontSize: 18),
),
controller: _controller,
style: TextStyle(fontSize: 18),
onSubmitted: (text) {
final query = text.trim();
if (query.isNotEmpty) {
context.read<PhylumRouterDelegate>().go(ExplorerPageSearch(query: query));
}
},
);
}
}