client: Hide ribbon for non text or read-only notes

This commit is contained in:
Elian Doran 2024-11-09 10:33:45 +02:00
parent 787aa6f5a6
commit b88f0e0109
No known key found for this signature in database
2 changed files with 25 additions and 3 deletions

View File

@ -216,7 +216,7 @@ export default class RibbonContainer extends NoteContextAwareWidget {
this.$tabContainer.empty();
for (const ribbonWidget of this.ribbonWidgets) {
const ret = ribbonWidget.getTitle(note);
const ret = await ribbonWidget.getTitle(note);
if (!ret.show) {
continue;
@ -351,6 +351,16 @@ export default class RibbonContainer extends NoteContextAwareWidget {
}
}
/**
* Executed as soon as the user presses the "Edit" floating button in a read-only text note.
*
* <p>
* We need to refresh the ribbon for cases such as the classic editor which relies on the read-only state.
*/
readOnlyTemporarilyDisabledEvent() {
this.refresh();
}
getActiveRibbonWidget() {
return this.ribbonWidgets.find(ch => ch.componentId === this.lastActiveComponentId)
}

View File

@ -27,13 +27,25 @@ export default class ClassicEditorToolbar extends NoteContextAwareWidget {
this.contentSized();
}
getTitle(note) {
async getTitle() {
return {
show: true,
show: await this.#shouldDisplay(),
activate: true,
title: "Editor toolbar",
icon: "bx bx-edit-alt"
};
}
async #shouldDisplay() {
if (this.note.type !== "text") {
return false;
}
if (await this.noteContext.isReadOnly()) {
return false;
}
return true;
}
}