feat: search filter feature

This commit is contained in:
kodjomoustapha 2023-11-24 17:57:15 +01:00
parent 09b002be8b
commit 34f31e6cb7
2 changed files with 17 additions and 13 deletions

View file

@ -705,24 +705,24 @@ class $TriStateFilter implements TriStateFilter, $Instance {
constructors: {
'': BridgeConstructorDef(
BridgeFunctionDef(returns: BridgeTypeAnnotation($type), params: [
BridgeParameter('type',
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), false),
BridgeParameter('name',
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), false),
BridgeParameter('value',
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), false),
BridgeParameter('type',
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), true),
], namedParams: [
BridgeParameter(
'state', BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.int)), true)
]))
},
fields: {
'type': BridgeFieldDef(
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string))),
'name': BridgeFieldDef(
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string))),
'value': BridgeFieldDef(
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string))),
'type': BridgeFieldDef(
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string))),
'state': BridgeFieldDef(BridgeTypeAnnotation(
BridgeTypeRef(CoreTypes.int),
)),
@ -731,7 +731,7 @@ class $TriStateFilter implements TriStateFilter, $Instance {
static $Value? $new(Runtime runtime, $Value? target, List<$Value?> args) {
return $TriStateFilter.wrap(TriStateFilter(
args[0]!.$value, args[1]!.$value, args[2]!.$value,
args[2]?.$value ?? '', args[0]!.$value, args[1]!.$value,
state: args[3]?.$value ?? 0));
}
@ -844,10 +844,10 @@ class $GroupFilter implements GroupFilter, $Instance {
args[1]!.$value,
(args[2]!.$value as List).map((e) {
if (e is $Value) {
if (e.$reified is Map) {
final val = e.$reified as Map;
final value = e.$reified;
if (value is Map) {
Map<String, dynamic> map = {};
map = val.map((key, value) => MapEntry(key.toString(), value));
map = value.map((key, value) => MapEntry(key.toString(), value));
if (map['type'] == 'TriState') {
final filter = map['filter'] as Map;
return TriStateFilter.fromJson(filter
@ -858,6 +858,7 @@ class $GroupFilter implements GroupFilter, $Instance {
.map((key, value) => MapEntry(key.toString(), value)));
}
}
return value;
}
return e;
}).toList()));
@ -933,24 +934,24 @@ class $CheckBoxFilter implements CheckBoxFilter, $Instance {
constructors: {
'': BridgeConstructorDef(
BridgeFunctionDef(returns: BridgeTypeAnnotation($type), params: [
BridgeParameter('type',
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), false),
BridgeParameter('name',
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), false),
BridgeParameter('value',
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), false),
BridgeParameter('type',
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), true),
], namedParams: [
BridgeParameter('state',
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.bool)), true),
]))
},
fields: {
'type': BridgeFieldDef(
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string))),
'name': BridgeFieldDef(
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string))),
'value': BridgeFieldDef(
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string))),
'type': BridgeFieldDef(
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string))),
'state': BridgeFieldDef(BridgeTypeAnnotation(
BridgeTypeRef(CoreTypes.bool),
)),
@ -959,7 +960,7 @@ class $CheckBoxFilter implements CheckBoxFilter, $Instance {
static $Value? $new(Runtime runtime, $Value? target, List<$Value?> args) {
return $CheckBoxFilter.wrap(CheckBoxFilter(
args[0]!.$value, args[1]!.$value, args[2]!.$value,
args[2]?.$value ?? '', args[0]!.$value, args[1]!.$value,
state: args[3]?.$value ?? false));
}

View file

@ -142,6 +142,7 @@ class _MangaHomeScreenState extends ConsumerState<MangaHomeScreen> {
onChanged: (value) {},
onSuffixPressed: () {
_textEditingController.clear();
_query = "";
setState(() {});
},
onPressed: () {
@ -252,6 +253,8 @@ class _MangaHomeScreenState extends ConsumerState<MangaHomeScreen> {
);
if (result == 'filter') {
setState(() {
_query = '';
_textEditingController.clear();
_selectedIndex = 2;
_isFiltering = true;
_isSearch = true;