25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

53 lines
1.7 KiB

  1. import '@/public/css/bootstrap.min.css'
  2. import 'animate.css'
  3. import '@/public/css/boxicons.min.css'
  4. import '@/public/css/flaticon.css'
  5. import "@/public/css/slick.css"
  6. import 'react-accessible-accordion/dist/fancy-example.css'
  7. import '@/public/css/style.css'
  8. import '@/public/css/responsive.css'
  9. // Multicolor if you want this color comment out
  10. // import '@/public/css/colors/brink-pink-style.css'
  11. // import '@/public/css/colors/pink-style.css'
  12. // import '@/public/css/colors/purple-style.css'
  13. import Layout from '@/components/_App/Layout'
  14. import { Provider } from 'react-redux'
  15. import { ToastProvider } from 'react-toast-notifications'
  16. import { useStore } from '../store'
  17. import * as ga from '../lib/ga'
  18. import { useEffect } from 'react'
  19. import { useRouter } from 'next/router'
  20. export default function App({ Component, pageProps }) {
  21. const router = useRouter();
  22. const store = useStore(pageProps.initialReduxState)
  23. useEffect(() => {
  24. const handleRouteChange = (url) => {
  25. ga.pageview(url)
  26. }
  27. //When the component is mounted, subscribe to router changes
  28. //and log those page views
  29. router.events.on('routeChangeComplete', handleRouteChange)
  30. // If the component is unmounted, unsubscribe
  31. // from the event with the `off` method
  32. return () => {
  33. router.events.off('routeChangeComplete', handleRouteChange)
  34. }
  35. }, [router.events]);
  36. return (
  37. <ToastProvider
  38. placement="bottom-left"
  39. autoDismissTimeout={6000}
  40. autoDismiss
  41. >
  42. <Provider store={store}>
  43. <Layout />
  44. <Component {...pageProps} />
  45. </Provider>
  46. </ToastProvider>
  47. )
  48. }