Browse Source

Add Suggestions: remove existing participants

Neeraj Gupta 2 years ago
parent
commit
7a3d85fd07
2 changed files with 18 additions and 3 deletions
  1. 16 2
      lib/ui/sharing/add_partipant_page.dart
  2. 2 1
      lib/ui/sharing/share_collection_page.dart

+ 16 - 2
lib/ui/sharing/add_partipant_page.dart

@@ -14,7 +14,8 @@ import 'package:photos/ui/sharing/user_avator_widget.dart';
 import 'package:photos/utils/toast_util.dart';
 
 class AddParticipantPage extends StatefulWidget {
-  const AddParticipantPage({super.key});
+  final Collection collection;
+  const AddParticipantPage(this.collection, {super.key});
 
   @override
   State<StatefulWidget> createState() => _AddParticipantPage();
@@ -35,10 +36,23 @@ class _AddParticipantPage extends State<AddParticipantPage> {
     final enteColorScheme = getEnteColorScheme(context);
     final enteTextTheme = getEnteTextTheme(context);
     final int ownerID = Configuration.instance.getUserID()!;
+    final Set<int> existingUserIDs = {};
+    for (final User? u in widget.collection?.sharees ?? []) {
+      if (u != null && u.id != null) {
+        existingUserIDs.add(u.id!);
+      }
+    }
     final List<String> emails = [];
     for (final c in CollectionsService.instance.getActiveCollections()) {
       if (c.owner?.id == ownerID) {
-        c.sharees?.forEach((e) => emails.add(e!.email));
+        c.sharees?.forEach(
+          (e) => {
+            if (existingUserIDs.contains(1))
+              {
+                emails.add(e!.email),
+              }
+          },
+        );
       } else {
         emails.add(c.owner!.email);
       }

+ 2 - 1
lib/ui/sharing/share_collection_page.dart

@@ -91,7 +91,8 @@ class _ShareCollectionPageState extends State<ShareCollectionPage> {
         menuItemColor: getEnteColorScheme(context).fillFaint,
         pressedColor: getEnteColorScheme(context).fillFaint,
         onTap: () async {
-          unawaited(routeToPage(context, AddParticipantPage()));
+          unawaited(
+              routeToPage(context, AddParticipantPage(widget.collection)));
         },
       ),
     );