diff --git a/packages/web/src/javascripts/Components/NoteView/NoteViewFileDropTarget.tsx b/packages/web/src/javascripts/Components/NoteView/NoteViewFileDropTarget.tsx index 9a538e08f..ed822f429 100644 --- a/packages/web/src/javascripts/Components/NoteView/NoteViewFileDropTarget.tsx +++ b/packages/web/src/javascripts/Components/NoteView/NoteViewFileDropTarget.tsx @@ -2,6 +2,7 @@ import { FilesController } from '@/Controllers/FilesController' import { LinkingController } from '@/Controllers/LinkingController' import { SNNote } from '@standardnotes/snjs' import { useEffect } from 'react' +import { useApplication } from '../ApplicationProvider' import { useFileDragNDrop } from '../FileDragNDropProvider' type Props = { @@ -12,6 +13,7 @@ type Props = { } const NoteViewFileDropTarget = ({ note, linkingController, noteViewElement, filesController }: Props) => { + const application = useApplication() const { isDraggingFiles, addDragTarget, removeDragTarget } = useFileDragNDrop() useEffect(() => { @@ -22,6 +24,9 @@ const NoteViewFileDropTarget = ({ note, linkingController, noteViewElement, file tooltipText: 'Drop your files to upload and link them to the current note', callback: async (uploadedFile) => { await linkingController.linkItems(note, uploadedFile) + void application.mutator.changeAndSaveItem(uploadedFile, (mutator) => { + mutator.protected = note.protected + }) filesController.notifyObserversOfUploadedFileLinkingToCurrentNote(uploadedFile.uuid) }, }) @@ -32,7 +37,7 @@ const NoteViewFileDropTarget = ({ note, linkingController, noteViewElement, file removeDragTarget(target) } } - }, [addDragTarget, linkingController, note, noteViewElement, removeDragTarget, filesController]) + }, [addDragTarget, linkingController, note, noteViewElement, removeDragTarget, filesController, application.mutator]) return isDraggingFiles ? ( // Required to block drag events to editor iframe diff --git a/packages/web/src/javascripts/Components/SuperEditor/Plugins/EncryptedFilePlugin/FilePlugin.ts b/packages/web/src/javascripts/Components/SuperEditor/Plugins/EncryptedFilePlugin/FilePlugin.ts index b544e3f46..6cac9925e 100644 --- a/packages/web/src/javascripts/Components/SuperEditor/Plugins/EncryptedFilePlugin/FilePlugin.ts +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/EncryptedFilePlugin/FilePlugin.ts @@ -16,8 +16,11 @@ import { $wrapNodeInElement, mergeRegister } from '@lexical/utils' import { useFilesController } from '@/Controllers/FilesControllerProvider' import { FilesControllerEvent } from '@/Controllers/FilesController' import { useLinkingController } from '@/Controllers/LinkingControllerProvider' +import { useApplication } from '@/Components/ApplicationProvider' +import { SNNote } from '@standardnotes/snjs' -export default function FilePlugin(): JSX.Element | null { +export default function FilePlugin({ currentNote }: { currentNote: SNNote }): JSX.Element | null { + const application = useApplication() const [editor] = useLexicalComposerContext() const filesController = useFilesController() const linkingController = useLinkingController() @@ -34,6 +37,9 @@ export default function FilePlugin(): JSX.Element | null { if (uploadedFile) { editor.dispatchCommand(INSERT_FILE_COMMAND, uploadedFile.uuid) void linkingController.linkItemToSelectedItem(uploadedFile) + void application.mutator.changeAndSaveItem(uploadedFile, (mutator) => { + mutator.protected = currentNote.protected + }) } } catch (error) { console.error(error) @@ -70,7 +76,7 @@ export default function FilePlugin(): JSX.Element | null { COMMAND_PRIORITY_NORMAL, ), ) - }, [editor, filesController, linkingController]) + }, [application.mutator, currentNote.protected, editor, filesController, linkingController]) useEffect(() => { const disposer = filesController.addEventObserver((event, data) => { diff --git a/packages/web/src/javascripts/Components/SuperEditor/SuperEditor.tsx b/packages/web/src/javascripts/Components/SuperEditor/SuperEditor.tsx index 8b2e97a77..463269a4c 100644 --- a/packages/web/src/javascripts/Components/SuperEditor/SuperEditor.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/SuperEditor.tsx @@ -183,7 +183,7 @@ export const SuperEditor: FunctionComponent = ({ spellcheck={spellcheck} > - +