|
@@ -1,3 +1,7 @@
|
|
|
+import 'dart:typed_data';
|
|
|
+import 'dart:async';
|
|
|
+import 'dart:io';
|
|
|
+
|
|
|
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';
|
|
@@ -5,6 +9,8 @@ import 'package:flowy_sdk/protobuf/flowy-folder-data-model/view.pb.dart';
|
|
|
import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
|
|
|
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
|
+import 'package:file_saver/file_saver.dart';
|
|
|
+import 'package:path_provider/path_provider.dart';
|
|
|
import 'package:dartz/dartz.dart';
|
|
|
part 'share_bloc.freezed.dart';
|
|
|
|
|
@@ -33,8 +39,26 @@ class DocShareBloc extends Bloc<DocShareEvent, DocShareState> {
|
|
|
ExportData _convertDeltaToMarkdown(ExportData value) {
|
|
|
final result = deltaToMarkdown(value.data);
|
|
|
value.data = result;
|
|
|
+ writeFile(result);
|
|
|
return value;
|
|
|
}
|
|
|
+
|
|
|
+ Future<String> get _localPath async {
|
|
|
+ final dir = await getApplicationDocumentsDirectory();
|
|
|
+ return dir.path;
|
|
|
+ }
|
|
|
+
|
|
|
+ Future<File> get _localFile async {
|
|
|
+ final path = await _localPath;
|
|
|
+ print(view);
|
|
|
+ return File('$path/${view.name}.md');
|
|
|
+ }
|
|
|
+
|
|
|
+ Future<File> writeFile(String md) async {
|
|
|
+ final file = await _localFile;
|
|
|
+ print(file);
|
|
|
+ return file.writeAsString(md);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@freezed
|