Update import statements, set TTSEnabled in TTSModeSettings, and fix fetchChatModels error handling
This commit is contained in:
		
							parent
							
								
									a3810cd534
								
							
						
					
					
						commit
						9262a5bb7c
					
				| @ -4,7 +4,7 @@ import { useLocation, NavLink } from "react-router-dom" | ||||
| import { Sidebar } from "../Option/Sidebar" | ||||
| import { Drawer, Select, Tooltip } from "antd" | ||||
| import { useQuery } from "@tanstack/react-query" | ||||
| import { getAllModels } from "~/services/ollama" | ||||
| import { fetchChatModels, getAllModels } from "~/services/ollama" | ||||
| import { useMessageOption } from "~/hooks/useMessageOption" | ||||
| import { | ||||
|   ChevronLeft, | ||||
| @ -46,7 +46,7 @@ export default function OptionLayout({ | ||||
|     isFetching: isModelsFetching | ||||
|   } = useQuery({ | ||||
|     queryKey: ["fetchModel"], | ||||
|     queryFn: () => getAllModels({ returnEmpty: true }), | ||||
|     queryFn: () => fetchChatModels({ returnEmpty: true }), | ||||
|     refetchInterval: 15000 | ||||
|   }) | ||||
| 
 | ||||
|  | ||||
| @ -1,6 +1,7 @@ | ||||
| import { SaveButton } from "@/components/Common/SaveButton" | ||||
| import { getSearchSettings, setSearchSettings } from "@/services/search" | ||||
| import { getTTSSettings, setTTSSettings } from "@/services/tts" | ||||
| import { useWebUI } from "@/store/webui" | ||||
| import { SUPPORTED_SERACH_PROVIDERS } from "@/utils/search-provider" | ||||
| import { useForm } from "@mantine/form" | ||||
| import { useQuery, useQueryClient } from "@tanstack/react-query" | ||||
| @ -9,7 +10,7 @@ import { useTranslation } from "react-i18next" | ||||
| 
 | ||||
| export const TTSModeSettings = ({ hideTitle }: { hideTitle?: boolean }) => { | ||||
|   const { t } = useTranslation("settings") | ||||
|   const queryClient = useQueryClient() | ||||
|   const { setTTSEnabled } = useWebUI() | ||||
| 
 | ||||
|   const form = useForm({ | ||||
|     initialValues: { | ||||
| @ -46,6 +47,7 @@ export const TTSModeSettings = ({ hideTitle }: { hideTitle?: boolean }) => { | ||||
|       <form | ||||
|         onSubmit={form.onSubmit(async (values) => { | ||||
|           await setTTSSettings(values) | ||||
|           setTTSEnabled(values.ttsEnabled) | ||||
|         })} | ||||
|         className="space-y-4"> | ||||
|         <div className="flex sm:flex-row flex-col space-y-4 sm:space-y-0 sm:justify-between"> | ||||
|  | ||||
| @ -75,14 +75,6 @@ export const useMessageOption = () => { | ||||
|   const navigate = useNavigate() | ||||
|   const textareaRef = React.useRef<HTMLTextAreaElement>(null) | ||||
| 
 | ||||
|   React.useEffect(() => { | ||||
|     const checkTTSEnabled = async () => { | ||||
|       const tts = await isTTSEnabled() | ||||
|       setTTSEnabled(tts) | ||||
|     } | ||||
| 
 | ||||
|     checkTTSEnabled() | ||||
|   }, []) | ||||
| 
 | ||||
|   const clearChat = () => { | ||||
|     navigate("/") | ||||
|  | ||||
| @ -113,11 +113,18 @@ export const deleteModel = async (model: string) => { | ||||
|   return response.json() | ||||
| } | ||||
| 
 | ||||
| export const fetchChatModels = async () => { | ||||
| export const fetchChatModels = async ({ | ||||
|   returnEmpty = false | ||||
| }: { | ||||
|   returnEmpty?: boolean | ||||
| }) => { | ||||
|   try { | ||||
|     const baseUrl = await getOllamaURL() | ||||
|     const response = await fetch(`${cleanUrl(baseUrl)}/api/tags`) | ||||
|     if (!response.ok) { | ||||
|       if (returnEmpty) { | ||||
|         return [] | ||||
|       } | ||||
|       throw new Error(response.statusText) | ||||
|     } | ||||
|     const json = await response.json() | ||||
| @ -127,8 +134,8 @@ export const fetchChatModels = async () => { | ||||
|       modified_at: string | ||||
|       size: number | ||||
|       digest: string | ||||
|       details: { | ||||
|         parent_model: string | ||||
|       details?: { | ||||
|         parent_model?: string | ||||
|         format: string | ||||
|         family: string | ||||
|         families: string[] | ||||
| @ -136,7 +143,7 @@ export const fetchChatModels = async () => { | ||||
|         quantization_level: string | ||||
|       } | ||||
|     }[] | ||||
|     return models.filter((model) => { | ||||
|     return models?.filter((model) => { | ||||
|       return ( | ||||
|         !model?.details?.families?.includes("bert") && | ||||
|         !model?.details?.families?.includes("nomic-bert") | ||||
| @ -144,7 +151,7 @@ export const fetchChatModels = async () => { | ||||
|     }) | ||||
|   } catch (e) { | ||||
|     console.error(e) | ||||
|     return [] | ||||
|     return await getAllModels({ returnEmpty }) | ||||
|   } | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -36,6 +36,9 @@ export const setVoice = async (voice: string) => { | ||||
| 
 | ||||
| export const isTTSEnabled = async () => { | ||||
|   const data = await storage.get("isTTSEnabled") | ||||
|   if(!data  || data.length === 0) { | ||||
|     return true | ||||
|   } | ||||
|   return data === "true" | ||||
| } | ||||
| 
 | ||||
| @ -45,6 +48,9 @@ export const setTTSEnabled = async (isTTSEnabled: boolean) => { | ||||
| 
 | ||||
| export const isSSMLEnabled = async () => { | ||||
|   const data = await storage.get("isSSMLEnabled") | ||||
|   if(!data  || data.length === 0) { | ||||
|     return true | ||||
|   } | ||||
|   return data === "true" | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -12,6 +12,6 @@ export const useWebUI = create<State>((set) => ({ | ||||
|   sendWhenEnter: true, | ||||
|   setSendWhenEnter: (sendWhenEnter) => set({ sendWhenEnter }), | ||||
| 
 | ||||
|   ttsEnabled: false, | ||||
|   ttsEnabled: true, | ||||
|   setTTSEnabled: (ttsEnabled) => set({ ttsEnabled }) | ||||
| })) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user