Skip to content

Commit de7dcfa

Browse files
committed
refactor(perf): use set to track listeners
1 parent d81db8b commit de7dcfa

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

Diff for: packages/shared/widget-plugin-grid/src/keyboard-navigation/FocusTargetController.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ export type FocusTargetUpdateEvent = { lastPos: PositionString; targetPos: Posit
88
export type Listener = (event: FocusTargetUpdateEvent) => void;
99

1010
export class FocusTargetController {
11-
private _listeners: Listener[];
11+
private _listeners: Set<Listener>;
1212
private _focusTarget: PositionString;
1313
private _positionController: PositionController;
1414
private _layout: VirtualGridLayout;
1515

1616
constructor(pos: PositionController, layout: VirtualGridLayout) {
17-
this._listeners = [];
17+
this._listeners = new Set();
1818
this._focusTarget = this._getInitPosition();
1919
this._positionController = pos;
2020
this._layout = layout;
@@ -25,11 +25,11 @@ export class FocusTargetController {
2525
}
2626

2727
addListener(listener: Listener): void {
28-
this._listeners.push(listener);
28+
this._listeners.add(listener);
2929
}
3030

3131
removeListener(listener: Listener): void {
32-
this._listeners.splice(this._listeners.indexOf(listener), 1);
32+
this._listeners.delete(listener);
3333
}
3434

3535
updateGridLayout(layout: VirtualGridLayout): void {

0 commit comments

Comments
 (0)