feat(16-01): wire shortcut:select-all listener in track-list, queue-panel, and playlist-view
- Add handleSelectAll bound handler calling selection.selectAll() in all three components - Register/unregister event listeners in connectedCallback/disconnectedCallback
This commit is contained in:
@@ -277,6 +277,10 @@ export class PlaylistView
|
||||
this.closePlaylistContextMenu();
|
||||
};
|
||||
|
||||
private handleSelectAll = (): void => {
|
||||
this.selection.selectAll();
|
||||
};
|
||||
|
||||
private clearSelectionHandler = (e: MouseEvent) => {
|
||||
const path = e.composedPath();
|
||||
const isTrackClick = path.some(
|
||||
@@ -1196,6 +1200,10 @@ export class PlaylistView
|
||||
'mousedown',
|
||||
this.sortDropdownCloseHandler,
|
||||
);
|
||||
document.addEventListener(
|
||||
'shortcut:select-all',
|
||||
this.handleSelectAll,
|
||||
);
|
||||
}
|
||||
|
||||
override disconnectedCallback() {
|
||||
@@ -1226,6 +1234,10 @@ export class PlaylistView
|
||||
'mousedown',
|
||||
this.sortDropdownCloseHandler,
|
||||
);
|
||||
document.removeEventListener(
|
||||
'shortcut:select-all',
|
||||
this.handleSelectAll,
|
||||
);
|
||||
}
|
||||
|
||||
override updated() {
|
||||
|
||||
@@ -92,6 +92,10 @@ export class QueuePanel
|
||||
@query('track-details')
|
||||
private trackDetailsDialog!: TrackDetails;
|
||||
|
||||
private handleSelectAll = (): void => {
|
||||
this.selection.selectAll();
|
||||
};
|
||||
|
||||
private closePickerHandler = (e: MouseEvent) => {
|
||||
const path = e.composedPath();
|
||||
const popup = this.addToPlaylistPopup;
|
||||
@@ -475,6 +479,10 @@ export class QueuePanel
|
||||
'dragend',
|
||||
this.onDocumentDragEnd,
|
||||
);
|
||||
document.addEventListener(
|
||||
'shortcut:select-all',
|
||||
this.handleSelectAll,
|
||||
);
|
||||
}
|
||||
|
||||
override disconnectedCallback() {
|
||||
@@ -499,6 +507,10 @@ export class QueuePanel
|
||||
'dragend',
|
||||
this.onDocumentDragEnd,
|
||||
);
|
||||
document.removeEventListener(
|
||||
'shortcut:select-all',
|
||||
this.handleSelectAll,
|
||||
);
|
||||
}
|
||||
|
||||
override updated() {
|
||||
|
||||
@@ -151,6 +151,10 @@ export class TrackList extends LitElement implements SelectionHost, ContextMenuH
|
||||
private prevSortField: string | null = null;
|
||||
private prevSortDir: SortDirection = 'asc';
|
||||
|
||||
private handleSelectAll = (): void => {
|
||||
this.selection.selectAll();
|
||||
};
|
||||
|
||||
private clearSelectionHandler = (e: MouseEvent) => {
|
||||
const path = e.composedPath();
|
||||
const isTrackClick = path.some(
|
||||
@@ -1030,6 +1034,7 @@ export class TrackList extends LitElement implements SelectionHost, ContextMenuH
|
||||
}
|
||||
document.addEventListener('mousedown', this.sortDropdownCloseHandler);
|
||||
document.addEventListener('click', this.clearSelectionHandler);
|
||||
document.addEventListener('shortcut:select-all', this.handleSelectAll);
|
||||
document.addEventListener('mousemove', this.onColResizeMove);
|
||||
document.addEventListener('mouseup', this.onColResizeEnd);
|
||||
|
||||
@@ -1051,6 +1056,7 @@ export class TrackList extends LitElement implements SelectionHost, ContextMenuH
|
||||
super.disconnectedCallback();
|
||||
document.removeEventListener('mousedown', this.sortDropdownCloseHandler);
|
||||
document.removeEventListener('click', this.clearSelectionHandler);
|
||||
document.removeEventListener('shortcut:select-all', this.handleSelectAll);
|
||||
document.removeEventListener('mousemove', this.onColResizeMove);
|
||||
document.removeEventListener('mouseup', this.onColResizeEnd);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user