mirror of
https://github.com/langgenius/dify.git
synced 2025-07-13 20:21:37 +00:00
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
![]() |
'use client'
|
||
|
import React from 'react'
|
||
|
import { useTranslation } from 'react-i18next'
|
||
|
import { useFeatures } from '../hooks'
|
||
|
import type { OnFeaturesChange } from '../types'
|
||
|
import FeatureModal from './feature-modal'
|
||
|
import Button from '@/app/components/base/button'
|
||
|
import { Plus } from '@/app/components/base/icons/src/vender/line/general'
|
||
|
|
||
|
type ChooseFeatureProps = {
|
||
|
onChange?: OnFeaturesChange
|
||
|
disabled?: boolean
|
||
|
}
|
||
|
const ChooseFeature = ({
|
||
|
onChange,
|
||
|
disabled,
|
||
|
}: ChooseFeatureProps) => {
|
||
|
const { t } = useTranslation()
|
||
|
const showFeaturesModal = useFeatures(s => s.showFeaturesModal)
|
||
|
const setShowFeaturesModal = useFeatures(s => s.setShowFeaturesModal)
|
||
|
return (
|
||
|
<>
|
||
|
<Button
|
||
|
className={`
|
||
|
px-3 py-0 h-8 rounded-lg border border-primary-100 bg-primary-25 shadow-xs text-xs font-semibold text-primary-600
|
||
|
${disabled && 'cursor-not-allowed opacity-50'}
|
||
|
`}
|
||
|
onClick={() => !disabled && setShowFeaturesModal(true)}
|
||
|
>
|
||
|
<Plus className='mr-1 w-4 h-4' />
|
||
|
{t('appDebug.operation.addFeature')}
|
||
|
</Button>
|
||
|
{
|
||
|
showFeaturesModal && (
|
||
|
<FeatureModal onChange={onChange} />
|
||
|
)
|
||
|
}
|
||
|
</>
|
||
|
)
|
||
|
}
|
||
|
export default React.memo(ChooseFeature)
|