fix(trajectory): keep fold controls available
This commit is contained in:
@@ -149,7 +149,7 @@
|
|||||||
font: var(--dsw-font-xxs-12);
|
font: var(--dsw-font-xxs-12);
|
||||||
}
|
}
|
||||||
|
|
||||||
.action:hover:not(:disabled) {
|
.action:hover {
|
||||||
color: var(--dsw-alias-label-primary);
|
color: var(--dsw-alias-label-primary);
|
||||||
background: var(--dsw-alias-interactive-bg-hover);
|
background: var(--dsw-alias-interactive-bg-hover);
|
||||||
}
|
}
|
||||||
@@ -159,11 +159,6 @@
|
|||||||
outline-offset: 1px;
|
outline-offset: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.action:disabled {
|
|
||||||
color: var(--dsw-alias-label-dimmed);
|
|
||||||
cursor: not-allowed;
|
|
||||||
}
|
|
||||||
|
|
||||||
.actionIcon {
|
.actionIcon {
|
||||||
color: var(--dsw-alias-label-tertiary);
|
color: var(--dsw-alias-label-tertiary);
|
||||||
font: 14px/14px var(--ds-font-family-code);
|
font: 14px/14px var(--ds-font-family-code);
|
||||||
|
|||||||
@@ -12,14 +12,10 @@ export interface TrajectoryToolbarProps {
|
|||||||
actualTime: boolean
|
actualTime: boolean
|
||||||
/** Select complete wall-clock timing or idle-compressed timing. */
|
/** Select complete wall-clock timing or idle-compressed timing. */
|
||||||
onActualTimeChange: (actualTime: boolean) => void
|
onActualTimeChange: (actualTime: boolean) => void
|
||||||
/** Number of turns containing more than one row. */
|
|
||||||
collapsibleTurns: number
|
|
||||||
/** Whether every collapsible turn is currently folded. */
|
/** Whether every collapsible turn is currently folded. */
|
||||||
allTurnsCollapsed: boolean
|
allTurnsCollapsed: boolean
|
||||||
/** Fold or expand every collapsible turn. */
|
/** Fold or expand every collapsible turn. */
|
||||||
onToggleAllTurns: () => void
|
onToggleAllTurns: () => void
|
||||||
/** Number of assistant messages followed by tool calls. */
|
|
||||||
collapsibleAssistants: number
|
|
||||||
/** Whether every collapsible assistant's tool calls are currently folded. */
|
/** Whether every collapsible assistant's tool calls are currently folded. */
|
||||||
allAssistantsCollapsed: boolean
|
allAssistantsCollapsed: boolean
|
||||||
/** Fold or expand tool calls under every collapsible assistant. */
|
/** Fold or expand tool calls under every collapsible assistant. */
|
||||||
@@ -40,10 +36,8 @@ export function TrajectoryToolbar({
|
|||||||
onActualDurationChange,
|
onActualDurationChange,
|
||||||
actualTime,
|
actualTime,
|
||||||
onActualTimeChange,
|
onActualTimeChange,
|
||||||
collapsibleTurns,
|
|
||||||
allTurnsCollapsed,
|
allTurnsCollapsed,
|
||||||
onToggleAllTurns,
|
onToggleAllTurns,
|
||||||
collapsibleAssistants,
|
|
||||||
allAssistantsCollapsed,
|
allAssistantsCollapsed,
|
||||||
onToggleAllAssistants,
|
onToggleAllAssistants,
|
||||||
searchQuery,
|
searchQuery,
|
||||||
@@ -91,7 +85,6 @@ export function TrajectoryToolbar({
|
|||||||
aria-label={allTurnsCollapsed ? 'Expand turns' : 'Collapse turns'}
|
aria-label={allTurnsCollapsed ? 'Expand turns' : 'Collapse turns'}
|
||||||
aria-pressed={allTurnsCollapsed}
|
aria-pressed={allTurnsCollapsed}
|
||||||
title={allTurnsCollapsed ? 'Expand turns' : 'Collapse turns'}
|
title={allTurnsCollapsed ? 'Expand turns' : 'Collapse turns'}
|
||||||
disabled={collapsibleTurns === 0}
|
|
||||||
onClick={onToggleAllTurns}
|
onClick={onToggleAllTurns}
|
||||||
>
|
>
|
||||||
<span className={css.actionIcon} aria-hidden="true">
|
<span className={css.actionIcon} aria-hidden="true">
|
||||||
@@ -105,7 +98,6 @@ export function TrajectoryToolbar({
|
|||||||
aria-label={allAssistantsCollapsed ? 'Expand calls' : 'Collapse calls'}
|
aria-label={allAssistantsCollapsed ? 'Expand calls' : 'Collapse calls'}
|
||||||
aria-pressed={allAssistantsCollapsed}
|
aria-pressed={allAssistantsCollapsed}
|
||||||
title={allAssistantsCollapsed ? 'Expand calls' : 'Collapse calls'}
|
title={allAssistantsCollapsed ? 'Expand calls' : 'Collapse calls'}
|
||||||
disabled={collapsibleAssistants === 0}
|
|
||||||
onClick={onToggleAllAssistants}
|
onClick={onToggleAllAssistants}
|
||||||
>
|
>
|
||||||
<span className={css.actionIcon} aria-hidden="true">
|
<span className={css.actionIcon} aria-hidden="true">
|
||||||
|
|||||||
@@ -489,10 +489,8 @@ export function TrajectoryView({
|
|||||||
setActualTime(nextActualTime)
|
setActualTime(nextActualTime)
|
||||||
setTimelineSelection(null)
|
setTimelineSelection(null)
|
||||||
}}
|
}}
|
||||||
collapsibleTurns={collapsibleTurnIds.length}
|
|
||||||
allTurnsCollapsed={allTurnsCollapsed}
|
allTurnsCollapsed={allTurnsCollapsed}
|
||||||
onToggleAllTurns={toggleAllTurns}
|
onToggleAllTurns={toggleAllTurns}
|
||||||
collapsibleAssistants={collapsibleAssistantIds.length}
|
|
||||||
allAssistantsCollapsed={allAssistantsCollapsed}
|
allAssistantsCollapsed={allAssistantsCollapsed}
|
||||||
onToggleAllAssistants={toggleAllAssistants}
|
onToggleAllAssistants={toggleAllAssistants}
|
||||||
searchQuery={searchQuery}
|
searchQuery={searchQuery}
|
||||||
|
|||||||
@@ -361,6 +361,12 @@ describe('tab switching in ConversationRoot', () => {
|
|||||||
fireEvent.click(screen.getByRole('tab', { name: 'Trajectory' }))
|
fireEvent.click(screen.getByRole('tab', { name: 'Trajectory' }))
|
||||||
expect(screen.getByRole('toolbar', { name: 'Trajectory toolbar' })).toBeTruthy()
|
expect(screen.getByRole('toolbar', { name: 'Trajectory toolbar' })).toBeTruthy()
|
||||||
expect(screen.getByText('No timing data')).toBeTruthy()
|
expect(screen.getByText('No timing data')).toBeTruthy()
|
||||||
|
expect(screen.getByRole<HTMLButtonElement>('button', {
|
||||||
|
name: 'Collapse turns',
|
||||||
|
}).disabled).toBe(false)
|
||||||
|
expect(screen.getByRole<HTMLButtonElement>('button', {
|
||||||
|
name: 'Collapse calls',
|
||||||
|
}).disabled).toBe(false)
|
||||||
expect(screen.queryByRole('row')).toBeNull()
|
expect(screen.queryByRole('row')).toBeNull()
|
||||||
expect(screen.queryByText(/turns ·/)).toBeNull()
|
expect(screen.queryByText(/turns ·/)).toBeNull()
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user