Browse Source

Removes unused context keys for webviews

main
Eric Amodio 1 year ago
parent
commit
ca10872650
3 changed files with 9 additions and 42 deletions
  1. +2
    -6
      src/constants.ts
  2. +4
    -5
      src/webviews/rebase/rebaseEditor.ts
  3. +3
    -31
      src/webviews/webviewController.ts

+ 2
- 6
src/constants.ts View File

@ -569,12 +569,8 @@ export type TreeViewNodeTypes =
export type ContextKeys =
| `${typeof extensionPrefix}:action:${string}`
| `${typeof extensionPrefix}:key:${Keys}`
| `${typeof extensionPrefix}:webview:${WebviewTypes | CustomEditorTypes}:${
| 'active'
| 'focus'
| 'inputFocus'
| 'visible'}`
| `${typeof extensionPrefix}:webviewView:${WebviewViewTypes}:${'active' | 'focus' | 'inputFocus' | 'visible'}`
| `${typeof extensionPrefix}:webview:${WebviewTypes | CustomEditorTypes}:visible`
| `${typeof extensionPrefix}:webviewView:${WebviewViewTypes}:visible`
| `${typeof extensionPrefix}:activeFileStatus`
| `${typeof extensionPrefix}:annotationStatus`
| `${typeof extensionPrefix}:debugging`

+ 4
- 5
src/webviews/rebase/rebaseEditor.ts View File

@ -251,8 +251,8 @@ export class RebaseEditorProvider implements CustomTextEditorProvider, Disposabl
@debug<RebaseEditorProvider['onViewFocusChanged']>({
args: { 0: e => `focused=${e.focused}, inputFocused=${e.inputFocused}` },
})
protected onViewFocusChanged(e: WebviewFocusChangedParams): void {
setContextKeys(this.contextKeyPrefix, e.focused, e.focused, e.inputFocused);
protected onViewFocusChanged(_e: WebviewFocusChangedParams): void {
setContextKeys(this.contextKeyPrefix);
}
@debug<RebaseEditorProvider['onViewStateChanged']>({
@ -262,9 +262,8 @@ export class RebaseEditorProvider implements CustomTextEditorProvider, Disposabl
},
})
protected onViewStateChanged(context: RebaseEditorContext, e: WebviewPanelOnDidChangeViewStateEvent): void {
const { active, visible } = e.webviewPanel;
if (visible) {
setContextKeys(this.contextKeyPrefix, active);
if (e.webviewPanel.visible) {
setContextKeys(this.contextKeyPrefix);
} else {
resetContextKeys(this.contextKeyPrefix);
}

+ 3
- 31
src/webviews/webviewController.ts View File

@ -302,7 +302,7 @@ export class WebviewController<
}
}
setContextKeys(this.descriptor.contextKeyPrefix, this.active);
setContextKeys(this.descriptor.contextKeyPrefix);
}
get baseWebviewState(): WebviewState {
@ -398,7 +398,7 @@ export class WebviewController<
args: { 0: e => `focused=${e.focused}, inputFocused=${e.inputFocused}` },
})
onViewFocusChanged(e: WebviewFocusChangedParams): void {
setContextKeys(this.descriptor.contextKeyPrefix, undefined, e.focused, e.inputFocused);
setContextKeys(this.descriptor.contextKeyPrefix);
this.provider.onFocusChanged?.(e.focused);
}
@ -422,7 +422,7 @@ export class WebviewController<
if (visible) {
void this.container.usage.track(`${this.descriptor.trackingFeature}:shown`);
setContextKeys(this.descriptor.contextKeyPrefix, active);
setContextKeys(this.descriptor.contextKeyPrefix);
if (active != null) {
this.provider.onActiveChanged?.(active);
if (!active) {
@ -636,40 +636,12 @@ export function resetContextKeys(
contextKeyPrefix: `gitlens:webview:${WebviewTypes | CustomEditorTypes}` | `gitlens:webviewView:${WebviewViewTypes}`,
): void {
void setContext(`${contextKeyPrefix}:visible`, false);
void setContext(`${contextKeyPrefix}:inputFocus`, false);
void setContext(`${contextKeyPrefix}:focus`, false);
if (contextKeyPrefix.startsWith('gitlens:webview:')) {
void setContext(`${contextKeyPrefix as `gitlens:webview:${WebviewTypes | CustomEditorTypes}`}:active`, false);
}
}
export function setContextKeys(
contextKeyPrefix: `gitlens:webview:${WebviewTypes | CustomEditorTypes}` | `gitlens:webviewView:${WebviewViewTypes}`,
active?: boolean,
focus?: boolean,
inputFocus?: boolean,
): void {
void setContext(`${contextKeyPrefix}:visible`, true);
if (contextKeyPrefix.startsWith('gitlens:webview:')) {
if (active != null) {
void setContext(
`${contextKeyPrefix as `gitlens:webview:${WebviewTypes | CustomEditorTypes}`}:active`,
active,
);
if (!active) {
focus = false;
inputFocus = false;
}
}
}
if (focus != null) {
void setContext(`${contextKeyPrefix}:focus`, focus);
}
if (inputFocus != null) {
void setContext(`${contextKeyPrefix}:inputFocus`, inputFocus);
}
}
export function updatePendingContext<Context extends object>(

Loading…
Cancel
Save