diff --git a/lib/ui/share_folder_widget.dart b/lib/ui/share_folder_widget.dart index b0eef04ff..718f247af 100644 --- a/lib/ui/share_folder_widget.dart +++ b/lib/ui/share_folder_widget.dart @@ -1,8 +1,12 @@ +import 'dart:developer'; + +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:photos/folder_service.dart'; import 'package:photos/models/folder.dart'; import 'package:photos/ui/loading_widget.dart'; +import 'package:photos/utils/dialog_util.dart'; import 'package:photos/utils/toast_util.dart'; class ShareFolderWidget extends StatefulWidget { @@ -44,32 +48,125 @@ class _ShareFolderWidgetState extends State { Widget _getSharingDialog(Map sharingStatus) { return AlertDialog( - title: Text('Share "' + widget.title + '" with'), + title: Text('Sharing'), content: SingleChildScrollView( child: ListBody( children: [ - SharingCheckboxWidget(sharingStatus), + // SharingCheckboxWidget(sharingStatus), + SharingWidget(["vishnu@ente.io", "shanthy@ente.io"]), ], ), ), - actions: [ - FlatButton( - child: Text("Share"), - onPressed: () async { - var sharedWith = Set(); - for (var user in sharingStatus.keys) { - if (sharingStatus[user]) { - sharedWith.add(user); - } - } - _folder.sharedWith.clear(); - _folder.sharedWith.addAll(sharedWith); - await FolderSharingService.instance.updateFolder(_folder); - showToast("Sharing configuration updated successfully."); - Navigator.of(context).pop(); - }, + // actions: [ + // FlatButton( + // child: Text("Save"), + // onPressed: () async { + // var sharedWith = Set(); + // for (var user in sharingStatus.keys) { + // if (sharingStatus[user]) { + // sharedWith.add(user); + // } + // } + // _folder.sharedWith.clear(); + // _folder.sharedWith.addAll(sharedWith); + // await FolderSharingService.instance.updateFolder(_folder); + // showToast("Sharing configuration updated successfully."); + // Navigator.of(context).pop(); + // }, + // ), + // ], + ); + } +} + +class SharingWidget extends StatefulWidget { + final List emails; + SharingWidget(this.emails, {Key key}) : super(key: key); + + @override + _SharingWidgetState createState() => _SharingWidgetState(); +} + +class _SharingWidgetState extends State { + bool _showEntryField = false; + List _emails; + + @override + void initState() { + _emails = widget.emails; + super.initState(); + } + + @override + Widget build(BuildContext context) { + final children = List(); + for (final email in _emails) { + children.add(EmailItemWidget(email)); + } + if (_showEntryField) { + children.add(TextField( + keyboardType: TextInputType.emailAddress, + autofocus: true, + onSubmitted: (s) { + final progressDialog = createProgressDialog(context, "Sharing..."); + progressDialog.show(); + Future.delayed(Duration(milliseconds: 1000), () { + progressDialog.hide(); + setState(() { + _emails.add(s); + _showEntryField = false; + }); + }); + }, + )); + } + children.add(Padding( + padding: EdgeInsets.all(8), + )); + children.add(Container( + width: 220, + child: OutlineButton( + child: Icon( + Icons.add, ), - ], + onPressed: () { + setState(() { + _showEntryField = true; + }); + }, + ), + )); + var column = Column( + children: children, + ); + return column; + } +} + +class EmailItemWidget extends StatelessWidget { + final String email; + const EmailItemWidget( + this.email, { + Key key, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + email, + style: TextStyle(fontSize: 14), + ), + Icon( + Icons.remove_circle_outline, + color: Colors.redAccent, + ), + ], + ), ); } }