diff --git a/netbox/project-static/src/buttons/selectMultiple.ts b/netbox/project-static/src/buttons/selectMultiple.ts index 8d75fb866..8a5d2aabb 100644 --- a/netbox/project-static/src/buttons/selectMultiple.ts +++ b/netbox/project-static/src/buttons/selectMultiple.ts @@ -4,36 +4,43 @@ import { previousPkCheckState } from '../stores'; type PreviousPkCheckState = { element: Nullable }; -function removeTextSelection(): void{ +function removeTextSelection(): void { window.getSelection()?.removeAllRanges(); } -function updatePreviousPkCheckState(eventTargetElement: HTMLInputElement, state: StateManager): void { +function updatePreviousPkCheckState( + eventTargetElement: HTMLInputElement, + state: StateManager, +): void { state.set('element', eventTargetElement); } -function toggleCheckboxRange(eventTargetElement: HTMLInputElement, previousStateElement: HTMLInputElement, elementList: Generator): void{ - let changePkCheckboxState = false - for(const element of elementList){ - const typedElement = element as HTMLInputElement +function toggleCheckboxRange( + eventTargetElement: HTMLInputElement, + previousStateElement: HTMLInputElement, + elementList: Generator, +): void { + let changePkCheckboxState = false; + for (const element of elementList) { + const typedElement = element as HTMLInputElement; //Change loop's current checkbox state to eventTargetElement checkbox state - if(changePkCheckboxState === true){ + if (changePkCheckboxState === true) { typedElement.checked = eventTargetElement.checked; } - //The previously clicked checkbox was above the shift clicked checkbox - if(element === previousStateElement){ - if(changePkCheckboxState === true){ + //The previously clicked checkbox was above the shift clicked checkbox + if (element === previousStateElement) { + if (changePkCheckboxState === true) { changePkCheckboxState = false; - return + return; } changePkCheckboxState = true; typedElement.checked = eventTargetElement.checked; } - //The previously clicked checkbox was below the shift clicked checkbox - if(element === eventTargetElement){ - if(changePkCheckboxState === true){ - changePkCheckboxState = false - return + //The previously clicked checkbox was below the shift clicked checkbox + if (element === eventTargetElement) { + if (changePkCheckboxState === true) { + changePkCheckboxState = false; + return; } changePkCheckboxState = true; } @@ -45,8 +52,8 @@ function handlePkCheck(event: MouseEvent, state: StateManager('input[type="checkbox"][name="pk"]'); - toggleCheckboxRange(eventTargetElement, previousStateElement, checkboxList) + toggleCheckboxRange(eventTargetElement, previousStateElement, checkboxList); } export function initSelectMultiple(): void { const checkboxElements = getElements('input[type="checkbox"][name="pk"]'); for (const element of checkboxElements) { - element.addEventListener('click', (event) => { - removeTextSelection() + element.addEventListener('click', event => { + removeTextSelection(); //Stop propogation to avoid event firing multiple times event.stopPropagation(); handlePkCheck(event, previousPkCheckState); diff --git a/netbox/project-static/src/stores/index.ts b/netbox/project-static/src/stores/index.ts index 5e53410ad..d4644e619 100644 --- a/netbox/project-static/src/stores/index.ts +++ b/netbox/project-static/src/stores/index.ts @@ -1,3 +1,3 @@ export * from './objectDepth'; export * from './rackImages'; -export * from './previousPkCheck'; \ No newline at end of file +export * from './previousPkCheck'; diff --git a/netbox/project-static/src/stores/previousPkCheck.ts b/netbox/project-static/src/stores/previousPkCheck.ts index a5d06ceee..19b244ec7 100644 --- a/netbox/project-static/src/stores/previousPkCheck.ts +++ b/netbox/project-static/src/stores/previousPkCheck.ts @@ -1,7 +1,6 @@ import { createState } from '../state'; export const previousPkCheckState = createState<{ element: Nullable }>( - { element: null}, - { persist: false } + { element: null }, + { persist: false }, ); -