mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 20:06:08 +01:00 
			
		
		
		
	fixes in event propagation
This commit is contained in:
		@@ -51,7 +51,7 @@ export default class Component {
 | 
				
			|||||||
        // don't create promises if not needed (optimization)
 | 
					        // don't create promises if not needed (optimization)
 | 
				
			||||||
        return callMethodPromise && childrenPromise
 | 
					        return callMethodPromise && childrenPromise
 | 
				
			||||||
            ? Promise.all([callMethodPromise, childrenPromise])
 | 
					            ? Promise.all([callMethodPromise, childrenPromise])
 | 
				
			||||||
            : null;
 | 
					            : (callMethodPromise || childrenPromise);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /** @returns {Promise} */
 | 
					    /** @returns {Promise} */
 | 
				
			||||||
@@ -64,11 +64,15 @@ export default class Component {
 | 
				
			|||||||
        const promises = [];
 | 
					        const promises = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (const child of this.children) {
 | 
					        for (const child of this.children) {
 | 
				
			||||||
            promises.push(child.handleEvent(name, data));
 | 
					            const ret = child.handleEvent(name, data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (ret) {
 | 
				
			||||||
 | 
					                promises.push(ret);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // don't create promises if not needed (optimization)
 | 
					        // don't create promises if not needed (optimization)
 | 
				
			||||||
        return promises.find(p => p) ? Promise.all(promises) : null;
 | 
					        return promises.length > 0 ? Promise.all(promises) : null;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /** @returns {Promise} */
 | 
					    /** @returns {Promise} */
 | 
				
			||||||
@@ -83,9 +87,9 @@ export default class Component {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async callMethod(fun, data) {
 | 
					    callMethod(fun, data) {
 | 
				
			||||||
        if (typeof fun !== 'function') {
 | 
					        if (typeof fun !== 'function') {
 | 
				
			||||||
            return false;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const startTime = Date.now();
 | 
					        const startTime = Date.now();
 | 
				
			||||||
@@ -98,14 +102,10 @@ export default class Component {
 | 
				
			|||||||
            console.log(`Call to ${fun.name} in ${this.componentId} took ${took}ms`);
 | 
					            console.log(`Call to ${fun.name} in ${this.componentId} took ${took}ms`);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (glob.isDev) {
 | 
					        if (glob.isDev && promise) {
 | 
				
			||||||
            await utils.timeLimit(promise, 20000, `Time limit failed on ${this.constructor.name} with ${fun.name}`);
 | 
					            return utils.timeLimit(promise, 20000, `Time limit failed on ${this.constructor.name} with ${fun.name}`);
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        else {
 | 
					 | 
				
			||||||
            // cheaper and in non-dev the extra reporting is lost anyway through reload
 | 
					 | 
				
			||||||
            await promise;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return true;
 | 
					        return promise;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,7 +28,7 @@ export default class NoteContextAwareWidget extends BasicWidget {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    get notePath() {
 | 
					    get notePath() {
 | 
				
			||||||
        return this.noteContext.notePath && this.noteContext;
 | 
					        return this.noteContext?.notePath;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    get hoistedNoteId() {
 | 
					    get hoistedNoteId() {
 | 
				
			||||||
@@ -64,7 +64,7 @@ export default class NoteContextAwareWidget extends BasicWidget {
 | 
				
			|||||||
    async refreshWithNote(note) {}
 | 
					    async refreshWithNote(note) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async noteSwitchedEvent({noteContext, notePath}) {
 | 
					    async noteSwitchedEvent({noteContext, notePath}) {
 | 
				
			||||||
        // if notePath does not match then the noteContext has been switched to another note in the mean time
 | 
					        // if notePath does not match then the noteContext has been switched to another note in the meantime
 | 
				
			||||||
        if (noteContext.notePath === notePath) {
 | 
					        if (noteContext.notePath === notePath) {
 | 
				
			||||||
            await this.noteSwitched();
 | 
					            await this.noteSwitched();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -88,7 +88,7 @@ export default class NoteContextAwareWidget extends BasicWidget {
 | 
				
			|||||||
    async noteSwitchedAndActivatedEvent({noteContext, notePath}) {
 | 
					    async noteSwitchedAndActivatedEvent({noteContext, notePath}) {
 | 
				
			||||||
        this.noteContext = noteContext;
 | 
					        this.noteContext = noteContext;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // if notePath does not match then the noteContext has been switched to another note in the mean time
 | 
					        // if notePath does not match then the noteContext has been switched to another note in the meantime
 | 
				
			||||||
        if (this.notePath === notePath) {
 | 
					        if (this.notePath === notePath) {
 | 
				
			||||||
            await this.refresh();
 | 
					            await this.refresh();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user