improve hiding of edit button #2787

This commit is contained in:
zadam 2022-05-01 22:44:23 +02:00
parent f705c432fd
commit 6b61b0604a

View File

@ -1,5 +1,7 @@
import ButtonWidget from "./button_widget.js";
import appContext from "../../services/app_context.js";
import attributeService from "../../services/attributes.js";
import protectedSessionHolder from "../../services/protected_session_holder.js";
export default class EditButton extends ButtonWidget {
isEnabled() {
@ -22,9 +24,29 @@ export default class EditButton extends ButtonWidget {
}
async refreshWithNote(note) {
// can't do this in isEnabled() since isReadOnly is async
this.toggleInt(await this.noteContext.isReadOnly());
if (note.isProtected && !protectedSessionHolder.isProtectedSessionAvailable()) {
this.toggleInt(false);
}
else {
// prevent flickering by assuming hidden before async operation
this.toggleInt(false);
// can't do this in isEnabled() since isReadOnly is async
this.toggleInt(await this.noteContext.isReadOnly());
}
await super.refreshWithNote(note);
}
entitiesReloadedEvent({loadResults}) {
if (loadResults.getAttributes().find(
attr => attr.type === 'label'
&& attr.name.toLowerCase().includes("readonly")
&& attributeService.isAffecting(attr, this.note)
)) {
this.noteContext.readOnlyTemporarilyDisabled = false;
this.refresh();
}
}
}