mirror of https://github.com/langgenius/dify.git
feat: add registration and create_app tracking
This commit is contained in:
parent
adf8ae79d5
commit
1416d71ece
|
|
@ -144,12 +144,12 @@ const Apps = ({
|
|||
})
|
||||
|
||||
// Track app creation from template
|
||||
trackEvent('app_created', {
|
||||
trackEvent('create_app_with_template', {
|
||||
app_mode: mode,
|
||||
creation_method: 'template',
|
||||
template_id: currApp?.app.id,
|
||||
template_name: currApp?.app.name,
|
||||
has_description: !!description,
|
||||
time: new Date().toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' }),
|
||||
has_description: description,
|
||||
})
|
||||
|
||||
setIsShowCreateModal(false)
|
||||
|
|
|
|||
|
|
@ -85,10 +85,10 @@ function CreateApp({ onClose, onSuccess, onCreateFromTemplate, defaultAppMode }:
|
|||
})
|
||||
|
||||
// Track app creation success
|
||||
trackEvent('app_created', {
|
||||
trackEvent('create_app', {
|
||||
app_mode: appMode,
|
||||
creation_method: 'blank',
|
||||
has_description: !!description,
|
||||
time: new Date().toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' }),
|
||||
description,
|
||||
})
|
||||
|
||||
notify({ type: 'success', message: t('app.newApp.appCreated') })
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ const CreateFromDSLModal = ({ show, onSuccess, onClose, activeTab = CreateFromDS
|
|||
const { id, status, app_id, app_mode, imported_dsl_version, current_dsl_version } = response
|
||||
if (status === DSLImportStatus.COMPLETED || status === DSLImportStatus.COMPLETED_WITH_WARNINGS) {
|
||||
// Track app creation from DSL import
|
||||
trackEvent('app_created', {
|
||||
trackEvent('create_app_with_dsl', {
|
||||
app_mode,
|
||||
creation_method: currentTab === CreateFromDSLModalTab.FROM_FILE ? 'dsl_file' : 'dsl_url',
|
||||
has_warnings: status === DSLImportStatus.COMPLETED_WITH_WARNINGS,
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import quarterOfYear from 'dayjs/plugin/quarterOfYear'
|
|||
import type { QueryParam } from './index'
|
||||
import Chip from '@/app/components/base/chip'
|
||||
import Input from '@/app/components/base/input'
|
||||
import { trackEvent } from '../../base/amplitude/utils'
|
||||
dayjs.extend(quarterOfYear)
|
||||
|
||||
const today = dayjs()
|
||||
|
|
@ -38,9 +37,6 @@ const Filter: FC<IFilterProps> = ({ queryParams, setQueryParams }: IFilterProps)
|
|||
value={queryParams.status || 'all'}
|
||||
onSelect={(item) => {
|
||||
setQueryParams({ ...queryParams, status: item.value as string })
|
||||
trackEvent('workflow_log_filter_status_selected', {
|
||||
workflow_log_filter_status: item.value as string,
|
||||
})
|
||||
}}
|
||||
onClear={() => setQueryParams({ ...queryParams, status: 'all' })}
|
||||
items={[{ value: 'all', name: 'All' },
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ const AmplitudeProvider: FC<IAmplitudeProps> = ({
|
|||
fileDownloads: true,
|
||||
},
|
||||
// Enable debug logs in development environment
|
||||
logLevel: process.env.NODE_ENV === 'development' ? amplitude.Types.LogLevel.Debug : amplitude.Types.LogLevel.Warn,
|
||||
logLevel: amplitude.Types.LogLevel.Warn,
|
||||
})
|
||||
|
||||
// Log initialization success in development
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import type { InitValidateStatusResponse, SetupStatusResponse } from '@/models/c
|
|||
import useDocumentTitle from '@/hooks/use-document-title'
|
||||
import { useDocLink } from '@/context/i18n'
|
||||
import { validPassword } from '@/config'
|
||||
import { trackEvent } from '@/app/components/base/amplitude'
|
||||
|
||||
const accountFormSchema = z.object({
|
||||
email: z
|
||||
|
|
@ -74,15 +73,6 @@ const InstallForm = () => {
|
|||
|
||||
// Store tokens and redirect to apps if login successful
|
||||
if (loginRes.result === 'success') {
|
||||
// Track initial setup completion
|
||||
trackEvent('user_registration_success', {
|
||||
method: 'initial_setup',
|
||||
})
|
||||
trackEvent('user_login_success', {
|
||||
method: 'initial_setup',
|
||||
is_invite: false,
|
||||
})
|
||||
|
||||
router.replace('/apps')
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ export default function CheckCode() {
|
|||
// Track login success event
|
||||
trackEvent('user_login_success', {
|
||||
method: 'email_code',
|
||||
time: new Date().toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' }),
|
||||
is_invite: !!invite_token,
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ export default function MailAndPasswordAuth({ isInvite, isEmailSetup, allowRegis
|
|||
// Track login success event
|
||||
trackEvent('user_login_success', {
|
||||
method: 'email_password',
|
||||
time: new Date().toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' }),
|
||||
is_invite: isInvite,
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@ export default function CheckCode() {
|
|||
}
|
||||
setIsLoading(true)
|
||||
const res = await verifyCode({ email, code, token })
|
||||
console.log(res)
|
||||
if ((res as MailValidityResponse).is_valid) {
|
||||
const params = new URLSearchParams(searchParams)
|
||||
params.set('token', encodeURIComponent((res as MailValidityResponse).token))
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ const ChangePasswordForm = () => {
|
|||
// Track registration success event
|
||||
trackEvent('user_registration_success', {
|
||||
method: 'email',
|
||||
time: new Date().toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' }),
|
||||
})
|
||||
|
||||
Toast.notify({
|
||||
|
|
|
|||
Loading…
Reference in New Issue