Skip to content

Commit 39a82de

Browse files
committed
fix(input-otp): add ResizeObserver feature detection and fallback
1 parent d4aced9 commit 39a82de

1 file changed

Lines changed: 16 additions & 3 deletions

File tree

packages/input-otp/src/input.tsx

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -213,16 +213,29 @@ export const OTPInput = React.forwardRef<HTMLInputElement, OTPInputProps>(
213213
}
214214
}
215215
updateRootHeight()
216-
const resizeObserver = new ResizeObserver(updateRootHeight)
217-
resizeObserver.observe(input)
218216

217+
// Feature detection for ResizeObserver
218+
if (typeof ResizeObserver !== 'undefined') {
219+
const resizeObserver = new ResizeObserver(updateRootHeight)
220+
resizeObserver.observe(input)
221+
222+
return () => {
223+
document.removeEventListener(
224+
'selectionchange',
225+
onDocumentSelectionChange,
226+
{ capture: true },
227+
)
228+
resizeObserver.disconnect()
229+
}
230+
}
231+
232+
// Fallback return for browsers without ResizeObserver
219233
return () => {
220234
document.removeEventListener(
221235
'selectionchange',
222236
onDocumentSelectionChange,
223237
{ capture: true },
224238
)
225-
resizeObserver.disconnect()
226239
}
227240
}, [])
228241

0 commit comments

Comments
 (0)