Compare commits

..

2 Commits

Author SHA1 Message Date
40ef8a63b0 fix: enable multi-select actions in local comics search mode 2025-11-29 15:00:30 +08:00
053293839e flutter 3.38.3 2025-11-29 14:43:15 +08:00

View File

@@ -258,19 +258,30 @@ class _LocalComicsPageState extends State<LocalComicsPage> {
else if (searchMode) else if (searchMode)
SliverAppbar( SliverAppbar(
leading: Tooltip( leading: Tooltip(
message: "Cancel".tl, message: multiSelectMode ? "Cancel".tl : "Cancel".tl,
child: IconButton( child: IconButton(
icon: const Icon(Icons.close), icon: multiSelectMode
? const Icon(Icons.close)
: const Icon(Icons.close),
onPressed: () { onPressed: () {
if (multiSelectMode) {
setState(() {
multiSelectMode = false;
selectedComics.clear();
});
} else {
setState(() { setState(() {
searchMode = false; searchMode = false;
keyword = ""; keyword = "";
update(); update();
}); });
}
}, },
), ),
), ),
title: TextField( title: multiSelectMode
? Text(selectedComics.length.toString())
: TextField(
autofocus: true, autofocus: true,
decoration: InputDecoration( decoration: InputDecoration(
hintText: "Search".tl, hintText: "Search".tl,
@@ -281,6 +292,7 @@ class _LocalComicsPageState extends State<LocalComicsPage> {
update(); update();
}, },
), ),
actions: multiSelectMode ? selectActions : null,
), ),
SliverGridComics( SliverGridComics(
comics: comics, comics: comics,
@@ -344,6 +356,7 @@ class _LocalComicsPageState extends State<LocalComicsPage> {
return PopScope( return PopScope(
canPop: !multiSelectMode && !searchMode, canPop: !multiSelectMode && !searchMode,
onPopInvokedWithResult: (didPop, result) { onPopInvokedWithResult: (didPop, result) {
if (didPop) return;
if (multiSelectMode) { if (multiSelectMode) {
setState(() { setState(() {
multiSelectMode = false; multiSelectMode = false;