Add multi-select support to pmshare panel (#1779)

* Add multi-select support to share panel

- Replace single selection index with per-user selected flag
- Allow sending to multiple selected users
- Add sending state to prevent multiple clicks
- Update default selection logic to mark first user as selected

* 简化代码逻辑

* update

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>

---------

Signed-off-by: lesetong <oscarlbw@qq.com>
Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
lesetong
2025-12-17 12:46:36 +08:00
committed by GitHub
parent 348a9e014e
commit ab1e5cb62a
14 changed files with 113 additions and 110 deletions

View File

@@ -12,10 +12,10 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
class MemberFavItem extends StatelessWidget {
const MemberFavItem({super.key, required this.item, this.callback});
const MemberFavItem({super.key, required this.item, this.onDelete});
final SpaceFavItemModel item;
final ValueChanged<bool?>? callback;
final ValueChanged<bool?>? onDelete;
@override
Widget build(BuildContext context) {
@@ -34,14 +34,14 @@ class MemberFavItem extends StatelessWidget {
}
if (item.type == 0 || item.type == 11) {
var res = await Get.toNamed(
final bool? isDeleted = await Get.toNamed(
'/favDetail',
parameters: {
'mediaId': item.id.toString(),
'heroTag': Utils.makeHeroTag(item.id),
},
);
callback?.call(res);
onDelete?.call(isDeleted);
} else {
SubDetailPage.toSubDetailPage(
item.id!,