diff --git a/.env.example b/.env.example index ce3783e..a2e482c 100644 --- a/.env.example +++ b/.env.example @@ -1 +1,2 @@ -VITE_APP_URL= \ No newline at end of file +VITE_APP_URL= +VITE_G_ID= \ No newline at end of file diff --git a/package.json b/package.json index 526f928..2d56ee7 100644 --- a/package.json +++ b/package.json @@ -10,18 +10,20 @@ }, "dependencies": { "@reduxjs/toolkit": "^1.9.3", + "add": "^2.0.6", "antd": "^5.3.2", "axios": "^1.3.4", "localforage": "^1.10.0", "match-sorter": "^6.3.1", "moment": "^2.29.4", + "prop-types": "^15.8.1", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-ga": "^3.3.1", "react-redux": "^8.0.5", "react-router-dom": "^6.9.0", "redux": "^4.2.1", - "sort-by": "^1.2.0", - "web-vitals": "^3.3.0" + "sort-by": "^1.2.0" }, "devDependencies": { "@types/react": "^18.0.28", diff --git a/src/App.tsx b/src/App.tsx index 1040ca7..a4c2ce4 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,31 +1,43 @@ -import { useRoutes } from "react-router-dom"; +import { Suspense, useEffect } from "react"; +import ReactGA from "react-ga"; +import { useLocation, useRoutes } from "react-router-dom"; import routes from "./routes"; import "./App.scss"; -import { Suspense } from "react"; import LoadingPage from "./pages/loading"; import { user } from "./api/index"; import { getToken } from "./utils/index"; import { useDispatch } from "react-redux"; import { loginAction } from "./store/user/loginUserSlice"; -function App() { - const Views = () => useRoutes(routes); +const G_ID = import.meta.env.VITE_G_ID || ""; +if (G_ID) { + ReactGA.initialize(G_ID); +} + +const App = () => { const dispatch = useDispatch(); - const getUser = () => { + const Views = () => useRoutes(routes); + + if (getToken()) { user.detail().then((res: any) => { const data = res.data; dispatch(loginAction(data)); }); - }; - if (getToken()) { - getUser(); } + const location = useLocation(); + useEffect(() => { + if (!G_ID) { + return; + } + ReactGA.pageview(location.pathname + location.search); + }, [location]); + return ( }> ); -} +}; export default App; diff --git a/src/compenents/user-info/index.tsx b/src/compenents/user-info/index.tsx index e8957f7..22dc743 100644 --- a/src/compenents/user-info/index.tsx +++ b/src/compenents/user-info/index.tsx @@ -22,7 +22,9 @@ export const UserInfoModel: React.FC = ({ open, onCancel }) => { const [idCard, setIdCard] = useState(""); useEffect(() => { - getUser(); + if (open) { + getUser(); + } }, [form, open]); const getUser = () => { diff --git a/src/main.tsx b/src/main.tsx index eca299d..92d8eed 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,8 +1,6 @@ -import React from "react"; import ReactDOM from "react-dom/client"; import { Provider } from "react-redux"; import store from "./store"; -import reportWebVitals from "./reportWebVitals"; import { BrowserRouter } from "react-router-dom"; import { ConfigProvider } from "antd"; import zhCN from "antd/locale/zh_CN"; @@ -20,9 +18,4 @@ ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( -); - -// If you want to start measuring performance in your app, pass a function -// to log results (for example: reportWebVitals(console.log)) -// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals(); +); \ No newline at end of file diff --git a/src/reportWebVitals.ts b/src/reportWebVitals.ts deleted file mode 100644 index 49a2a16..0000000 --- a/src/reportWebVitals.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ReportHandler } from 'web-vitals'; - -const reportWebVitals = (onPerfEntry?: ReportHandler) => { - if (onPerfEntry && onPerfEntry instanceof Function) { - import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { - getCLS(onPerfEntry); - getFID(onPerfEntry); - getFCP(onPerfEntry); - getLCP(onPerfEntry); - getTTFB(onPerfEntry); - }); - } -}; - -export default reportWebVitals;