|
@@ -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 || [],
|