Vmp.tsx 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import React, { useEffect } from 'react'
  2. import { BrowserRouter as Router, Route, Switch, Link, useLocation, useHistory } from 'react-router-dom'
  3. // eslint-disable-next-line
  4. import 'swiper/swiper-bundle.css'
  5. // import { Result, Button } from 'antd'
  6. // import { useSearchParams } from 'hooks/useSearchParams'
  7. // import Home from 'Home'
  8. import { useLogin2p } from 'Login2p/Login2pContext'
  9. import { VmpNotfound } from 'components/Empty'
  10. import { getQueryString } from 'utils/getQueryString'
  11. import './styles/CommonGlobal.module.scss'
  12. const Login2p = React.lazy(() => import('./Login2p/Login2p'))
  13. const Login2pWechatLanding = React.lazy(() => import('./Login2p/Login2pWechatLanding'))
  14. const NewIndex = React.lazy(() => import('./NewIndex'))
  15. const Vmp: React.FC = () => {
  16. const login2p = useLogin2p()
  17. const history = useHistory()
  18. useEffect(() => {
  19. // 如果url上有邀请码,记录
  20. const inviteCode = getQueryString('invite_code')
  21. if (inviteCode) {
  22. sessionStorage.setItem('invite_code', inviteCode)
  23. }
  24. // 如果有邀请码,带上邀请码
  25. if (sessionStorage.getItem('invite_code') && !window.location.search.includes('invite_code')) {
  26. history.push(`${window.location.pathname}?invite_code=${sessionStorage.getItem('invite_code')}`)
  27. }
  28. if (login2p.jwt) {
  29. login2p.getUserDetail()
  30. }
  31. }, [login2p.jwt])
  32. return (
  33. <Switch>
  34. <Route
  35. key={'my'}
  36. exact
  37. path={[
  38. '/',
  39. '/my',
  40. '/material/info/:articleID(\\d+)',
  41. '/material/product',
  42. '/material/quotation',
  43. '/search/:keword',
  44. '/activity/video/:videoID(\\d+)',
  45. '/activity/info/:activityID(\\d+)',
  46. '/activity/detail/:activityID(\\d+)',
  47. '/activity/medium/detail/:activityID(\\d+)',
  48. '/community/theme/:themeID',
  49. '/community/author/:authorID',
  50. // '/indepth/video/:permissionID(\\d+)/:industryID(\\d+)/:videoID(\\d+)',
  51. '/research/:researchId',
  52. '/column',
  53. '/column/view/:columnId',
  54. '/column/detail/:articleId',
  55. '/column/editor/:columnId',
  56. '/column/editor/:columnId/:articleId',
  57. '/column/modify/:articleId',
  58. '/column/check/:articleId',
  59. '/material/license',
  60. '/material/policy'
  61. ]}
  62. >
  63. <NewIndex />
  64. </Route>
  65. <Route key={'login2p'} exact path={'/login2p'}>
  66. <Login2p />
  67. </Route>
  68. <Route key={'login2p/wechat'} path={'/login2p/wechat/'}>
  69. <Login2pWechatLanding />
  70. </Route>
  71. <Route key={'404'}>
  72. <VmpNotfound />
  73. </Route>
  74. </Switch>
  75. )
  76. }
  77. export default Vmp