48 lines
1.1 KiB
JavaScript
Raw Normal View History

import server from "./server.js";
2019-08-26 20:21:43 +02:00
import ws from "./ws.js";
import treeUtils from "./tree_utils.js";
import noteAutocompleteService from "./note_autocomplete.js";
class Attributes {
/**
2019-05-08 19:55:24 +02:00
* @param {TabContext} ctx
*/
constructor(ctx) {
this.ctx = ctx;
this.attributePromise = null;
}
invalidateAttributes() {
this.attributePromise = null;
}
reloadAttributes() {
this.attributePromise = server.get(`notes/${this.ctx.note.noteId}/attributes`);
}
2018-12-24 23:08:43 +01:00
async refreshAttributes() {
this.reloadAttributes();
}
async getAttributes() {
if (!this.attributePromise) {
this.reloadAttributes();
}
2019-09-04 22:13:22 +02:00
return this.attributePromise;
2018-12-24 23:08:43 +01:00
}
eventReceived(name, data) {
if (!this.ctx.note) {
return;
}
if (name === 'syncData') {
if (data.find(sd => sd.entityName === 'attributes' && sd.noteId === this.ctx.note.noteId)) {
this.reloadAttributes();
}
}
}
}
export default Attributes;