filter_box

This commit is contained in:
2024-11-18 14:40:41 +01:00
parent ae4290fb47
commit 47cae0adb5
3 changed files with 235 additions and 0 deletions
+89
View File
@@ -0,0 +1,89 @@
import 'package:flutter/material.dart';
import 'package:multimedia/widgets/checkbox_with_label.dart';
import 'package:logger/logger.dart';
import 'package:multimedia/log_printer.dart';
// ignore: must_be_immutable
class TVShowFilterBox extends StatelessWidget {
TVShowFilterBox({
super.key,
required this.setFilter,
});
final Function(
String text,
bool showInit,
bool showProg,
bool showDone,
) setFilter;
bool initState = false;
bool progState = false;
bool doneState = false;
String searchText = '';
Logger logger = getLogger();
void initCallback(bool state) {
initState = state;
callSetFilter();
}
void progCallback(bool state) {
progState = state;
callSetFilter();
}
void doneCallback(bool state) {
doneState = state;
callSetFilter();
}
void textCallback(String text) {
searchText = text;
callSetFilter();
}
@override
Widget build(BuildContext context) {
return Row(
children: [
const SizedBox(
width: 20,
),
SizedBox(
width: 250,
child: TextField(
style: TextStyle(color: Colors.white),
decoration: InputDecoration(
labelText: 'TVShow Title',
),
onChanged: (text) {
textCallback(text);
},
),
),
const SizedBox(
width: 20,
),
CheckboxWithLabel(
label: 'Init',
callback: initCallback,
),
CheckboxWithLabel(
label: 'Progress',
callback: progCallback,
),
CheckboxWithLabel(
label: 'Done',
callback: doneCallback,
),
],
);
}
void callSetFilter() {
setFilter(searchText, initState, progState, doneState);
}
}