From 3a4e2509af94bdf02048a53ca5091d9f6a27ac03 Mon Sep 17 00:00:00 2001 From: Aman Harwara Date: Tue, 19 Oct 2021 21:13:20 +0530 Subject: [PATCH] feat: Add "Export" and "Duplicate" buttons in notes options menu. (#688) Co-authored-by: Mough --- app/assets/icons/ic-copy.svg | 2 +- app/assets/icons/ic-download.svg | 2 +- .../javascripts/components/NotesOptions.tsx | 36 ++++++++++++++ app/assets/javascripts/enums.ts | 2 +- .../preferences/panes/Extensions.tsx | 1 - .../panes/general-segments/Defaults.tsx | 48 ++++++++----------- .../javascripts/views/notes/notes_view.ts | 2 + package.json | 4 +- yarn.lock | 25 ++++------ 9 files changed, 72 insertions(+), 50 deletions(-) diff --git a/app/assets/icons/ic-copy.svg b/app/assets/icons/ic-copy.svg index 694626a33..98e2c93e6 100644 --- a/app/assets/icons/ic-copy.svg +++ b/app/assets/icons/ic-copy.svg @@ -1,3 +1,3 @@ - + diff --git a/app/assets/icons/ic-download.svg b/app/assets/icons/ic-download.svg index 923b753bd..e87e65165 100644 --- a/app/assets/icons/ic-download.svg +++ b/app/assets/icons/ic-download.svg @@ -1,3 +1,3 @@ - + diff --git a/app/assets/javascripts/components/NotesOptions.tsx b/app/assets/javascripts/components/NotesOptions.tsx index d95548af5..60aada1d6 100644 --- a/app/assets/javascripts/components/NotesOptions.tsx +++ b/app/assets/javascripts/components/NotesOptions.tsx @@ -205,6 +205,26 @@ export const NotesOptions = observer( setTagsMenuOpen(!tagsMenuOpen); }; + const downloadSelectedItems = () => { + notes.forEach((note) => { + const editor = application.componentManager.editorForNote(note); + const format = editor?.package_info?.file_type || 'txt'; + const downloadAnchor = document.createElement('a'); + downloadAnchor.setAttribute( + 'href', + 'data:text/plain;charset=utf-8,' + encodeURIComponent(note.text) + ); + downloadAnchor.setAttribute('download', `${note.title}.${format}`); + downloadAnchor.click(); + }); + }; + + const duplicateSelectedItems = () => { + notes.forEach((note) => { + application.duplicateItem(note); + }); + }; + return ( <> )} + + {unarchived && (