From 19367e2a0dce6e5ca5a6816ec0eeb05f610207d3 Mon Sep 17 00:00:00 2001
From: Ming Ming <nkming2@gmail.com>
Date: Tue, 28 Sep 2021 14:37:16 +0800
Subject: [PATCH] Refactoring: extract create share fn

---
 lib/use_case/create_share.dart     | 9 +++++++++
 lib/widget/share_album_dialog.dart | 3 ++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/lib/use_case/create_share.dart b/lib/use_case/create_share.dart
index 3895175a..996a1e77 100644
--- a/lib/use_case/create_share.dart
+++ b/lib/use_case/create_share.dart
@@ -2,6 +2,15 @@ import 'package:nc_photos/account.dart';
 import 'package:nc_photos/entity/file.dart';
 import 'package:nc_photos/entity/share.dart';
 
+class CreateUserShare {
+  const CreateUserShare(this.shareRepo);
+
+  Future<Share> call(Account account, File file, String shareWith) =>
+      shareRepo.create(account, file, shareWith);
+
+  final ShareRepo shareRepo;
+}
+
 class CreateLinkShare {
   const CreateLinkShare(this.shareRepo);
 
diff --git a/lib/widget/share_album_dialog.dart b/lib/widget/share_album_dialog.dart
index 1808a166..22e6a1a5 100644
--- a/lib/widget/share_album_dialog.dart
+++ b/lib/widget/share_album_dialog.dart
@@ -14,6 +14,7 @@ import 'package:nc_photos/exception_util.dart' as exception_util;
 import 'package:nc_photos/iterable_extension.dart';
 import 'package:nc_photos/k.dart' as k;
 import 'package:nc_photos/snack_bar_manager.dart';
+import 'package:nc_photos/use_case/create_share.dart';
 
 class ShareAlbumDialog extends StatefulWidget {
   const ShareAlbumDialog({
@@ -146,7 +147,7 @@ class _ShareAlbumDialogState extends State<ShareAlbumDialog> {
     if (share == null) {
       // create new share
       try {
-        final newShare = await shareRepo.create(
+        final newShare = await CreateUserShare(shareRepo)(
             widget.account, widget.file, sharee.shareWith);
         _overrideSharee[sharee.shareWith] = newShare;
       } catch (e, stackTrace) {