From d0ce4359df3ce0c3feccd4832f0918d4fc87be49 Mon Sep 17 00:00:00 2001 From: Enrico Ros Date: Wed, 31 Jul 2024 23:51:16 -0700 Subject: [PATCH] OpenRouter: quick add/hide all. Fixes #605 --- .../openrouter/OpenRouterSourceSetup.tsx | 22 ++++++++++++++++--- src/modules/llms/vendors/useSourceSetup.ts | 1 + 2 files changed, 20 insertions(+), 3 deletions(-) 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, };