Skip to content

Commit fc5442f

Browse files
committed
PB-1383: fix debounce generic
Make it returns the same function type/signature as the one given as input
1 parent b8ad7c9 commit fc5442f

File tree

5 files changed

+38
-43
lines changed

5 files changed

+38
-43
lines changed

packages/viewer/src/modules/drawing/components/DrawingToolbox.vue

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,7 @@ function onDeleteLastPoint() {
162162
emits('removeLastPoint')
163163
}
164164
165-
const debounceSaveDrawingName = debounce((...args: unknown[]) => {
166-
const newName = typeof args[0] === 'string' ? args[0] : undefined
165+
function saveDrawingName(newName?: string) {
167166
const sanitized = DOMPurify.sanitize(newName ?? '', {
168167
ALLOWED_TAGS: [],
169168
ALLOWED_ATTR: [],
@@ -173,7 +172,9 @@ const debounceSaveDrawingName = debounce((...args: unknown[]) => {
173172
debounceSaveDrawing().catch((error: Error) =>
174173
log.error(`Error while saving drawing after name change: ${error}`)
175174
)
176-
}, 200)
175+
}
176+
177+
const debounceSaveDrawingName = debounce(saveDrawingName, 200)
177178
</script>
178179

179180
<template>

packages/viewer/src/modules/infobox/components/styling/FeatureStyleEdit.vue

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,8 @@ function updateFeatureDescription(): void {
134134
)
135135
}
136136
137-
type DebouncedFn = (..._args: unknown[]) => void
138-
const debounceTitleUpdate: DebouncedFn = debounce(updateFeatureTitle, 100)
139-
const debounceDescriptionUpdate: DebouncedFn = debounce(updateFeatureDescription, 300)
137+
const debounceTitleUpdate = debounce(updateFeatureTitle, 100)
138+
const debounceDescriptionUpdate = debounce(updateFeatureDescription, 300)
140139
141140
function handleKeydown(event: KeyboardEvent): void {
142141
if (event.key === 'Delete' && !isEditingText.value) {

packages/viewer/src/modules/map/components/toolbox/TimeSlider.vue

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,9 +221,7 @@ function dispatchPreviewYearToStore() {
221221
setPreviewYearToLayers()
222222
}
223223
224-
const dispatchPreviewYearToStoreDebounced = debounce(() => {
225-
dispatchPreviewYearToStore()
226-
}, 100)
224+
const dispatchPreviewYearToStoreDebounced = debounce(dispatchPreviewYearToStore, 100)
227225
228226
function setSliderWidth() {
229227
const padding = 112

packages/viewer/src/modules/menu/components/activeLayers/TransparencySlider.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ function saveOpacityToLayer(opacity: number): void {
3030
layersStore.setLayerOpacity(index, opacity, dispatcher)
3131
}
3232
33-
const debouncedSaveOpacityToLayer = debounce(() => saveOpacityToLayer, 50)
33+
const debouncedSaveOpacityToLayer = debounce(saveOpacityToLayer, 50)
3434
3535
watch(localTransparency, (newTransparency) => {
3636
const newOpacity = 1 - newTransparency

packages/viewer/src/modules/menu/components/search/SearchResultList.vue

Lines changed: 30 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -110,40 +110,37 @@ const isLocationSearchResult = (entry: SearchResult): entry is LocationSearchRes
110110
111111
// We debounce the preview to avoid too many store dispatch
112112
const PREVIEW_DEBOUNCING_DELAY = 50
113-
const setPreviewDebounced = debounce(
114-
() => (entry: SearchResult) => {
115-
log.debug({
116-
messages: [
117-
`Set preview`,
118-
entry,
119-
previewLayer.value ?? '',
120-
previewedPinnedLocation.value?.toString(),
121-
],
122-
})
123-
124-
if (!entry) {
125-
if (previewLayer.value) {
126-
layersStore.clearPreviewLayer(dispatcher)
127-
}
128-
if (previewedPinnedLocation.value) {
129-
mapStore.clearPreviewPinnedLocation(dispatcher)
130-
}
131-
} else if (entry.resultType === SearchResultTypes.LAYER) {
132-
layersStore.setPreviewLayer(entry.id, dispatcher)
133-
134-
if (previewedPinnedLocation.value) {
135-
mapStore.clearPreviewPinnedLocation(dispatcher)
136-
}
137-
} else if (isLocationSearchResult(entry)) {
138-
mapStore.setPreviewedPinnedLocation(entry.coordinate, dispatcher)
139-
140-
if (previewLayer.value) {
141-
layersStore.clearPreviewLayer(dispatcher)
142-
}
113+
const setPreviewDebounced = debounce((entry?: SearchResult) => {
114+
log.debug({
115+
messages: [
116+
`Set preview`,
117+
entry,
118+
previewLayer.value ?? '',
119+
previewedPinnedLocation.value?.toString(),
120+
],
121+
})
122+
123+
if (!entry) {
124+
if (previewLayer.value) {
125+
layersStore.clearPreviewLayer(dispatcher)
143126
}
144-
},
145-
PREVIEW_DEBOUNCING_DELAY
146-
)
127+
if (previewedPinnedLocation.value) {
128+
mapStore.clearPreviewPinnedLocation(dispatcher)
129+
}
130+
} else if (entry.resultType === SearchResultTypes.LAYER) {
131+
layersStore.setPreviewLayer(entry.id, dispatcher)
132+
133+
if (previewedPinnedLocation.value) {
134+
mapStore.clearPreviewPinnedLocation(dispatcher)
135+
}
136+
} else if (isLocationSearchResult(entry)) {
137+
mapStore.setPreviewedPinnedLocation(entry.coordinate, dispatcher)
138+
139+
if (previewLayer.value) {
140+
layersStore.clearPreviewLayer(dispatcher)
141+
}
142+
}
143+
}, PREVIEW_DEBOUNCING_DELAY)
147144
148145
defineExpose({ focusFirstEntry })
149146
</script>

0 commit comments

Comments
 (0)