Explorar o código

Merge pull request #518 from rileyhawk1417/export_notify

In App Notification Feature
Nathan.fooo %!s(int64=2) %!d(string=hai) anos
pai
achega
6727c12b3e

+ 6 - 0
frontend/app_flowy/assets/translations/en.json

@@ -96,6 +96,12 @@
     "lightMode": "Switch to Light mode",
     "darkMode": "Switch to Dark mode"
   },
+  "notifications": {
+    "export": {
+      "markdown": "Exported Note To Markdown",
+      "path": "Documents/flowy"
+    }
+  },
   "contactsPage": {
     "title": "Contacts",
     "whatsHappening": "What's happening this week?",

+ 25 - 0
frontend/app_flowy/lib/workspace/application/doc/share_bloc.dart

@@ -1,3 +1,6 @@
+import 'dart:async';
+import 'dart:io';
+import 'package:app_flowy/startup/tasks/rust_sdk.dart';
 import 'package:app_flowy/workspace/application/doc/share_service.dart';
 import 'package:app_flowy/workspace/application/markdown/delta_markdown.dart';
 import 'package:flowy_sdk/protobuf/flowy-text-block/entities.pb.dart';
@@ -33,8 +36,30 @@ class DocShareBloc extends Bloc<DocShareEvent, DocShareState> {
   ExportData _convertDeltaToMarkdown(ExportData value) {
     final result = deltaToMarkdown(value.data);
     value.data = result;
+    writeFile(result);
     return value;
   }
+
+  Future<Directory> get _exportDir async {
+    Directory documentsDir = await appFlowyDocumentDirectory();
+
+    return documentsDir;
+  }
+
+  Future<String> get _localPath async {
+    final dir = await _exportDir;
+    return dir.path;
+  }
+
+  Future<File> get _localFile async {
+    final path = await _localPath;
+    return File('$path/${view.name}.md');
+  }
+
+  Future<File> writeFile(String md) async {
+    final file = await _localFile;
+    return file.writeAsString(md);
+  }
 }
 
 @freezed

+ 2 - 0
frontend/app_flowy/lib/workspace/presentation/plugins/doc/document.dart

@@ -11,6 +11,7 @@ import 'package:app_flowy/workspace/application/appearance.dart';
 import 'package:app_flowy/workspace/application/doc/share_bloc.dart';
 import 'package:app_flowy/workspace/application/view/view_listener.dart';
 import 'package:app_flowy/workspace/presentation/home/home_stack.dart';
+import 'package:app_flowy/workspace/presentation/home/toast.dart';
 import 'package:app_flowy/workspace/presentation/plugins/widgets/left_bar_item.dart';
 import 'package:app_flowy/workspace/presentation/widgets/dialogs.dart';
 import 'package:app_flowy/workspace/presentation/widgets/pop_up_action.dart';
@@ -179,6 +180,7 @@ class DocumentShareButton extends StatelessWidget {
         switch (action) {
           case ShareAction.markdown:
             context.read<DocShareBloc>().add(const DocShareEvent.shareMarkdown());
+            showMessageToast('Exported to: ${LocaleKeys.notifications_export_path.tr()}');
             break;
           case ShareAction.copyLink:
             FlowyAlertDialog(title: LocaleKeys.shareAction_workInProgress.tr()).show(context);