|
@@ -21,6 +21,7 @@ import 'package:photos/ui/components/divider_widget.dart';
|
|
import 'package:photos/ui/components/menu_item_widget.dart';
|
|
import 'package:photos/ui/components/menu_item_widget.dart';
|
|
import 'package:photos/ui/components/menu_section_title.dart';
|
|
import 'package:photos/ui/components/menu_section_title.dart';
|
|
import 'package:photos/ui/payment/subscription.dart';
|
|
import 'package:photos/ui/payment/subscription.dart';
|
|
|
|
+import 'package:photos/ui/sharing/manage_album_participant.dart';
|
|
import 'package:photos/ui/sharing/manage_links_widget.dart';
|
|
import 'package:photos/ui/sharing/manage_links_widget.dart';
|
|
import 'package:photos/utils/dialog_util.dart';
|
|
import 'package:photos/utils/dialog_util.dart';
|
|
import 'package:photos/utils/email_util.dart';
|
|
import 'package:photos/utils/email_util.dart';
|
|
@@ -49,11 +50,25 @@ class _ShareCollectionPageState extends State<ShareCollectionPage> {
|
|
Widget build(BuildContext context) {
|
|
Widget build(BuildContext context) {
|
|
_sharees = widget.collection.sharees;
|
|
_sharees = widget.collection.sharees;
|
|
final children = <Widget>[];
|
|
final children = <Widget>[];
|
|
|
|
+ children.add(
|
|
|
|
+ MenuSectionTitle(
|
|
|
|
+ title: _sharees.isEmpty
|
|
|
|
+ ? "Share with specific people"
|
|
|
|
+ : "Shared with ${_sharees.length} people",
|
|
|
|
+ iconData: Icons.workspaces,
|
|
|
|
+ ),
|
|
|
|
+ );
|
|
if (!_showEntryField && _sharees.isEmpty) {
|
|
if (!_showEntryField && _sharees.isEmpty) {
|
|
_showEntryField = true;
|
|
_showEntryField = true;
|
|
} else {
|
|
} else {
|
|
for (final user in _sharees) {
|
|
for (final user in _sharees) {
|
|
- children.add(EmailItemWidget(widget.collection, user.email));
|
|
|
|
|
|
+ children.add(
|
|
|
|
+ EmailItemWidget(
|
|
|
|
+ widget.collection,
|
|
|
|
+ user.email,
|
|
|
|
+ user,
|
|
|
|
+ ),
|
|
|
|
+ );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (_showEntryField) {
|
|
if (_showEntryField) {
|
|
@@ -114,6 +129,7 @@ class _ShareCollectionPageState extends State<ShareCollectionPage> {
|
|
MenuItemWidget(
|
|
MenuItemWidget(
|
|
captionedTextWidget: const CaptionedTextWidget(
|
|
captionedTextWidget: const CaptionedTextWidget(
|
|
title: "Copy link",
|
|
title: "Copy link",
|
|
|
|
+ makeTextBold: true,
|
|
),
|
|
),
|
|
leadingIcon: Icons.copy,
|
|
leadingIcon: Icons.copy,
|
|
menuItemColor: getEnteColorScheme(context).fillFaint,
|
|
menuItemColor: getEnteColorScheme(context).fillFaint,
|
|
@@ -131,6 +147,7 @@ class _ShareCollectionPageState extends State<ShareCollectionPage> {
|
|
MenuItemWidget(
|
|
MenuItemWidget(
|
|
captionedTextWidget: const CaptionedTextWidget(
|
|
captionedTextWidget: const CaptionedTextWidget(
|
|
title: "Send link",
|
|
title: "Send link",
|
|
|
|
+ makeTextBold: true,
|
|
),
|
|
),
|
|
leadingIcon: Icons.adaptive.share,
|
|
leadingIcon: Icons.adaptive.share,
|
|
menuItemColor: getEnteColorScheme(context).fillFaint,
|
|
menuItemColor: getEnteColorScheme(context).fillFaint,
|
|
@@ -147,11 +164,13 @@ class _ShareCollectionPageState extends State<ShareCollectionPage> {
|
|
MenuItemWidget(
|
|
MenuItemWidget(
|
|
captionedTextWidget: const CaptionedTextWidget(
|
|
captionedTextWidget: const CaptionedTextWidget(
|
|
title: "Manage link",
|
|
title: "Manage link",
|
|
|
|
+ makeTextBold: true,
|
|
),
|
|
),
|
|
leadingIcon: Icons.link,
|
|
leadingIcon: Icons.link,
|
|
trailingIcon: Icons.navigate_next,
|
|
trailingIcon: Icons.navigate_next,
|
|
menuItemColor: getEnteColorScheme(context).fillFaint,
|
|
menuItemColor: getEnteColorScheme(context).fillFaint,
|
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
|
|
|
+ trailingIconIsMuted: true,
|
|
onTap: () async {
|
|
onTap: () async {
|
|
routeToPage(
|
|
routeToPage(
|
|
context,
|
|
context,
|
|
@@ -388,10 +407,12 @@ class _ShareCollectionPageState extends State<ShareCollectionPage> {
|
|
class EmailItemWidget extends StatelessWidget {
|
|
class EmailItemWidget extends StatelessWidget {
|
|
final Collection collection;
|
|
final Collection collection;
|
|
final String email;
|
|
final String email;
|
|
|
|
+ final User user;
|
|
|
|
|
|
const EmailItemWidget(
|
|
const EmailItemWidget(
|
|
this.collection,
|
|
this.collection,
|
|
- this.email, {
|
|
|
|
|
|
+ this.email,
|
|
|
|
+ this.user, {
|
|
Key key,
|
|
Key key,
|
|
}) : super(key: key);
|
|
}) : super(key: key);
|
|
|
|
|
|
@@ -402,9 +423,17 @@ class EmailItemWidget extends StatelessWidget {
|
|
children: [
|
|
children: [
|
|
Padding(
|
|
Padding(
|
|
padding: const EdgeInsets.fromLTRB(8, 0, 0, 0),
|
|
padding: const EdgeInsets.fromLTRB(8, 0, 0, 0),
|
|
- child: Text(
|
|
|
|
- email,
|
|
|
|
- style: const TextStyle(fontSize: 16),
|
|
|
|
|
|
+ child: GestureDetector(
|
|
|
|
+ onTap: () async {
|
|
|
|
+ await routeToPage(
|
|
|
|
+ context,
|
|
|
|
+ ManageIndividualParticipant(collection: collection, user: user),
|
|
|
|
+ );
|
|
|
|
+ },
|
|
|
|
+ child: Text(
|
|
|
|
+ email,
|
|
|
|
+ style: const TextStyle(fontSize: 16),
|
|
|
|
+ ),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
const Expanded(child: SizedBox()),
|
|
const Expanded(child: SizedBox()),
|