feat(react/floating_buttons): port execute note button

This commit is contained in:
Elian Doran 2025-08-27 22:54:05 +03:00
parent 401260d3ca
commit 04b7e0cde9
No known key found for this signature in database
2 changed files with 12 additions and 7 deletions

View file

@ -61,6 +61,10 @@ const FLOATING_BUTTON_DEFINITIONS: FloatingButtonDefinition[] = [
isEnabled: ({ note, noteContext }) => isEnabled: ({ note, noteContext }) =>
note.type === "text" && noteContext?.viewScope?.viewMode === "default" note.type === "text" && noteContext?.viewScope?.viewMode === "default"
&& !!noteContext.viewScope?.highlightsListTemporarilyHidden && !!noteContext.viewScope?.highlightsListTemporarilyHidden
},
{
component: RunActiveNoteButton,
isEnabled: ({ note }) => note.mime.startsWith("application/javascript") || note.mime === "text/x-sqlite;schema=trilium"
} }
]; ];
@ -213,6 +217,14 @@ function ShowHighlightsListWidgetButton({ noteContext }: FloatingButtonContext)
/> />
} }
function RunActiveNoteButton() {
return <ActionButton
icon="bx bx-play"
text={t("code_buttons.execute_button_title")}
triggerCommand="runActiveNote"
/>
}
/** /**
* Show button that displays floating button after click on close button * Show button that displays floating button after click on close button
*/ */

View file

@ -17,10 +17,6 @@ const TPL = /*html*/`
} }
</style> </style>
<button data-trigger-command="runActiveNote" class="execute-button floating-button btn" title="${t("code_buttons.execute_button_title")}">
<span class="bx bx-play"></span>
</button>
<button class="trilium-api-docs-button floating-button btn" title="${t("code_buttons.trilium_api_docs_button_title")}"> <button class="trilium-api-docs-button floating-button btn" title="${t("code_buttons.trilium_api_docs_button_title")}">
<span class="bx bx-help-circle"></span> <span class="bx bx-help-circle"></span>
</button> </button>
@ -38,7 +34,6 @@ interface SaveSqlConsoleResponse {
export default class CodeButtonsWidget extends NoteContextAwareWidget { export default class CodeButtonsWidget extends NoteContextAwareWidget {
private $openTriliumApiDocsButton!: JQuery<HTMLElement>; private $openTriliumApiDocsButton!: JQuery<HTMLElement>;
private $executeButton!: JQuery<HTMLElement>;
private $saveToNoteButton!: JQuery<HTMLElement>; private $saveToNoteButton!: JQuery<HTMLElement>;
isEnabled() { isEnabled() {
@ -78,8 +73,6 @@ export default class CodeButtonsWidget extends NoteContextAwareWidget {
} }
async refreshWithNote(note: FNote) { async refreshWithNote(note: FNote) {
this.$executeButton.toggle(note.mime.startsWith("application/javascript") || note.mime === "text/x-sqlite;schema=trilium");
this.$saveToNoteButton.toggle(note.mime === "text/x-sqlite;schema=trilium" && note.isHiddenCompletely()); this.$saveToNoteButton.toggle(note.mime === "text/x-sqlite;schema=trilium" && note.isHiddenCompletely());
this.$openTriliumApiDocsButton.toggle(note.mime.startsWith("application/javascript;env=")); this.$openTriliumApiDocsButton.toggle(note.mime.startsWith("application/javascript;env="));