mirror of
https://github.com/wu736139669/hapi.git
synced 2026-08-05 06:24:37 +00:00
fix(web): capture composer outside clicks
Co-Authored-By: Codex <noreply@anthropic.com>
This commit is contained in:
@@ -76,6 +76,13 @@ function TestRuntime(props: { withSettings?: boolean }) {
|
||||
agentFlavor={props.withSettings ? 'claude' : undefined}
|
||||
onPermissionModeChange={props.withSettings ? () => {} : undefined}
|
||||
/>
|
||||
{props.withSettings ? (
|
||||
<button
|
||||
type="button"
|
||||
aria-label="Outside action"
|
||||
onPointerDown={(event) => event.stopPropagation()}
|
||||
/>
|
||||
) : null}
|
||||
</AssistantRuntimeProvider>
|
||||
)
|
||||
}
|
||||
@@ -144,5 +151,11 @@ describe('HappyComposer plain-text expansion', () => {
|
||||
|
||||
fireEvent.pointerDown(screen.getByRole('textbox'))
|
||||
expect(screen.queryByText('misc.permissionMode')).not.toBeInTheDocument()
|
||||
|
||||
fireEvent.click(settingsButton)
|
||||
expect(screen.getByText('misc.permissionMode')).toBeInTheDocument()
|
||||
|
||||
fireEvent.pointerDown(screen.getByRole('button', { name: 'Outside action' }))
|
||||
expect(screen.queryByText('misc.permissionMode')).not.toBeInTheDocument()
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1153,8 +1153,8 @@ export function HappyComposer(props: {
|
||||
setShowSettings(false)
|
||||
}
|
||||
|
||||
document.addEventListener('pointerdown', handlePointerDown)
|
||||
return () => document.removeEventListener('pointerdown', handlePointerDown)
|
||||
document.addEventListener('pointerdown', handlePointerDown, true)
|
||||
return () => document.removeEventListener('pointerdown', handlePointerDown, true)
|
||||
}, [showSettings])
|
||||
|
||||
const handleSubmit = useCallback((event?: ReactFormEvent<HTMLFormElement>) => {
|
||||
|
||||
Reference in New Issue
Block a user