mirror of
https://codeberg.org/shroff/phylum.git
synced 2026-01-05 19:21:23 -06:00
[client] Populate search field text
This commit is contained in:
@@ -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(),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
53
client/lib/ui/app/search_field.dart
Normal file
53
client/lib/ui/app/search_field.dart
Normal 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));
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user