Get rid of DIPolymerElement and KeyboardShortcutMixin
Now that we're fully on lit, we no longer need these classes.
Release-Notes: skip
Change-Id: Ia51a5f6f2af51d49014d137b67797c7c284e0596
diff --git a/polygerrit-ui/app/services/shortcuts/shortcuts-service.ts b/polygerrit-ui/app/services/shortcuts/shortcuts-service.ts
index c27da15..7ca429b 100644
--- a/polygerrit-ui/app/services/shortcuts/shortcuts-service.ts
+++ b/polygerrit-ui/app/services/shortcuts/shortcuts-service.ts
@@ -26,6 +26,8 @@
import {FlagsService} from '../flags/flags';
import {define} from '../../models/dependency';
+export {Shortcut, ShortcutSection};
+
export type SectionView = Array<{binding: string[][]; text: string}>;
export interface ShortcutListener {
@@ -67,12 +69,6 @@
*/
private readonly activeShortcuts = new Set<Shortcut>();
- /**
- * Keeps track of cleanup callbacks (which remove keyboard listeners) that
- * have to be invoked when a component unregisters itself.
- */
- private readonly cleanupsPerHost = new Map<HTMLElement, (() => void)[]>();
-
/** Static map built in the constructor by iterating over the config. */
private readonly bindings = new Map<Shortcut, Binding[]>();
@@ -239,23 +235,6 @@
};
}
- /**
- * Being called by the Polymer specific KeyboardShortcutMixin.
- */
- attachHost(host: HTMLElement, shortcuts: ShortcutListener[]) {
- const cleanups: (() => void)[] = [];
- for (const s of shortcuts) {
- cleanups.push(this.addShortcutListener(s.shortcut, s.listener));
- }
- this.cleanupsPerHost.set(host, cleanups);
- }
-
- detachHost(host: HTMLElement) {
- const cleanups = this.cleanupsPerHost.get(host);
- for (const cleanup of cleanups ?? []) cleanup();
- return true;
- }
-
addListener(listener: ShortcutViewListener) {
this.listeners.add(listener);
listener(this.directoryView());
diff --git a/polygerrit-ui/app/services/shortcuts/shortcuts-service_test.ts b/polygerrit-ui/app/services/shortcuts/shortcuts-service_test.ts
index 9e978a7..69c371e 100644
--- a/polygerrit-ui/app/services/shortcuts/shortcuts-service_test.ts
+++ b/polygerrit-ui/app/services/shortcuts/shortcuts-service_test.ts
@@ -120,9 +120,7 @@
test('active shortcuts by section', () => {
assert.deepEqual(mapToObject(service.activeShortcutsBySection()), {});
- service.attachHost(document.createElement('div'), [
- {shortcut: Shortcut.NEXT_FILE, listener: _ => {}},
- ]);
+ service.addShortcutListener(Shortcut.NEXT_FILE, _ => {});
assert.deepEqual(mapToObject(service.activeShortcutsBySection()), {
[ShortcutSection.NAVIGATION]: [
{
@@ -132,10 +130,7 @@
},
],
});
-
- service.attachHost(document.createElement('div'), [
- {shortcut: Shortcut.NEXT_LINE, listener: _ => {}},
- ]);
+ service.addShortcutListener(Shortcut.NEXT_LINE, _ => {});
assert.deepEqual(mapToObject(service.activeShortcutsBySection()), {
[ShortcutSection.DIFFS]: [
{
@@ -156,10 +151,8 @@
],
});
- service.attachHost(document.createElement('div'), [
- {shortcut: Shortcut.SEARCH, listener: _ => {}},
- {shortcut: Shortcut.GO_TO_OPENED_CHANGES, listener: _ => {}},
- ]);
+ service.addShortcutListener(Shortcut.SEARCH, _ => {});
+ service.addShortcutListener(Shortcut.GO_TO_OPENED_CHANGES, _ => {});
assert.deepEqual(mapToObject(service.activeShortcutsBySection()), {
[ShortcutSection.DIFFS]: [
{
@@ -196,13 +189,11 @@
test('directory view', () => {
assert.deepEqual(mapToObject(service.directoryView()), {});
- service.attachHost(document.createElement('div'), [
- {shortcut: Shortcut.GO_TO_OPENED_CHANGES, listener: _ => {}},
- {shortcut: Shortcut.NEXT_FILE, listener: _ => {}},
- {shortcut: Shortcut.NEXT_LINE, listener: _ => {}},
- {shortcut: Shortcut.SAVE_COMMENT, listener: _ => {}},
- {shortcut: Shortcut.SEARCH, listener: _ => {}},
- ]);
+ service.addShortcutListener(Shortcut.GO_TO_OPENED_CHANGES, _ => {});
+ service.addShortcutListener(Shortcut.NEXT_FILE, _ => {});
+ service.addShortcutListener(Shortcut.NEXT_LINE, _ => {});
+ service.addShortcutListener(Shortcut.SAVE_COMMENT, _ => {});
+ service.addShortcutListener(Shortcut.SEARCH, _ => {});
assert.deepEqual(mapToObject(service.directoryView()), {
[ShortcutSection.DIFFS]: [
{binding: [['j'], ['↓']], text: 'Go to next line'},