diff --git a/packages/core/src/components/popover/popover.tsx b/packages/core/src/components/popover/popover.tsx index c4e1f8b8ed..a5c4f56a3c 100644 --- a/packages/core/src/components/popover/popover.tsx +++ b/packages/core/src/components/popover/popover.tsx @@ -742,7 +742,11 @@ export class Popover< // cancel any existing timeout because we have new state this.cancelOpenTimeout?.(); if (timeout !== undefined && timeout > 0) { - this.cancelOpenTimeout = this.setTimeout(() => this.setOpenState(isOpen, e), timeout); + // Persist the react event since it will be used in a later macrotask. + e?.persist(); + this.cancelOpenTimeout = this.setTimeout(() => { + this.setOpenState(isOpen, e); + }, timeout); } else { if (this.props.isOpen == null) { this.setState({ isOpen });