|
|
|
@@ -3,12 +3,15 @@ |
|
|
|
import { createContext, useContext, useContextSelector } from 'use-context-selector' |
|
|
|
import useSWR from 'swr' |
|
|
|
import { useEffect, useState } from 'react' |
|
|
|
import dayjs from 'dayjs' |
|
|
|
import { useTranslation } from 'react-i18next' |
|
|
|
import { |
|
|
|
fetchModelList, |
|
|
|
fetchModelProviders, |
|
|
|
fetchSupportRetrievalMethods, |
|
|
|
} from '@/service/common' |
|
|
|
import { |
|
|
|
CurrentSystemQuotaTypeEnum, |
|
|
|
ModelStatusEnum, |
|
|
|
ModelTypeEnum, |
|
|
|
} from '@/app/components/header/account-setting/model-provider-page/declarations' |
|
|
|
@@ -18,6 +21,7 @@ import { Plan, type UsagePlanInfo } from '@/app/components/billing/type' |
|
|
|
import { fetchCurrentPlanInfo } from '@/service/billing' |
|
|
|
import { parseCurrentPlan } from '@/app/components/billing/utils' |
|
|
|
import { defaultPlan } from '@/app/components/billing/config' |
|
|
|
import Toast from '@/app/components/base/toast' |
|
|
|
|
|
|
|
type ProviderContextState = { |
|
|
|
modelProviders: ModelProvider[] |
|
|
|
@@ -110,6 +114,32 @@ export const ProviderContextProvider = ({ |
|
|
|
fetchPlan() |
|
|
|
}, []) |
|
|
|
|
|
|
|
const { t } = useTranslation() |
|
|
|
useEffect(() => { |
|
|
|
if (localStorage.getItem('anthropic_quota_notice') === 'true') |
|
|
|
return |
|
|
|
|
|
|
|
if (dayjs().isAfter(dayjs('2025-03-10'))) |
|
|
|
return |
|
|
|
|
|
|
|
if (providersData?.data && providersData.data.length > 0) { |
|
|
|
const anthropic = providersData.data.find(provider => provider.provider === 'anthropic') |
|
|
|
if (anthropic && anthropic.system_configuration.current_quota_type === CurrentSystemQuotaTypeEnum.trial) { |
|
|
|
const quota = anthropic.system_configuration.quota_configurations.find(item => item.quota_type === anthropic.system_configuration.current_quota_type) |
|
|
|
if (quota && quota.is_valid && quota.quota_used < quota.quota_limit) { |
|
|
|
Toast.notify({ |
|
|
|
type: 'info', |
|
|
|
message: t('common.provider.anthropicHosted.trialQuotaTip'), |
|
|
|
duration: 6000, |
|
|
|
onClose: () => { |
|
|
|
localStorage.setItem('anthropic_quota_notice', 'true') |
|
|
|
}, |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}, [providersData, t]) |
|
|
|
|
|
|
|
return ( |
|
|
|
<ProviderContext.Provider value={{ |
|
|
|
modelProviders: providersData?.data || [], |