diff --git a/web/app/components/workflow/skill/start-tab/index.spec.tsx b/web/app/components/workflow/skill/start-tab/index.spec.tsx index 46dea3b738..0b0a18a391 100644 --- a/web/app/components/workflow/skill/start-tab/index.spec.tsx +++ b/web/app/components/workflow/skill/start-tab/index.spec.tsx @@ -59,8 +59,9 @@ describe('StartTabContent', () => { expect(screen.getByRole('button', { name: /workflow\.skill\.startTab\.importSkill/i })).toBeInTheDocument() expect(screen.getByRole('textbox')).toBeInTheDocument() expect(screen.getByText('workflow.skill.startTab.templatesTitle')).toBeInTheDocument() + expect(screen.getByRole('region', { name: 'workflow.skill.startTab.templatesTitle' })).toBeInTheDocument() expect(screen.getAllByRole('button', { name: /workflow\.skill\.startTab\.useThisSkill/i }).length).toBeGreaterThan(0) - expect(container.firstChild).toHaveClass('flex', 'h-full', 'w-full', 'bg-components-panel-bg') + expect(container.firstChild).toHaveClass('flex', 'h-full', 'min-h-0', 'w-full', 'bg-components-panel-bg') }) }) }) diff --git a/web/app/components/workflow/skill/start-tab/index.tsx b/web/app/components/workflow/skill/start-tab/index.tsx index 8e95d272b4..9fe611cbb5 100644 --- a/web/app/components/workflow/skill/start-tab/index.tsx +++ b/web/app/components/workflow/skill/start-tab/index.tsx @@ -1,14 +1,27 @@ 'use client' import { memo } from 'react' +import { useTranslation } from 'react-i18next' +import { ScrollArea } from '@/app/components/base/ui/scroll-area' import CreateImportSection from './create-import-section' import SkillTemplatesSection from './skill-templates-section' const StartTabContent = () => { + const { t } = useTranslation('workflow') + return ( -
- - +
+ + + +
) } diff --git a/web/app/components/workflow/skill/start-tab/skill-templates-section.spec.tsx b/web/app/components/workflow/skill/start-tab/skill-templates-section.spec.tsx index c9950ebc8a..41aad40cb2 100644 --- a/web/app/components/workflow/skill/start-tab/skill-templates-section.spec.tsx +++ b/web/app/components/workflow/skill/start-tab/skill-templates-section.spec.tsx @@ -95,11 +95,12 @@ describe('SkillTemplatesSection', () => { describe('Rendering', () => { it('should render all templates from registry', () => { - render() + const { container } = render() expect(screen.getByText('alpha')).toBeInTheDocument() expect(screen.getByText('beta')).toBeInTheDocument() expect(screen.getAllByRole('button', { name: /workflow\.skill\.startTab\.useThisSkill/i })).toHaveLength(2) + expect(container.querySelector('.sticky.top-0')).not.toBeNull() }) it('should render empty state when search query has no matches', async () => { diff --git a/web/app/components/workflow/skill/start-tab/skill-templates-section.tsx b/web/app/components/workflow/skill/start-tab/skill-templates-section.tsx index ad3a257582..d9ef9cbe6d 100644 --- a/web/app/components/workflow/skill/start-tab/skill-templates-section.tsx +++ b/web/app/components/workflow/skill/start-tab/skill-templates-section.tsx @@ -78,7 +78,7 @@ const SkillTemplatesSection = () => { }, [searchQuery]) return ( -
+
{
{filtered.length === 0 && searchQuery ? ( -
+
{t('skill.startTab.noTemplatesFound')}