Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ export function LiveSessionListEmptyState({
description={t('agents.sessionList.noSessionsYetDescription')}
action={
<Button
variant="outline"
variant="default"
className="max-w-full"
accessibilityLabel={t('common.newSession')}
onPress={() => {
router.push(getNewAgentSessionPath(organizationId) as Href);
}}
>
<Plus size={16} color={colors.foreground} />
<Plus size={16} color={colors.primaryForeground} />
<Text className="shrink text-center">{t('common.newSession')}</Text>
</Button>
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -512,6 +512,18 @@ describe('AgentSessionListScreen live presentation', () => {
expect(label.props.adjustsFontSizeToFit).not.toBe(true);
});

it('renders the empty-state New session action as the tab’s primary affordance', async () => {
await renderScreen();
const createAction = action('New session');
// One primary action per surface: the Agents empty state's only action is
// the same new-session flow Home surfaces as a filled brand-yellow button,
// so it must carry the primary variant rather than a low-emphasis outline.
expect(createAction.props.className).toContain('bg-primary');
expect(createAction.props.className).not.toContain('bg-card');
const icon = createAction.findByType('Plus');
expect(icon.props.color).toBe('#ffffff');
});

it('keeps cold-loading feedback stable until an accepted result', async () => {
state.live.hasAcceptedSuccess = false;
state.live.isLoading = true;
Expand Down
Loading