use hook instead

This commit is contained in:
Mary Hipp
2025-05-21 09:49:41 -04:00
committed by Mary Hipp Rogers
parent 99dad953a4
commit f26baa0341
4 changed files with 33 additions and 20 deletions

View File

@@ -2,23 +2,18 @@ import { Flex, Link, Text } from '@invoke-ai/ui-library';
import { useStore } from '@nanostores/react';
import { $accountSettingsLink } from 'app/store/nanostores/accountSettingsLink';
import { useAppSelector } from 'app/store/storeHooks';
import { selectIsChatGTP4o, selectModel } from 'features/controlLayers/store/paramsSlice';
import { useFeatureStatus } from 'features/system/hooks/useFeatureStatus';
import { useMemo } from 'react';
import { selectModel } from 'features/controlLayers/store/paramsSlice';
import { useIsModelDisabled } from 'features/parameters/hooks/useIsModelDisabled';
import { Trans, useTranslation } from 'react-i18next';
export const DisabledModelWarning = () => {
const { t } = useTranslation();
const model = useAppSelector(selectModel);
const isChatGPT4o = useAppSelector(selectIsChatGTP4o);
const areChatGPT4oModelsEnabled = useFeatureStatus('chatGPT4oModels');
const accountSettingsLink = useStore($accountSettingsLink);
const isChatGPT4oHighModelDisabled = useIsModelDisabled('chatGPT4oHigh');
const isModelDisabled = useMemo(() => {
return isChatGPT4o && !areChatGPT4oModelsEnabled;
}, [isChatGPT4o, areChatGPT4oModelsEnabled]);
if (!isModelDisabled) {
if (!model || !isChatGPT4oHighModelDisabled(model)) {
return null;
}

View File

@@ -0,0 +1,17 @@
import type { AppFeature } from 'app/types/invokeai';
import type { ParameterModel } from 'features/parameters/types/parameterSchemas';
import { useFeatureStatus } from 'features/system/hooks/useFeatureStatus';
import { useCallback } from 'react';
export const useIsModelDisabled = (feature: AppFeature) => {
const isEnabled = useFeatureStatus(feature);
const isModelDisabled = useCallback(
(model: ParameterModel) => {
return model?.base === 'chatgpt-4o' && model.name.toLowerCase().includes('high') && !isEnabled;
},
[isEnabled]
);
return isModelDisabled;
};