import { useAppSelector } from 'app/store/storeHooks'; import { IAINoContentFallback, IAINoContentFallbackWithSpinner } from 'common/components/IAIImageFallback'; import { selectSelectedModelKey, selectSelectedModelMode } from 'features/modelManagerV2/store/modelManagerV2Slice'; import { memo, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { PiExclamationMarkBold } from 'react-icons/pi'; import { modelConfigsAdapterSelectors, useGetModelConfigsQuery } from 'services/api/endpoints/models'; import { ModelEdit } from './ModelEdit'; import { ModelView } from './ModelView'; export const Model = memo(() => { const { t } = useTranslation(); const selectedModelMode = useAppSelector(selectSelectedModelMode); const selectedModelKey = useAppSelector(selectSelectedModelKey); const { data: modelConfigs, isLoading } = useGetModelConfigsQuery(); const modelConfig = useMemo(() => { if (!modelConfigs) { return null; } if (selectedModelKey === null) { return null; } const modelConfig = modelConfigsAdapterSelectors.selectById(modelConfigs, selectedModelKey); if (!modelConfig) { return null; } return modelConfig; }, [modelConfigs, selectedModelKey]); if (isLoading) { return ; } if (!modelConfig) { return ; } if (selectedModelMode === 'view') { return ; } return ; }); Model.displayName = 'Model';