Просмотр исходного кода

fix: improve error handling and default values in fetchPlan function (#17320)

tags/1.2.0
akou 7 месяцев назад
Родитель
Сommit
5cffcd6336
Аккаунт пользователя с таким Email не найден
1 измененных файлов: 30 добавлений и 13 удалений
  1. 30
    13
      web/context/provider-context.tsx

+ 30
- 13
web/context/provider-context.tsx Просмотреть файл

@@ -111,20 +111,37 @@ export const ProviderContextProvider = ({
const { data: isEducationAccount } = useEducationStatus(!enableEducationPlan)

const fetchPlan = async () => {
const data = await fetchCurrentPlanInfo()
const enabled = data.billing.enabled
setEnableBilling(enabled)
setEnableEducationPlan(data.education.enabled)
setIsEducationWorkspace(data.education.activated)
setEnableReplaceWebAppLogo(data.can_replace_logo)
if (enabled) {
setPlan(parseCurrentPlan(data) as any)
setIsFetchedPlan(true)
try {
const data = await fetchCurrentPlanInfo()
if (!data) {
console.error('Failed to fetch plan info: data is undefined')
return
}

// set default value to avoid undefined error
setEnableBilling(data.billing?.enabled ?? false)
setEnableEducationPlan(data.education?.enabled ?? false)
setIsEducationWorkspace(data.education?.activated ?? false)
setEnableReplaceWebAppLogo(data.can_replace_logo ?? false)

if (data.billing?.enabled) {
setPlan(parseCurrentPlan(data) as any)
setIsFetchedPlan(true)
}

if (data.model_load_balancing_enabled)
setModelLoadBalancingEnabled(true)
if (data.dataset_operator_enabled)
setDatasetOperatorEnabled(true)
}
catch (error) {
console.error('Failed to fetch plan info:', error)
// set default value to avoid undefined error
setEnableBilling(false)
setEnableEducationPlan(false)
setIsEducationWorkspace(false)
setEnableReplaceWebAppLogo(false)
}
if (data.model_load_balancing_enabled)
setModelLoadBalancingEnabled(true)
if (data.dataset_operator_enabled)
setDatasetOperatorEnabled(true)
}
useEffect(() => {
fetchPlan()

Загрузка…
Отмена
Сохранить