fix(ui): keep agent import action visible (#11488)

* fix(ui): keep agent import action visible

The header hid its full import label after the agent list became non-empty. Hide only the nested file input so users can import more agents.

Assisted-by: Codex:gpt-5

* test(ui): match the agent import label

The Agents page renders the action as Import.

The test searched for Import Agent, so it failed before checking visibility.

Mock the observables request to remove backend timing from the fixture.

Assisted-by: Codex:gpt-5

---------

Co-authored-by: localai-org-maint-bot <306269227+localai-org-maint-bot@users.noreply.github.com>
This commit is contained in:
localai-org-maint-botandlocalai-org-maint-bot authored and GitHub committed 2026-08-14 15:06:51 +02:00
1 parent 58a37fa2c9
commit 95653f221e
2 files changed
+14 -2

No files matched your search

+12
View File
@@ -13,6 +13,18 @@ test.describe('Agents page', () => {
await expect(page.getByRole('button', { name: 'Create Agent' }).first()).toBeVisible()
})
test('keeps Import Agent visible when agents exist', async ({ page }) => {
await page.route('**/api/agents', route => route.fulfill({
json: { agents: ['existing-agent'], statuses: { 'existing-agent': true } },
}))
await page.route('**/api/agents/existing-agent/observables', route => route.fulfill({
json: { History: [] },
}))
await page.reload()
await expect(page.locator('.header-actions label', { hasText: 'Import' })).toBeVisible()
})
test('Create Agent navigates to the agent creation form', async ({ page }) => {
const create = page.getByRole('button', { name: 'Create Agent' }).last()
await create.scrollIntoViewIfNeeded()
+2 -2
View File
@@ -194,9 +194,9 @@ export default function Agents() {
)}
{/* A label styled as a button, wrapping the file input it triggers,
so the control looks and behaves like its neighbours. */}
<label className="btn btn-secondary agents-import-input">
<label className="btn btn-secondary">
<i className="fas fa-file-import" /> {t('actions.import')}
<input type="file" accept=".json" onChange={handleImport} />
<input type="file" accept=".json" className="agents-import-input" onChange={handleImport} />
</label>
<button className="btn btn-primary" onClick={() => navigate('/app/agents/new')}>
<i className="fas fa-plus" /> {t('actions.createAgent')}