mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-30 07:15:51 +08:00
opt: multi select
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -9,8 +9,8 @@ abstract class MultiSelectController extends CommonController {
|
||||
|
||||
onSelect(int index) {
|
||||
List list = (loadingState.value as Success).response;
|
||||
list[index].checked = !list[index].checked;
|
||||
checkedCount.value = list.where((item) => item.checked).length;
|
||||
list[index].checked = !(list[index]?.checked ?? false);
|
||||
checkedCount.value = list.where((item) => item.checked == true).length;
|
||||
loadingState.value = LoadingState.success(list);
|
||||
if (checkedCount.value == 0) {
|
||||
enableMultiSelect.value = false;
|
||||
|
||||
@@ -97,7 +97,7 @@ class FavDetailController extends MultiSelectController {
|
||||
onPressed: () async {
|
||||
Get.back();
|
||||
List list = ((loadingState.value as Success).response as List)
|
||||
.where((e) => e.checked)
|
||||
.where((e) => e.checked == true)
|
||||
.toList();
|
||||
dynamic result = await VideoHttp.delFav(
|
||||
ids: list.map((item) => '${item.id}:${item.type}').toList(),
|
||||
|
||||
@@ -365,9 +365,10 @@ class _FavDetailPageState extends State<FavDetailPage> {
|
||||
child: LayoutBuilder(
|
||||
builder: (context, constraints) =>
|
||||
AnimatedOpacity(
|
||||
opacity: loadingState.response[index].checked
|
||||
? 1
|
||||
: 0,
|
||||
opacity:
|
||||
loadingState.response[index].checked == true
|
||||
? 1
|
||||
: 0,
|
||||
duration: const Duration(milliseconds: 200),
|
||||
child: Container(
|
||||
alignment: Alignment.center,
|
||||
@@ -382,10 +383,11 @@ class _FavDetailPageState extends State<FavDetailPage> {
|
||||
width: 34,
|
||||
height: 34,
|
||||
child: AnimatedScale(
|
||||
scale:
|
||||
loadingState.response[index].checked
|
||||
? 1
|
||||
: 0,
|
||||
scale: loadingState
|
||||
.response[index].checked ==
|
||||
true
|
||||
? 1
|
||||
: 0,
|
||||
duration:
|
||||
const Duration(milliseconds: 250),
|
||||
curve: Curves.easeInOut,
|
||||
|
||||
@@ -181,7 +181,7 @@ class HistoryController extends MultiSelectController {
|
||||
Get.back();
|
||||
if (loadingState.value is Success) {
|
||||
_onDelete(((loadingState.value as Success).response as List)
|
||||
.where((e) => e.checked)
|
||||
.where((e) => e.checked == true)
|
||||
.toList());
|
||||
}
|
||||
},
|
||||
|
||||
@@ -226,7 +226,7 @@ class HistoryItem extends StatelessWidget {
|
||||
),
|
||||
Positioned.fill(
|
||||
child: AnimatedOpacity(
|
||||
opacity: videoItem.checked ? 1 : 0,
|
||||
opacity: videoItem.checked == true ? 1 : 0,
|
||||
duration: const Duration(milliseconds: 200),
|
||||
child: Container(
|
||||
alignment: Alignment.center,
|
||||
@@ -238,7 +238,7 @@ class HistoryItem extends StatelessWidget {
|
||||
width: 34,
|
||||
height: 34,
|
||||
child: AnimatedScale(
|
||||
scale: videoItem.checked ? 1 : 0,
|
||||
scale: videoItem.checked == true ? 1 : 0,
|
||||
duration: const Duration(milliseconds: 250),
|
||||
curve: Curves.easeInOut,
|
||||
child: IconButton(
|
||||
|
||||
@@ -135,7 +135,7 @@ class LaterController extends MultiSelectController {
|
||||
onPressed: () async {
|
||||
Get.back();
|
||||
_onDelete(((loadingState.value as Success).response as List)
|
||||
.where((e) => e.checked)
|
||||
.where((e) => e.checked == true)
|
||||
.toList());
|
||||
},
|
||||
child: const Text('确认'),
|
||||
|
||||
@@ -172,7 +172,7 @@ class _LaterPageState extends State<LaterPage> {
|
||||
child: IgnorePointer(
|
||||
child: LayoutBuilder(
|
||||
builder: (context, constraints) => AnimatedOpacity(
|
||||
opacity: videoItem.checked ? 1 : 0,
|
||||
opacity: videoItem.checked == true ? 1 : 0,
|
||||
duration: const Duration(milliseconds: 200),
|
||||
child: Container(
|
||||
alignment: Alignment.center,
|
||||
@@ -187,7 +187,7 @@ class _LaterPageState extends State<LaterPage> {
|
||||
width: 34,
|
||||
height: 34,
|
||||
child: AnimatedScale(
|
||||
scale: videoItem.checked ? 1 : 0,
|
||||
scale: videoItem.checked == true ? 1 : 0,
|
||||
duration: const Duration(milliseconds: 250),
|
||||
curve: Curves.easeInOut,
|
||||
child: IconButton(
|
||||
|
||||
Reference in New Issue
Block a user