Unverified Commit 0940084f authored by zxhlyh's avatar zxhlyh Committed by GitHub

chore: utm (#2180)

parent 95ad06c8
......@@ -15,6 +15,14 @@ const SwrInitor = ({
const searchParams = useSearchParams()
const consoleToken = searchParams.get('console_token')
const consoleTokenFromLocalStorage = localStorage?.getItem('console_token')
const utm = {
utm_source: searchParams.get('utm_source') || '',
utm_medium: searchParams.get('utm_medium') || '',
utm_campaign: searchParams.get('utm_campaign') || '',
utm_content: searchParams.get('utm_content') || '',
utm_term: searchParams.get('utm_term') || '',
}
localStorage?.setItem('utm', JSON.stringify(utm))
const [init, setInit] = useState(false)
useEffect(() => {
......@@ -23,7 +31,7 @@ const SwrInitor = ({
if (consoleToken) {
localStorage?.setItem('console_token', consoleToken!)
router.replace('/apps', { forceOptimisticNavigation: false })
router.replace('/apps', { forceOptimisticNavigation: false } as any)
}
setInit(true)
}, [])
......
......@@ -7,6 +7,7 @@ import {
fetchModelList,
fetchModelProviders,
fetchSupportRetrievalMethods,
operationUtm,
} from '@/service/common'
import {
ModelFeatureEnum,
......@@ -97,6 +98,23 @@ export const ProviderContextProvider = ({
const [isFetchedPlan, setIsFetchedPlan] = useState(false)
const [enableBilling, setEnableBilling] = useState(true)
const [enableReplaceWebAppLogo, setEnableReplaceWebAppLogo] = useState(false)
const handleOperateUtm = () => {
let utm
try {
utm = JSON.parse(localStorage?.getItem('utm') || '{}')
}
catch (e) {
utm = {
utm_source: '',
utm_medium: '',
utm_campaign: '',
utm_content: '',
utm_term: '',
}
}
operationUtm({ url: '/operation/utm', body: utm })
}
useEffect(() => {
(async () => {
const data = await fetchCurrentPlanInfo()
......@@ -105,13 +123,7 @@ export const ProviderContextProvider = ({
setEnableReplaceWebAppLogo(data.can_replace_logo)
if (enabled) {
setPlan(parseCurrentPlan(data))
// setPlan(parseCurrentPlan({
// ...data,
// annotation_quota_limit: {
// ...data.annotation_quota_limit,
// limit: 10,
// },
// }))
handleOperateUtm()
setIsFetchedPlan(true)
}
})()
......
......@@ -251,3 +251,11 @@ export type ModerationService = (
text: string
}
) => Promise<ModerateResponse>
export type Utm = {
utm_source?: string
utm_medium?: string
utm_campaign?: string
utm_term?: string
utm_content?: string
}
......@@ -20,6 +20,7 @@ import type {
ProviderAzureToken,
SetupStatusResponse,
UserProfileOriginResponse,
Utm,
} from '@/models/common'
import type {
UpdateOpenAIKeyResponse,
......@@ -262,3 +263,7 @@ type RetrievalMethodsRes = {
export const fetchSupportRetrievalMethods: Fetcher<RetrievalMethodsRes, string> = (url) => {
return get<RetrievalMethodsRes>(url)
}
export const operationUtm: Fetcher<CommonResponse, { url: string; body: Utm }> = ({ url, body }) => {
return post(url, { body }) as Promise<CommonResponse>
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment