mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-30 03:32:26 +08:00
fix(leftpaneVisibility): Make leftpane visibility switch no longer depend on entitiesReloadedEvent
This commit is contained in:
parent
501fab2736
commit
025c6a4e0e
@ -283,6 +283,9 @@ export type CommandMappings = {
|
|||||||
type EventMappings = {
|
type EventMappings = {
|
||||||
initialRenderComplete: {};
|
initialRenderComplete: {};
|
||||||
frocaReloaded: {};
|
frocaReloaded: {};
|
||||||
|
setLeftPaneVisibility: {
|
||||||
|
leftPaneVisible: boolean | null;
|
||||||
|
}
|
||||||
protectedSessionStarted: {};
|
protectedSessionStarted: {};
|
||||||
notesReloaded: {
|
notesReloaded: {
|
||||||
noteIds: string[];
|
noteIds: string[];
|
||||||
|
@ -78,15 +78,15 @@ export default class RootCommandExecutor extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
hideLeftPaneCommand() {
|
hideLeftPaneCommand() {
|
||||||
options.save(`leftPaneVisible`, "false");
|
appContext.triggerEvent("setLeftPaneVisibility", { leftPaneVisible: false });
|
||||||
}
|
}
|
||||||
|
|
||||||
showLeftPaneCommand() {
|
showLeftPaneCommand() {
|
||||||
options.save(`leftPaneVisible`, "true");
|
appContext.triggerEvent("setLeftPaneVisibility", { leftPaneVisible: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleLeftPaneCommand() {
|
toggleLeftPaneCommand() {
|
||||||
options.toggle("leftPaneVisible");
|
appContext.triggerEvent("setLeftPaneVisibility", { leftPaneVisible: null });
|
||||||
}
|
}
|
||||||
|
|
||||||
async showBackendLogCommand() {
|
async showBackendLogCommand() {
|
||||||
|
@ -35,13 +35,9 @@ export default class LeftPaneToggleWidget extends CommandButtonWidget {
|
|||||||
super.refreshIcon();
|
super.refreshIcon();
|
||||||
splitService.setupLeftPaneResizer(this.currentLeftPaneVisible);
|
splitService.setupLeftPaneResizer(this.currentLeftPaneVisible);
|
||||||
}
|
}
|
||||||
|
|
||||||
entitiesReloadedEvent({ loadResults }: EventData<"entitiesReloaded">) {
|
setLeftPaneVisibilityEvent({ leftPaneVisible }: EventData<"setLeftPaneVisibility">) {
|
||||||
if (loadResults.isOptionReloaded("leftPaneVisible") && document.hasFocus()) {
|
this.currentLeftPaneVisible = leftPaneVisible ?? !this.currentLeftPaneVisible;
|
||||||
// options.is("leftPaneVisible") changed — it may or may not be the same as currentLeftPaneVisible, but as long as the window is focused, the left pane visibility should be toggled.
|
this.refreshIcon();
|
||||||
// See PR description for detailed explanation of multi-window edge cases: https://github.com/TriliumNext/Notes/pull/1962
|
|
||||||
this.currentLeftPaneVisible = !this.currentLeftPaneVisible;
|
|
||||||
this.refreshIcon();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,18 +20,17 @@ export default class LeftPaneContainer extends FlexContainer<Component> {
|
|||||||
return super.isEnabled() && this.currentLeftPaneVisible;
|
return super.isEnabled() && this.currentLeftPaneVisible;
|
||||||
}
|
}
|
||||||
|
|
||||||
entitiesReloadedEvent({ loadResults }: EventData<"entitiesReloaded">) {
|
setLeftPaneVisibilityEvent({ leftPaneVisible }: EventData<"setLeftPaneVisibility">) {
|
||||||
if (loadResults.isOptionReloaded("leftPaneVisible") && document.hasFocus()) {
|
this.currentLeftPaneVisible = leftPaneVisible ?? !this.currentLeftPaneVisible;
|
||||||
// options.is("leftPaneVisible") changed — it may or may not be the same as currentLeftPaneVisible, but as long as the window is focused, the left pane visibility should be toggled.
|
const visible = this.isEnabled();
|
||||||
this.currentLeftPaneVisible = !this.currentLeftPaneVisible;
|
this.toggleInt(visible);
|
||||||
const visible = this.isEnabled();
|
|
||||||
this.toggleInt(visible);
|
|
||||||
|
|
||||||
if (visible) {
|
if (visible) {
|
||||||
this.triggerEvent("focusTree", {});
|
this.triggerEvent("focusTree", {});
|
||||||
} else {
|
} else {
|
||||||
this.triggerEvent("focusOnDetail", { ntxId: appContext.tabManager.getActiveContext()?.ntxId });
|
this.triggerEvent("focusOnDetail", { ntxId: appContext.tabManager.getActiveContext()?.ntxId });
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
options.save("leftPaneVisible", this.currentLeftPaneVisible.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user