refactor(playground): extract option error messages

- move option load error message selection into playground option utilities
- keep the options hook focused on query effects and fallback updates
This commit is contained in:
QuentinHsu
2026-05-30 10:53:08 +08:00
parent eef921d188
commit d75e393b11
2 changed files with 20 additions and 7 deletions
@@ -21,7 +21,11 @@ import { useQuery } from '@tanstack/react-query'
import { useTranslation } from 'react-i18next'
import { toast } from 'sonner'
import { getUserGroups, getUserModels } from '../api'
import { getGroupFallback, getModelFallback } from '../lib'
import {
getGroupFallback,
getModelFallback,
getOptionLoadErrorMessage,
} from '../lib'
import type { GroupOption, ModelOption, PlaygroundConfig } from '../types'
type UsePlaygroundOptionsParams = {
@@ -67,9 +71,10 @@ export function usePlaygroundOptions({
if (!isModelsError) return
toast.error(
modelsError instanceof Error
? modelsError.message
: t('Failed to load playground models')
getOptionLoadErrorMessage(
modelsError,
t('Failed to load playground models')
)
)
}, [isModelsError, modelsError, t])
@@ -77,9 +82,10 @@ export function usePlaygroundOptions({
if (!isGroupsError) return
toast.error(
groupsError instanceof Error
? groupsError.message
: t('Failed to load playground groups')
getOptionLoadErrorMessage(
groupsError,
t('Failed to load playground groups')
)
)
}, [isGroupsError, groupsError, t])
@@ -45,3 +45,10 @@ export function getGroupFallback(
groups.find((group) => group.value === 'default')?.value ?? groups[0].value
)
}
export function getOptionLoadErrorMessage(
error: unknown,
fallbackMessage: string
): string {
return error instanceof Error ? error.message : fallbackMessage
}