diff --git a/frontend/app_flowy/assets/translations/en.json b/frontend/app_flowy/assets/translations/en.json index dfc80b402b..6a919ed8ba 100644 --- a/frontend/app_flowy/assets/translations/en.json +++ b/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?", diff --git a/frontend/app_flowy/lib/workspace/application/doc/share_bloc.dart b/frontend/app_flowy/lib/workspace/application/doc/share_bloc.dart index c8fd8a2b96..e24411fdc0 100644 --- a/frontend/app_flowy/lib/workspace/application/doc/share_bloc.dart +++ b/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 { ExportData _convertDeltaToMarkdown(ExportData value) { final result = deltaToMarkdown(value.data); value.data = result; + writeFile(result); return value; } + + Future get _exportDir async { + Directory documentsDir = await appFlowyDocumentDirectory(); + + return documentsDir; + } + + Future get _localPath async { + final dir = await _exportDir; + return dir.path; + } + + Future get _localFile async { + final path = await _localPath; + return File('$path/${view.name}.md'); + } + + Future writeFile(String md) async { + final file = await _localFile; + return file.writeAsString(md); + } } @freezed diff --git a/frontend/app_flowy/lib/workspace/presentation/plugins/doc/document.dart b/frontend/app_flowy/lib/workspace/presentation/plugins/doc/document.dart index 5dcf744083..f0609df31d 100644 --- a/frontend/app_flowy/lib/workspace/presentation/plugins/doc/document.dart +++ b/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().add(const DocShareEvent.shareMarkdown()); + showMessageToast('Exported to: ${LocaleKeys.notifications_export_path.tr()}'); break; case ShareAction.copyLink: FlowyAlertDialog(title: LocaleKeys.shareAction_workInProgress.tr()).show(context);