From 81419f99ecc9e926045e4025e9ff18355eac2bff Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Fri, 4 Sep 2026 12:53:09 +0200 Subject: [PATCH] [Web] Restore enabled on a full config replace ## Description The web GestureHandler kept the previous enabled value when a full config replace did not carry the key. It now falls back to true, matching Android and iOS. ## Test plan Added a test in `GestureHandler.test.ts`. --- .../src/web/handlers/GestureHandler.ts | 2 +- .../src/web/handlers/__tests__/GestureHandler.test.ts | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/react-native-gesture-handler/src/web/handlers/GestureHandler.ts b/packages/react-native-gesture-handler/src/web/handlers/GestureHandler.ts index 75cd59c47c..fe94a0e20b 100644 --- a/packages/react-native-gesture-handler/src/web/handlers/GestureHandler.ts +++ b/packages/react-native-gesture-handler/src/web/handlers/GestureHandler.ts @@ -789,7 +789,7 @@ export default abstract class GestureHandler implements IGestureHandler { public setGestureConfig(config: Config) { this.resetConfig(); - this.updateGestureConfig(config); + this.updateGestureConfig({ ...config, enabled: config.enabled ?? true }); } public updateGestureConfig(config: Partial): void { diff --git a/packages/react-native-gesture-handler/src/web/handlers/__tests__/GestureHandler.test.ts b/packages/react-native-gesture-handler/src/web/handlers/__tests__/GestureHandler.test.ts index 1824c16523..42656cf598 100644 --- a/packages/react-native-gesture-handler/src/web/handlers/__tests__/GestureHandler.test.ts +++ b/packages/react-native-gesture-handler/src/web/handlers/__tests__/GestureHandler.test.ts @@ -1,3 +1,4 @@ +import type { Config } from '../../interfaces'; import EventManager from '../../tools/EventManager'; import type { GestureHandlerDelegate } from '../../tools/GestureHandlerDelegate'; import GestureHandler from '../GestureHandler'; @@ -25,6 +26,16 @@ function createHandler(enabled: boolean) { return handler; } +describe('GestureHandler web config reset', () => { + test('a config without enabled restores the enabled default', () => { + const handler = createHandler(false); + + handler.setGestureConfig({} as Config); + + expect(handler.enabled).toBe(true); + }); +}); + describe('GestureHandler web event manager attachment', () => { test('registers listeners for an initially enabled handler', () => { const manager = new TestEventManager({});