feat(zen): use dedicated floating button to stop zen mode

This commit is contained in:
Elian Doran 2025-02-14 18:18:28 +02:00
parent e8f0af8954
commit 2c80607bfd
No known key found for this signature in database
5 changed files with 52 additions and 3 deletions

View File

@ -327,6 +327,7 @@ type EventMappings = {
};
scrollToEnd: { ntxId: string };
noteTypeMimeChanged: { noteId: string };
zenModeChanged: { isEnabled: boolean };
};
export type EventListener<T extends EventNames> = {

View File

@ -179,7 +179,10 @@ export default class RootCommandExecutor extends Component {
}
toggleZenModeCommand() {
$("body").toggleClass("zen");
const $body = $("body");
$body.toggleClass("zen");
const isEnabled = $body.hasClass("zen");
appContext.triggerEvent("zenModeChanged", { isEnabled });
}
firstTabCommand() {

View File

@ -87,6 +87,7 @@ import options from "../services/options.js";
import utils from "../services/utils.js";
import GeoMapButtons from "../widgets/floating_buttons/geo_map_button.js";
import ContextualHelpButton from "../widgets/floating_buttons/help_button.js";
import CloseZenButton from "../widgets/close_zen_button.js";
export default class DesktopLayout {
constructor(customWidgets) {
@ -262,7 +263,8 @@ export default class DesktopLayout {
.child(new DeleteNotesDialog())
.child(new InfoDialog())
.child(new ConfirmDialog())
.child(new PromptDialog());
.child(new PromptDialog())
.child(new CloseZenButton())
}
#buildLauncherPane(isHorizontal) {

View File

@ -0,0 +1,43 @@
import BasicWidget from "./basic_widget.js";
const TPL = `\
<div class="close-zen-container">
<a class="button-widget bx icon-action bxs-yin-yang"
data-trigger-command="toggleZenMode" />
<style>
.close-zen-container {
display: none;
--size: 32px;
width: var(--size);
height: var(--size);
}
body.zen .close-zen-container {
display: block;
position: fixed;
top: 0;
right: 0;
z-index: 9999;
}
body.zen.electron:not(.native-titlebar) .close-zen-container {
--size: 32px;
left: calc(env(titlebar-area-width) - var(--size));
right: unset;
}
</style>
</div>
`;
export default class CloseZenButton extends BasicWidget {
doRender(): void {
this.$widget = $(TPL);
}
zenChangedEvent() {
this.toggleInt(true);
}
}

View File

@ -1651,7 +1651,7 @@ body.zen {
body.zen .gutter,
body.zen #launcher-container,
body.zen #launcher-pane > :not(.global-menu),
body.zen #launcher-pane,
body.zen #left-pane,
body.zen #right-pane,
body.zen .tab-row-container,