From 2a59bac71fa25537b876349168ef949c01c831d4 Mon Sep 17 00:00:00 2001 From: Daksh Date: Mon, 31 Aug 2026 14:13:46 +0530 Subject: [PATCH] fixed the bug 9098 --- .../src/Common/ChangeHistory/index.tsx | 107 +++++++++++------- 1 file changed, 68 insertions(+), 39 deletions(-) diff --git a/packages/ui-components/src/Common/ChangeHistory/index.tsx b/packages/ui-components/src/Common/ChangeHistory/index.tsx index c3fc91498ce0c..c612961b503bf 100644 --- a/packages/ui-components/src/Common/ChangeHistory/index.tsx +++ b/packages/ui-components/src/Common/ChangeHistory/index.tsx @@ -1,8 +1,16 @@ +'use client'; + import { ChevronDownIcon, ClockIcon } from '@heroicons/react/24/outline'; import classNames from 'classnames'; +import { + type FC, + type ComponentProps, + type ReactNode, + useRef, + useEffect, +} from 'react'; import type { LinkLike } from '#ui/types'; -import type { FC, ComponentProps, ReactNode } from 'react'; import styles from './index.module.css'; @@ -26,45 +34,66 @@ const ChangeHistory: FC = ({ as: As = 'a', 'aria-label': ariaLabel = label, ...props -}) => ( -
-
- - - {label} - - -
-
- {changes.map(change => { - const MenuItem = change.url ? As : 'div'; +}) => { + const detailsRef = useRef(null); + + useEffect(() => { + const handlePointerDown = (e: PointerEvent) => { + const details = detailsRef.current; + if (details && details.open && !details.contains(e.target as Node)) { + details.removeAttribute('open'); + } + }; + + document.addEventListener('pointerdown', handlePointerDown); + return () => { + document.removeEventListener('pointerdown', handlePointerDown); + }; + }, []); - return ( - -
- {change.content ?? change.label} -
-
- {change.versions.join(', ')} -
-
- ); - })} + return ( +
+
+ + + {label} + + +
+
+ {changes.map(change => { + const MenuItem = change.url ? As : 'div'; + + return ( + +
+ {change.content ?? change.label} +
+
+ {change.versions.join(', ')} +
+
+ ); + })} +
-
-
-
-); + + + ); +}; export default ChangeHistory;