Spaces:
Running
Running
'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) | |