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}
|
agentFlavor={props.withSettings ? 'claude' : undefined}
|
||||||
onPermissionModeChange={props.withSettings ? () => {} : undefined}
|
onPermissionModeChange={props.withSettings ? () => {} : undefined}
|
||||||
/>
|
/>
|
||||||
|
{props.withSettings ? (
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
aria-label="Outside action"
|
||||||
|
onPointerDown={(event) => event.stopPropagation()}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
</AssistantRuntimeProvider>
|
</AssistantRuntimeProvider>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -144,5 +151,11 @@ describe('HappyComposer plain-text expansion', () => {
|
|||||||
|
|
||||||
fireEvent.pointerDown(screen.getByRole('textbox'))
|
fireEvent.pointerDown(screen.getByRole('textbox'))
|
||||||
expect(screen.queryByText('misc.permissionMode')).not.toBeInTheDocument()
|
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()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1393,8 +1393,8 @@ export function HappyComposer(props: {
|
|||||||
dismissSettings()
|
dismissSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener('pointerdown', handlePointerDown)
|
document.addEventListener('pointerdown', handlePointerDown, true)
|
||||||
return () => document.removeEventListener('pointerdown', handlePointerDown)
|
return () => document.removeEventListener('pointerdown', handlePointerDown, true)
|
||||||
}, [dismissSettings, showSettings])
|
}, [dismissSettings, showSettings])
|
||||||
|
|
||||||
const handleSubmit = useCallback((event?: ReactFormEvent<HTMLFormElement>) => {
|
const handleSubmit = useCallback((event?: ReactFormEvent<HTMLFormElement>) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user