diff --git a/src/modules/llms/vendors/openrouter/OpenRouterSourceSetup.tsx b/src/modules/llms/vendors/openrouter/OpenRouterSourceSetup.tsx index 43660fbed..d7a2c426f 100644 --- a/src/modules/llms/vendors/openrouter/OpenRouterSourceSetup.tsx +++ b/src/modules/llms/vendors/openrouter/OpenRouterSourceSetup.tsx @@ -1,6 +1,8 @@ import * as React from 'react'; import { Box, Button, Typography } from '@mui/joy'; +import VisibilityOffOutlinedIcon from '@mui/icons-material/VisibilityOffOutlined'; +import VisibilityOutlinedIcon from '@mui/icons-material/VisibilityOutlined'; import { AlreadySet } from '~/common/components/AlreadySet'; import { FormInputKey } from '~/common/components/forms/FormInputKey'; @@ -19,7 +21,7 @@ import { isValidOpenRouterKey, ModelVendorOpenRouter } from './openrouter.vendor export function OpenRouterSourceSetup(props: { sourceId: DModelSourceId }) { // external state - const { source, sourceHasLLMs, access, hasNoBackendCap: needsUserKey, updateSetup } = + const { source, sourceHasLLMs, sourceHasVisibleLLMs, access, hasNoBackendCap: needsUserKey, updateSetup } = useSourceSetup(props.sourceId, ModelVendorOpenRouter); // derived state @@ -52,6 +54,13 @@ export function OpenRouterSourceSetup(props: { sourceId: DModelSourceId }) { .forEach(llm => removeLLM(llm.id)); }; + const handleSetVisibilityAll = React.useCallback((visible: boolean) => { + const { llms, updateLLM } = useModelsStore.getState(); + llms + .filter(llm => llm.sId === props.sourceId) + .forEach(llm => updateLLM(llm.id, { hidden: !visible })); + }, [props.sourceId]); + return <> @@ -91,10 +100,17 @@ export function OpenRouterSourceSetup(props: { sourceId: DModelSourceId }) { OpenRouter Login + } diff --git a/src/modules/llms/vendors/useSourceSetup.ts b/src/modules/llms/vendors/useSourceSetup.ts index 9e47b6d70..a6e38e949 100644 --- a/src/modules/llms/vendors/useSourceSetup.ts +++ b/src/modules/llms/vendors/useSourceSetup.ts @@ -33,6 +33,7 @@ export function useSourceSetup(sourceId: DMo partialSetup: source?.setup ?? null, // NOTE: do not use - prefer ACCESS; only used in 1 edge case now access, sourceHasLLMs: !!sourceLLMs.length, + sourceHasVisibleLLMs: !!sourceLLMs.find(llm => !llm.hidden), sourceSetupValid, updateSourceSetup: state.updateSourceSetup, };