From ebb43feb9b155aa49a9aa8df4697f6665c805bac Mon Sep 17 00:00:00 2001 From: Sean Martin Date: Fri, 15 May 2026 17:11:00 +0200 Subject: [PATCH] feat: debounce radius changes --- src/layer/segmentation/index.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/layer/segmentation/index.ts b/src/layer/segmentation/index.ts index 9f8ff7033..3ece8d5da 100644 --- a/src/layer/segmentation/index.ts +++ b/src/layer/segmentation/index.ts @@ -21,6 +21,7 @@ import svg_flag from "ikonate/icons/flag.svg?raw"; import svg_minus from "ikonate/icons/minus.svg?raw"; import svg_origin from "ikonate/icons/origin.svg?raw"; import svg_share_android from "ikonate/icons/share-android.svg?raw"; +import { debounce } from "lodash-es"; import type { CoordinateTransformSpecification } from "#src/coordinate_transform.js"; import { emptyValidCoordinateSpace } from "#src/coordinate_transform.js"; import type { DataSourceSpecification } from "#src/datasource/index.js"; @@ -2907,9 +2908,13 @@ export class SegmentationUserLayer extends Base { } })(); }; + const debouncedCommitRadius = context.registerCancellable( + debounce(commitRadius, 500), + ); radiusInput.addEventListener("input", updateRadiusEditorState); + radiusInput.addEventListener("change", () => debouncedCommitRadius()); + radiusInput.addEventListener("blur", () => debouncedCommitRadius.flush()); radiusInput.addEventListener("keydown", handlePropertyInputKeyDown); - radiusInput.addEventListener("change", commitRadius); updateRadiusEditorState(); }