feat(web): make the whole no-workspace composer card the picker trigger
The pick target grows from the read-only textarea to the full capsule: the card owns the click, its disabled controls let pointer events fall through, and a dashed l4 stroke with a business-blue hover marks the affordance (an SVG dash ring — native dashed has a fixed pattern). The card contains pointerdown so the open picker's outside-close cannot race the reopen, which flickered the chip's expansion echo.
This commit is contained in:
@@ -563,6 +563,20 @@ describe('running and lock semantics (queue cut 1)', () => {
|
||||
fireEvent.keyDown(textarea, { key: 'Enter' })
|
||||
fireEvent.keyDown(textarea, { key: ' ' })
|
||||
expect(onRequestWorkspace).toHaveBeenCalledTimes(3)
|
||||
|
||||
// The WHOLE capsule is the pick target, and its pointerdown never reaches
|
||||
// the document — the open picker's outside-close must not race the reopen.
|
||||
const card = view.container.querySelector('[data-composer-card]') as HTMLElement
|
||||
fireEvent.click(card)
|
||||
expect(onRequestWorkspace).toHaveBeenCalledTimes(4)
|
||||
const onDocumentPointerDown = vi.fn()
|
||||
document.addEventListener('pointerdown', onDocumentPointerDown)
|
||||
try {
|
||||
fireEvent.pointerDown(card)
|
||||
} finally {
|
||||
document.removeEventListener('pointerdown', onDocumentPointerDown)
|
||||
}
|
||||
expect(onDocumentPointerDown).not.toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it('the plan projection swaps the placeholder while its effective target is plan mode', () => {
|
||||
|
||||
Reference in New Issue
Block a user