Merge branch 'main' of github.com:silverbulletmd/silverbullet
This commit is contained in:
commit
3883ba9a66
@ -74,7 +74,7 @@ import {
|
||||
vim,
|
||||
yUndoManagerKeymap,
|
||||
} from "./deps.ts";
|
||||
import { CommandHook } from "./hooks/command.ts";
|
||||
import { AppCommand, CommandHook } from "./hooks/command.ts";
|
||||
import { SlashCommandHook } from "./hooks/slash_command.ts";
|
||||
import { PathPageNavigator } from "./navigator.ts";
|
||||
import reducer from "./reducer.ts";
|
||||
@ -926,7 +926,7 @@ export class Editor {
|
||||
});
|
||||
}
|
||||
}}
|
||||
commands={viewState.commands}
|
||||
commands={this.getCommandsByContext(viewState)}
|
||||
vimMode={viewState.uiOptions.vimMode}
|
||||
darkMode={viewState.uiOptions.darkMode}
|
||||
completer={this.miniEditorComplete.bind(this)}
|
||||
@ -1069,6 +1069,23 @@ export class Editor {
|
||||
preactRender(<ViewComponent />, container);
|
||||
}
|
||||
|
||||
private getCommandsByContext(
|
||||
state: AppViewState,
|
||||
): Map<string, AppCommand> {
|
||||
const commands = new Map(state.commands);
|
||||
for (const [k, v] of state.commands.entries()) {
|
||||
if (
|
||||
v.command.contexts &&
|
||||
(!state.showCommandPaletteContext ||
|
||||
!v.command.contexts.includes(state.showCommandPaletteContext))
|
||||
) {
|
||||
commands.delete(k);
|
||||
}
|
||||
}
|
||||
|
||||
return commands;
|
||||
}
|
||||
|
||||
private getContext(): string | undefined {
|
||||
const state = this.editorView!.state;
|
||||
const selection = state.selection.main;
|
||||
|
@ -63,25 +63,17 @@ export default function reducer(
|
||||
};
|
||||
}
|
||||
case "show-palette": {
|
||||
const commands = new Map(state.commands);
|
||||
for (const [k, v] of state.commands.entries()) {
|
||||
if (
|
||||
v.command.contexts &&
|
||||
(!action.context || !v.command.contexts.includes(action.context))
|
||||
) {
|
||||
commands.delete(k);
|
||||
}
|
||||
}
|
||||
return {
|
||||
...state,
|
||||
commands,
|
||||
showCommandPalette: true,
|
||||
showCommandPaletteContext: action.context,
|
||||
};
|
||||
}
|
||||
case "hide-palette":
|
||||
return {
|
||||
...state,
|
||||
showCommandPalette: false,
|
||||
showCommandPaletteContext: undefined,
|
||||
};
|
||||
case "command-run":
|
||||
return {
|
||||
|
@ -29,6 +29,7 @@ export type AppViewState = {
|
||||
isLoading: boolean;
|
||||
showPageNavigator: boolean;
|
||||
showCommandPalette: boolean;
|
||||
showCommandPaletteContext?: string;
|
||||
unsavedChanges: boolean;
|
||||
panels: { [key: string]: PanelConfig };
|
||||
allPages: Set<PageMeta>;
|
||||
|
Loading…
Reference in New Issue
Block a user