From 87f37ab8d4b8c3d5a638871c95e3943c79ee7b72 Mon Sep 17 00:00:00 2001 From: SeinopSys Date: Sun, 17 Apr 2022 14:42:13 +0200 Subject: [PATCH] adjustments based on PR comments --- assets/js/utils/__tests__/dom.spec.ts | 2 ++ assets/js/utils/draggable.ts | 5 ++--- assets/js/utils/image.ts | 14 +++++++------- assets/js/utils/local-autocompleter.ts | 4 ++-- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/assets/js/utils/__tests__/dom.spec.ts b/assets/js/utils/__tests__/dom.spec.ts index 477ab725..aed07f3f 100644 --- a/assets/js/utils/__tests__/dom.spec.ts +++ b/assets/js/utils/__tests__/dom.spec.ts @@ -381,6 +381,8 @@ describe('DOM Utilities', () => { fireEvent.click(element, { button: 0 }); + expect(mockCallback).toHaveBeenCalledTimes(1); + // Remove the listener localCleanup(); diff --git a/assets/js/utils/draggable.ts b/assets/js/utils/draggable.ts index f1920a75..c5559e5d 100644 --- a/assets/js/utils/draggable.ts +++ b/assets/js/utils/draggable.ts @@ -1,6 +1,6 @@ import { $$ } from './dom'; -let dragSrcEl: HTMLElement | undefined; +let dragSrcEl: HTMLElement | null = null; function dragStart(event: DragEvent, target: HTMLElement) { target.classList.add('dragging'); @@ -83,6 +83,5 @@ export function clearDragSource() { if (!dragSrcEl) return; dragSrcEl.classList.remove('dragging'); - // eslint-disable-next-line no-undefined - dragSrcEl = undefined; + dragSrcEl = null; } diff --git a/assets/js/utils/image.ts b/assets/js/utils/image.ts index c0e35543..2004d11f 100644 --- a/assets/js/utils/image.ts +++ b/assets/js/utils/image.ts @@ -1,8 +1,7 @@ import { clearEl } from './dom'; import store from './store'; -function showVideoThumb(img: HTMLDivElement, size: string, urisString: string) { - const uris = JSON.parse(urisString); +function showVideoThumb(img: HTMLDivElement, size: string, uris: Record) { const thumbUri = uris[size]; const vidEl = img.querySelector('video'); @@ -31,11 +30,11 @@ export function showThumb(img: HTMLDivElement) { const urisString = img.dataset.uris; if (!size || !urisString) return false; - const uris = JSON.parse(urisString); + const uris: Record = JSON.parse(urisString); const thumbUri = uris[size].replace(/webm$/, 'gif'); const picEl = img.querySelector('picture'); - if (!picEl) return showVideoThumb(img, size, urisString); + if (!picEl) return showVideoThumb(img, size, uris); const imgEl = picEl.querySelector('img'); if (!imgEl || imgEl.src.indexOf(thumbUri) !== -1) return false; @@ -128,15 +127,16 @@ export function spoilerThumb(img: HTMLDivElement, spoilerUri: string, reason: st export function spoilerBlock(img: HTMLDivElement, spoilerUri: string, reason: string) { const imgFiltered = img.querySelector('.image-filtered'); const imgEl = imgFiltered?.querySelector('img'); - const imgReason = img.querySelector('.filter-explanation'); - if (!imgEl) return; + const imgReason = img.querySelector('.filter-explanation'); + const imageShow = img.querySelector('.image-show'); + imgEl.src = spoilerUri; if (imgReason) { imgReason.innerHTML = reason; } - img.querySelector('.image-show')?.classList.add('hidden'); + imageShow?.classList.add('hidden'); if (imgFiltered) imgFiltered.classList.remove('hidden'); } diff --git a/assets/js/utils/local-autocompleter.ts b/assets/js/utils/local-autocompleter.ts index 1e3887dc..1e8b17e6 100644 --- a/assets/js/utils/local-autocompleter.ts +++ b/assets/js/utils/local-autocompleter.ts @@ -10,7 +10,7 @@ interface Result { /** * Compare two strings, C-style. */ -function strcmp(a: string, b: string):number { +function strcmp(a: string, b: string): number { return a < b ? -1 : Number(a > b); } @@ -140,7 +140,7 @@ export class LocalAutocompleter { /** * Find the top k results by image count which match the given string prefix. */ - topK(prefix: string, k:number): Result[] { + topK(prefix: string, k: number): Result[] { const results: Record = {}; if (prefix === '') {