mirror of
https://github.com/langgenius/dify.git
synced 2026-02-13 16:00:55 -05:00
Migrate all Remixicon component imports in workflow/skill to Tailwind CSS icon utility classes (i-ri-*), reducing JS bundle size. Update MenuItem to accept string icon classes alongside React components. Adjust test selectors that relied on SVG element queries.
47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
'use client'
|
|
|
|
import dynamic from 'next/dynamic'
|
|
import { memo, useState } from 'react'
|
|
import { useTranslation } from 'react-i18next'
|
|
import ActionCard from './action-card'
|
|
import CreateBlankSkillModal from './create-blank-skill-modal'
|
|
|
|
const ImportSkillModal = dynamic(() => import('./import-skill-modal'), {
|
|
ssr: false,
|
|
})
|
|
|
|
const CreateImportSection = () => {
|
|
const { t } = useTranslation('workflow')
|
|
const [isCreateModalOpen, setIsCreateModalOpen] = useState(false)
|
|
const [isImportModalOpen, setIsImportModalOpen] = useState(false)
|
|
|
|
return (
|
|
<>
|
|
<div className="grid grid-cols-3 gap-2 px-6 pb-4 pt-6">
|
|
<ActionCard
|
|
icon={<span className="i-ri-add-circle-fill size-5 text-text-accent" />}
|
|
title={t('skill.startTab.createBlankSkill')}
|
|
description={t('skill.startTab.createBlankSkillDesc')}
|
|
onClick={() => setIsCreateModalOpen(true)}
|
|
/>
|
|
<ActionCard
|
|
icon={<span className="i-ri-upload-line size-5 text-text-accent" />}
|
|
title={t('skill.startTab.importSkill')}
|
|
description={t('skill.startTab.importSkillDesc')}
|
|
onClick={() => setIsImportModalOpen(true)}
|
|
/>
|
|
</div>
|
|
<CreateBlankSkillModal
|
|
isOpen={isCreateModalOpen}
|
|
onClose={() => setIsCreateModalOpen(false)}
|
|
/>
|
|
<ImportSkillModal
|
|
isOpen={isImportModalOpen}
|
|
onClose={() => setIsImportModalOpen(false)}
|
|
/>
|
|
</>
|
|
)
|
|
}
|
|
|
|
export default memo(CreateImportSection)
|