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 && (