|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
isFetchedPlan: boolean |
|
|
isFetchedPlan: boolean |
|
|
enableBilling: boolean |
|
|
enableBilling: boolean |
|
|
|
|
|
onPlanInfoChanged: () => void |
|
|
enableReplaceWebAppLogo: boolean |
|
|
enableReplaceWebAppLogo: boolean |
|
|
}>({ |
|
|
}>({ |
|
|
modelProviders: [], |
|
|
|
|
|
textGenerationModelList: [], |
|
|
|
|
|
agentThoughtModelList: [], |
|
|
|
|
|
supportRetrievalMethods: [], |
|
|
|
|
|
hasSettedApiKey: true, |
|
|
|
|
|
plan: { |
|
|
|
|
|
type: Plan.sandbox, |
|
|
|
|
|
usage: { |
|
|
|
|
|
vectorSpace: 32, |
|
|
|
|
|
buildApps: 12, |
|
|
|
|
|
teamMembers: 1, |
|
|
|
|
|
annotatedResponse: 1, |
|
|
|
|
|
}, |
|
|
|
|
|
total: { |
|
|
|
|
|
vectorSpace: 200, |
|
|
|
|
|
buildApps: 50, |
|
|
|
|
|
teamMembers: 1, |
|
|
|
|
|
annotatedResponse: 10, |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
|
|
|
isFetchedPlan: false, |
|
|
|
|
|
enableBilling: false, |
|
|
|
|
|
enableReplaceWebAppLogo: false, |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
modelProviders: [], |
|
|
|
|
|
textGenerationModelList: [], |
|
|
|
|
|
agentThoughtModelList: [], |
|
|
|
|
|
supportRetrievalMethods: [], |
|
|
|
|
|
hasSettedApiKey: true, |
|
|
|
|
|
plan: { |
|
|
|
|
|
type: Plan.sandbox, |
|
|
|
|
|
usage: { |
|
|
|
|
|
vectorSpace: 32, |
|
|
|
|
|
buildApps: 12, |
|
|
|
|
|
teamMembers: 1, |
|
|
|
|
|
annotatedResponse: 1, |
|
|
|
|
|
}, |
|
|
|
|
|
total: { |
|
|
|
|
|
vectorSpace: 200, |
|
|
|
|
|
buildApps: 50, |
|
|
|
|
|
teamMembers: 1, |
|
|
|
|
|
annotatedResponse: 10, |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
|
|
|
isFetchedPlan: false, |
|
|
|
|
|
enableBilling: false, |
|
|
|
|
|
onPlanInfoChanged: () => { }, |
|
|
|
|
|
enableReplaceWebAppLogo: false, |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
export const useProviderContext = () => useContext(ProviderContext) |
|
|
export const useProviderContext = () => useContext(ProviderContext) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const [isFetchedPlan, setIsFetchedPlan] = useState(false) |
|
|
const [isFetchedPlan, setIsFetchedPlan] = useState(false) |
|
|
const [enableBilling, setEnableBilling] = useState(true) |
|
|
const [enableBilling, setEnableBilling] = useState(true) |
|
|
const [enableReplaceWebAppLogo, setEnableReplaceWebAppLogo] = useState(false) |
|
|
const [enableReplaceWebAppLogo, setEnableReplaceWebAppLogo] = useState(false) |
|
|
|
|
|
|
|
|
const handleOperateUtm = () => { |
|
|
const handleOperateUtm = () => { |
|
|
let utm |
|
|
let utm |
|
|
try { |
|
|
try { |
|
|
|
|
|
|
|
|
if (utm.utm_source || utm.utm_medium || utm.utm_campaign || utm.utm_content || utm.utm_term) |
|
|
if (utm.utm_source || utm.utm_medium || utm.utm_campaign || utm.utm_content || utm.utm_term) |
|
|
operationUtm({ url: '/operation/utm', body: utm }) |
|
|
operationUtm({ url: '/operation/utm', body: utm }) |
|
|
} |
|
|
} |
|
|
|
|
|
const fetchPlan = async () => { |
|
|
|
|
|
const data = await fetchCurrentPlanInfo() |
|
|
|
|
|
const enabled = data.billing.enabled |
|
|
|
|
|
setEnableBilling(enabled) |
|
|
|
|
|
setEnableReplaceWebAppLogo(data.can_replace_logo) |
|
|
|
|
|
if (enabled) { |
|
|
|
|
|
setPlan(parseCurrentPlan(data)) |
|
|
|
|
|
handleOperateUtm() |
|
|
|
|
|
setIsFetchedPlan(true) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
useEffect(() => { |
|
|
useEffect(() => { |
|
|
(async () => { |
|
|
|
|
|
const data = await fetchCurrentPlanInfo() |
|
|
|
|
|
const enabled = data.billing.enabled |
|
|
|
|
|
setEnableBilling(enabled) |
|
|
|
|
|
setEnableReplaceWebAppLogo(data.can_replace_logo) |
|
|
|
|
|
if (enabled) { |
|
|
|
|
|
setPlan(parseCurrentPlan(data)) |
|
|
|
|
|
handleOperateUtm() |
|
|
|
|
|
setIsFetchedPlan(true) |
|
|
|
|
|
} |
|
|
|
|
|
})() |
|
|
|
|
|
|
|
|
fetchPlan() |
|
|
}, []) |
|
|
}, []) |
|
|
|
|
|
|
|
|
return ( |
|
|
return ( |
|
|
|
|
|
|
|
|
plan, |
|
|
plan, |
|
|
isFetchedPlan, |
|
|
isFetchedPlan, |
|
|
enableBilling, |
|
|
enableBilling, |
|
|
|
|
|
onPlanInfoChanged: fetchPlan, |
|
|
enableReplaceWebAppLogo, |
|
|
enableReplaceWebAppLogo, |
|
|
}}> |
|
|
}}> |
|
|
{children} |
|
|
{children} |