You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-07-13 00:10:37 +02:00
Desktop: Re-render note when resources are changed (#10459)
This commit is contained in:
@ -6,15 +6,15 @@ import { handleResourceDownloadMode } from './resourceHandling';
|
||||
import { splitHtml } from '@joplin/renderer/HtmlToHtml';
|
||||
import Setting from '@joplin/lib/models/Setting';
|
||||
import usePrevious from '../../hooks/usePrevious';
|
||||
import ResourceEditWatcher from '@joplin/lib/services/ResourceEditWatcher/index';
|
||||
|
||||
import { MarkupToHtml } from '@joplin/renderer';
|
||||
import Note from '@joplin/lib/models/Note';
|
||||
import ResourceFetcher from '@joplin/lib/services/ResourceFetcher';
|
||||
import DecryptionWorker from '@joplin/lib/services/DecryptionWorker';
|
||||
import { NoteEntity } from '@joplin/lib/services/database/types';
|
||||
import { focus } from '@joplin/lib/utils/focusHandler';
|
||||
import Logger from '@joplin/utils/Logger';
|
||||
import eventManager, { EventName } from '@joplin/lib/eventManager';
|
||||
import DecryptionWorker from '@joplin/lib/services/DecryptionWorker';
|
||||
|
||||
const logger = Logger.create('useFormNote');
|
||||
|
||||
@ -37,20 +37,18 @@ export interface HookDependencies {
|
||||
type MapFormNoteCallback = (previousFormNote: FormNote)=> FormNote;
|
||||
export type OnSetFormNote = (newFormNote: FormNote|MapFormNoteCallback)=> void;
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
|
||||
function installResourceChangeHandler(onResourceChangeHandler: Function) {
|
||||
function installResourceChangeHandler(onResourceChangeHandler: ()=> void) {
|
||||
ResourceFetcher.instance().on('downloadComplete', onResourceChangeHandler);
|
||||
ResourceFetcher.instance().on('downloadStarted', onResourceChangeHandler);
|
||||
DecryptionWorker.instance().on('resourceDecrypted', onResourceChangeHandler);
|
||||
ResourceEditWatcher.instance().on('resourceChange', onResourceChangeHandler);
|
||||
eventManager.on(EventName.ResourceChange, onResourceChangeHandler);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
|
||||
function uninstallResourceChangeHandler(onResourceChangeHandler: Function) {
|
||||
function uninstallResourceChangeHandler(onResourceChangeHandler: ()=> void) {
|
||||
ResourceFetcher.instance().off('downloadComplete', onResourceChangeHandler);
|
||||
ResourceFetcher.instance().off('downloadStarted', onResourceChangeHandler);
|
||||
DecryptionWorker.instance().off('resourceDecrypted', onResourceChangeHandler);
|
||||
ResourceEditWatcher.instance().off('resourceChange', onResourceChangeHandler);
|
||||
eventManager.off(EventName.ResourceChange, onResourceChangeHandler);
|
||||
}
|
||||
|
||||
function resourceInfosChanged(a: ResourceInfos, b: ResourceInfos): boolean {
|
||||
@ -258,7 +256,8 @@ export default function useFormNote(dependencies: HookDependencies) {
|
||||
const resourceIds = await Note.linkedResourceIds(formNote.body);
|
||||
if (!event || resourceIds.indexOf(event.id) >= 0) {
|
||||
clearResourceCache();
|
||||
setResourceInfos(await attachedResources(formNote.body));
|
||||
const newResourceInfos = await attachedResources(formNote.body);
|
||||
setResourceInfos(newResourceInfos);
|
||||
}
|
||||
}, [formNote.body]);
|
||||
|
||||
|
Reference in New Issue
Block a user