joplin/ElectronClient/app/InteropServiceHelper.js

50 lines
1.3 KiB
JavaScript

const { _ } = require("lib/locale");
const { bridge } = require("electron").remote.require("./bridge");
const InteropService = require("lib/services/InteropService");
class InteropServiceHelper {
static async export(dispatch, module, options = null) {
if (!options) options = {};
let path = null;
if (module.target === "file") {
path = bridge().showSaveDialog({
filters: [{ name: module.description, extensions: [module.fileExtension] }],
});
} else {
path = bridge().showOpenDialog({
properties: ["openDirectory", "createDirectory"],
});
}
if (!path || (Array.isArray(path) && !path.length)) return;
if (Array.isArray(path)) path = path[0];
dispatch({
type: "WINDOW_COMMAND",
name: "showModalMessage",
message: _('Exporting to "%s" as "%s" format. Please wait...', path, module.format),
});
const exportOptions = {};
exportOptions.path = path;
exportOptions.format = module.format;
if (options.sourceFolderIds) exportOptions.sourceFolderIds = options.sourceFolderIds;
if (options.sourceNoteIds) exportOptions.sourceNoteIds = options.sourceNoteIds;
const service = new InteropService();
const result = await service.export(exportOptions);
console.info("Export result: ", result);
dispatch({
type: "WINDOW_COMMAND",
name: "hideModalMessage",
});
}
}
module.exports = InteropServiceHelper;