Skip to content

Commit ed96925

Browse files
authored
use global listeners in spin button (#2839)
1 parent b4fe5a0 commit ed96925

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

packages/@react-aria/spinbutton/src/useSpinButton.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {HTMLAttributes, useCallback, useEffect, useRef} from 'react';
1616
import {InputBase, RangeInputBase, Validation, ValueBase} from '@react-types/shared';
1717
// @ts-ignore
1818
import intlMessages from '../intl/*.json';
19+
import {useGlobalListeners} from '@react-aria/utils';
1920
import {useMessageFormatter} from '@react-aria/i18n';
2021

2122

@@ -173,6 +174,8 @@ export function useSpinButton(
173174
e.preventDefault();
174175
};
175176

177+
let {addGlobalListener, removeAllGlobalListeners} = useGlobalListeners();
178+
176179
return {
177180
spinButtonProps: {
178181
role: 'spinbutton',
@@ -190,23 +193,23 @@ export function useSpinButton(
190193
incrementButtonProps: {
191194
onPressStart: () => {
192195
onIncrementPressStart(400);
193-
window.addEventListener('contextmenu', cancelContextMenu);
196+
addGlobalListener(window, 'contextmenu', cancelContextMenu);
194197
},
195198
onPressEnd: () => {
196199
clearAsync();
197-
window.removeEventListener('contextmenu', cancelContextMenu);
200+
removeAllGlobalListeners();
198201
},
199202
onFocus,
200203
onBlur
201204
},
202205
decrementButtonProps: {
203206
onPressStart: () => {
204207
onDecrementPressStart(400);
205-
window.addEventListener('contextmenu', cancelContextMenu);
208+
addGlobalListener(window, 'contextmenu', cancelContextMenu);
206209
},
207210
onPressEnd: () => {
208211
clearAsync();
209-
window.removeEventListener('contextmenu', cancelContextMenu);
212+
removeAllGlobalListeners();
210213
},
211214
onFocus,
212215
onBlur

0 commit comments

Comments
 (0)