Explorar el Código

Update workbench events (#30254)

GitOrigin-RevId: 7434483ce125676f1d7d76dfcb09d6691f9dadef
Alf Eaton hace 8 meses
padre
commit
f941cbab5f

+ 12 - 2
services/web/frontend/js/features/ide-redesign/components/rail/rail-panel-header.tsx

@@ -1,18 +1,28 @@
 import { useTranslation } from 'react-i18next'
 import { useRailContext } from '../../contexts/rail-context'
 import OLIconButton from '@/shared/components/ol/ol-icon-button'
-import React from 'react'
+import React, { useCallback } from 'react'
 import OLTooltip from '@/shared/components/ol/ol-tooltip'
 
 export default function RailPanelHeader({
   title,
   actions,
+  onClose,
 }: {
   title: React.ReactNode
   actions?: React.ReactNode[]
+  onClose?: () => void
 }) {
   const { t } = useTranslation()
   const { handlePaneCollapse } = useRailContext()
+
+  const handleClose = useCallback(() => {
+    handlePaneCollapse()
+    if (onClose) {
+      onClose()
+    }
+  }, [handlePaneCollapse, onClose])
+
   return (
     <div className="rail-panel-header">
       <h4 className="rail-panel-title">{title}</h4>
@@ -25,7 +35,7 @@ export default function RailPanelHeader({
           overlayProps={{ placement: 'bottom' }}
         >
           <OLIconButton
-            onClick={handlePaneCollapse}
+            onClick={handleClose}
             className="rail-panel-header-button-subdued"
             icon="close"
             accessibilityLabel={t('close')}

+ 6 - 2
services/web/frontend/js/shared/components/copy-to-clipboard.tsx

@@ -9,7 +9,8 @@ export const CopyToClipboard = memo<{
   tooltipId: string
   kind?: 'text' | 'icon'
   unfilled?: boolean
-}>(({ content, tooltipId, kind = 'icon', unfilled = false }) => {
+  onClick?: () => void
+}>(({ content, tooltipId, kind = 'icon', unfilled = false, onClick }) => {
   const { t } = useTranslation()
 
   const [copied, setCopied] = useState(false)
@@ -21,7 +22,10 @@ export const CopyToClipboard = memo<{
         setCopied(false)
       }, 1500)
     })
-  }, [content])
+    if (onClick) {
+      onClick()
+    }
+  }, [content, onClick])
 
   if (!navigator.clipboard?.writeText) {
     return null