From 5c9fff29757a4d5f8b7b09fa6d2cdfeb5a834a35 Mon Sep 17 00:00:00 2001 From: xudaotutou <13435638964@163.com> Date: Thu, 9 Jan 2025 10:46:07 +0800 Subject: [PATCH] feat(desktop): add umami feat(destkop):add umami --- frontend/desktop/package.json | 2 + frontend/desktop/src/api/auth.ts | 5 +- .../src/components/team/WorkspaceToggle.tsx | 4 +- frontend/desktop/src/constants/account.ts | 5 ++ frontend/desktop/src/pages/_app.tsx | 1 + frontend/desktop/src/pages/_document.tsx | 10 ++- .../src/pages/api/platform/getAppConfig.ts | 36 +++++++---- .../src/pages/api/platform/getCommonConfig.ts | 3 +- frontend/desktop/src/pages/index.tsx | 36 ++++++++++- .../src/services/backend/globalAuth.ts | 64 ++++++++++++------- .../src/services/backend/tracking/index.ts | 34 ++++++++++ frontend/desktop/src/services/enable.ts | 1 + frontend/desktop/src/stores/config.ts | 11 ++-- frontend/desktop/src/stores/session.ts | 9 +++ frontend/desktop/src/types/index.ts | 14 ++-- frontend/desktop/src/types/system.ts | 15 ++++- frontend/pnpm-lock.yaml | 14 ++++ 17 files changed, 204 insertions(+), 60 deletions(-) create mode 100644 frontend/desktop/src/services/backend/tracking/index.ts diff --git a/frontend/desktop/package.json b/frontend/desktop/package.json index 7a7be9f5ada..b0ae07b65c5 100644 --- a/frontend/desktop/package.json +++ b/frontend/desktop/package.json @@ -34,6 +34,7 @@ "@sealos/driver": "workspace:^", "@sealos/ui": "workspace:^", "@tanstack/react-query": "^4.35.3", + "@umami/node": "^0.4.0", "axios": "^1.5.1", "clsx": "^1.2.1", "cors": "^2.8.5", @@ -93,6 +94,7 @@ "@types/nprogress": "^0.2.1", "@types/react": "18.2.37", "@types/react-dom": "18.0.11", + "@types/umami-browser": "^2.3.2", "@types/uuid": "^9.0.4", "dotenv-cli": "^7.3.0", "jest": "^29.7.0", diff --git a/frontend/desktop/src/api/auth.ts b/frontend/desktop/src/api/auth.ts index 33ee7e991d7..e297b41a336 100644 --- a/frontend/desktop/src/api/auth.ts +++ b/frontend/desktop/src/api/auth.ts @@ -186,13 +186,16 @@ export const _enterpriseRealNameAuthRequest = (request: AxiosInstance) => (data: export const _getAmount = (request: AxiosInstance) => () => request>('/api/account/getAmount'); - +export const _verifyToken = (request: AxiosInstance) => () => + request>('/api/auth/verify'); export const passwordExistRequest = _passwordExistRequest(request); export const passwordLoginRequest = _passwordLoginRequest(request, (token) => { useSessionStore.setState({ token }); }); + export const passwordModifyRequest = _passwordModifyRequest(request); export const UserInfo = _UserInfo(request); +export const verifyToken = _verifyToken(request); export const regionList = _regionList(request); export const getSmsBindCodeRequest = _getSmsBindCodeRequest(request); diff --git a/frontend/desktop/src/components/team/WorkspaceToggle.tsx b/frontend/desktop/src/components/team/WorkspaceToggle.tsx index c9b02ef69bf..81136db5346 100644 --- a/frontend/desktop/src/components/team/WorkspaceToggle.tsx +++ b/frontend/desktop/src/components/team/WorkspaceToggle.tsx @@ -1,7 +1,6 @@ import { nsListRequest, switchRequest } from '@/api/namespace'; import NsListItem from '@/components/team/NsListItem'; import TeamCenter from '@/components/team/TeamCenter'; -import useAppStore from '@/stores/app'; import useSessionStore from '@/stores/session'; import { NSType } from '@/types/team'; import { AccessTokenPayload } from '@/types/token'; @@ -16,13 +15,12 @@ import { CubeIcon, DesktopExchangeIcon } from '../icons'; export default function WorkspaceToggle() { const disclosure = useDisclosure(); - const { setWorkSpaceId, session } = useSessionStore(); + const { session } = useSessionStore(); const { t } = useTranslation(); const user = session?.user; const ns_uid = user?.ns_uid || ''; const router = useRouter(); const queryClient = useQueryClient(); - const { init } = useAppStore(); const mutation = useMutation({ mutationFn: switchRequest, async onSuccess(data) { diff --git a/frontend/desktop/src/constants/account.ts b/frontend/desktop/src/constants/account.ts index 0ccc4f735e7..c41c44de088 100644 --- a/frontend/desktop/src/constants/account.ts +++ b/frontend/desktop/src/constants/account.ts @@ -4,3 +4,8 @@ export const LicenseFrontendKey = 'cloud.sealos.io/license-frontend'; export const templateDeployKey = 'cloud.sealos.io/deploy-on-sealos'; export const userSystemNamespace = 'user-system' as const; + +export enum trackEventName { + 'dailyLoginFirst' = 'dailyLoginFirst', + 'signUp' = 'signUp' +} diff --git a/frontend/desktop/src/pages/_app.tsx b/frontend/desktop/src/pages/_app.tsx index 2205a6583b4..a5847777351 100644 --- a/frontend/desktop/src/pages/_app.tsx +++ b/frontend/desktop/src/pages/_app.tsx @@ -48,4 +48,5 @@ const App = ({ Component, pageProps }: AppProps) => { ); }; + export default appWithTranslation(App); diff --git a/frontend/desktop/src/pages/_document.tsx b/frontend/desktop/src/pages/_document.tsx index 91869f08cfe..d6781be1d7a 100644 --- a/frontend/desktop/src/pages/_document.tsx +++ b/frontend/desktop/src/pages/_document.tsx @@ -1,6 +1,7 @@ -import { Head, Html, Main, NextScript } from 'next/document'; -import { ColorModeScript } from '@chakra-ui/react'; import { theme } from '@/styles/chakraTheme'; +import { ColorModeScript } from '@chakra-ui/react'; +import { Head, Html, Main, NextScript } from 'next/document'; +import Script from 'next/script'; export default function Document() { return ( @@ -28,6 +29,11 @@ export default function Document() {
+