zhejiushizhuce před 2 roky
revize
b23e4f97ca
100 změnil soubory, kde provedl 611 přidání a 0 odebrání
  1. 25 0
      .gitignore
  2. 121 0
      README.md
  3. 7 0
      babel-plugin-macros.config.js
  4. 23 0
      craco.config.js
  5. 23 0
      jsconfig.json
  6. 104 0
      package.json
  7. binární
      public/favicon.ico
  8. 17 0
      public/index.html
  9. 3 0
      public/robots.txt
  10. 199 0
      src/App.js
  11. 2 0
      src/Global.js
  12. 5 0
      src/api/config.js
  13. 69 0
      src/api/request.js
  14. 10 0
      src/app/store.js
  15. binární
      src/assets/404dark.webp
  16. binární
      src/assets/404light.webp
  17. binární
      src/assets/activity/quests.png
  18. binární
      src/assets/activity/rio_refer.png
  19. binární
      src/assets/activity/rio_refer_f.png
  20. binární
      src/assets/activity/spin_1.png
  21. binární
      src/assets/activity/spin_2.png
  22. binární
      src/assets/activity/spin_3.png
  23. 0 0
      src/assets/auth_shapes.json
  24. binární
      src/assets/avatars/1.webp
  25. binární
      src/assets/avatars/2.webp
  26. binární
      src/assets/avatars/3.webp
  27. binární
      src/assets/avatars/4.webp
  28. binární
      src/assets/avatars/5.webp
  29. 0 0
      src/assets/ball.json
  30. binární
      src/assets/ball.webp
  31. 3 0
      src/assets/bar.svg
  32. binární
      src/assets/brand/1.webp
  33. binární
      src/assets/brand/10.webp
  34. binární
      src/assets/brand/2.webp
  35. binární
      src/assets/brand/3.webp
  36. binární
      src/assets/brand/4.webp
  37. binární
      src/assets/brand/5.webp
  38. binární
      src/assets/brand/6.webp
  39. binární
      src/assets/brand/7.webp
  40. binární
      src/assets/brand/8.webp
  41. binární
      src/assets/brand/9.webp
  42. binární
      src/assets/cart/1.webp
  43. binární
      src/assets/cart/2.webp
  44. binární
      src/assets/cart/3.webp
  45. binární
      src/assets/cart/4.webp
  46. binární
      src/assets/cart/5.webp
  47. binární
      src/assets/cart/6.webp
  48. binární
      src/assets/celtic/1.webp
  49. binární
      src/assets/celtic/10.webp
  50. binární
      src/assets/celtic/18.webp
  51. binární
      src/assets/celtic/2.webp
  52. binární
      src/assets/celtic/21.webp
  53. binární
      src/assets/celtic/22.webp
  54. binární
      src/assets/celtic/3.webp
  55. binární
      src/assets/celtic/4.webp
  56. binární
      src/assets/celtic/6.webp
  57. binární
      src/assets/celtic/7.webp
  58. binární
      src/assets/celtic/8.webp
  59. binární
      src/assets/clubs/arsenal.webp
  60. binární
      src/assets/clubs/asmonaco.webp
  61. binární
      src/assets/clubs/asse.webp
  62. binární
      src/assets/clubs/atalanta.webp
  63. binární
      src/assets/clubs/athleticbilbao.webp
  64. binární
      src/assets/clubs/atletico.webp
  65. binární
      src/assets/clubs/barcelona.webp
  66. binární
      src/assets/clubs/bayer.webp
  67. binární
      src/assets/clubs/bayern.webp
  68. binární
      src/assets/clubs/bordeaux.webp
  69. binární
      src/assets/clubs/bundesliga.webp
  70. binární
      src/assets/clubs/bvb.webp
  71. binární
      src/assets/clubs/celtavigo.webp
  72. binární
      src/assets/clubs/chelsea.webp
  73. binární
      src/assets/clubs/eintracht.webp
  74. binární
      src/assets/clubs/english_premier.webp
  75. binární
      src/assets/clubs/everton.webp
  76. binární
      src/assets/clubs/fiorentina.webp
  77. binární
      src/assets/clubs/hamburger.webp
  78. binární
      src/assets/clubs/hertha.webp
  79. binární
      src/assets/clubs/juventus.webp
  80. binární
      src/assets/clubs/koln.webp
  81. binární
      src/assets/clubs/lacoruna.webp
  82. binární
      src/assets/clubs/lazio.webp
  83. binární
      src/assets/clubs/leeds.webp
  84. binární
      src/assets/clubs/leicester.webp
  85. binární
      src/assets/clubs/lille.webp
  86. binární
      src/assets/clubs/liverpool.webp
  87. binární
      src/assets/clubs/lyon.webp
  88. binární
      src/assets/clubs/manchester.webp
  89. binární
      src/assets/clubs/manchester_united.webp
  90. binární
      src/assets/clubs/mhsc.webp
  91. binární
      src/assets/clubs/milan.webp
  92. binární
      src/assets/clubs/milano.webp
  93. binární
      src/assets/clubs/nantes.webp
  94. binární
      src/assets/clubs/napoli.webp
  95. binární
      src/assets/clubs/newcastle.webp
  96. binární
      src/assets/clubs/nice.webp
  97. binární
      src/assets/clubs/olympique.webp
  98. binární
      src/assets/clubs/psg.webp
  99. binární
      src/assets/clubs/realbetis.webp
  100. binární
      src/assets/clubs/realmadrid.webp

+ 25 - 0
.gitignore

@@ -0,0 +1,25 @@
+.DS_Store
+node_modules
+/dist
+
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+build
+yarn.lock

+ 121 - 0
README.md

@@ -0,0 +1,121 @@
+## Getting started
+
+#### Developed with:
+
+- [React](https://reactjs.org/) - 18.2.0
+- [Node.js](https://nodejs.org/en/) - 18.12.1
+
+First, install the dependencies using `npm install --legacy-peer-deps` or `yarn install`.
+
+Then, run the development server:
+
+```bash
+yarn start
+# OR
+npm run start
+```
+
+Then, open [http://localhost:3000](http://localhost:3000) with your browser to see the result (if it doesn't open automatically).
+
+You can start editing pages or components. The page auto-updates as you edit and save a file.
+
+To avoid any issues, please make sure you have the latest stable version of [Node.js](https://nodejs.org/en/) installed.
+
+If you need to have multiple versions of Node.js installed, you can use [nvm](https://github.com/nvm-sh/nvm).
+
+### List of available scripts:
+
+Liga Dashboard Template is based on [Create-React-App](https://create-react-app.dev) template.
+
+### `start`
+
+Runs the app in the development mode.
+Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
+
+The page will reload when you make changes.\
+You may also see any lint errors in the console.
+
+### `build`
+
+Builds the app for production to the `build` folder.\
+It correctly bundles React in production mode and optimizes the build for the best performance.
+
+The build is minified and the filenames include the hashes.
+
+### `gzip`
+
+Builds the app for production to the `build` folder and compresses it with gzip and brotli.\
+If your server is configured to serve pre-compressed files, you can use this command to reduce the transfer size up to 70%.
+
+### `eject`
+
+**Note: this is a one-way operation. Once you `eject`, you can't go back!**
+
+If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
+
+Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them.
+
+### How to customize icon font
+
+You can import *selection.json* located in `src/fonts/icomoon` back to the [IcoMoon app](https://icomoon.io/app) using the *Import Icons* button (or via Main Menu → Manage Projects) to retrieve icon selection.
+
+### How to use Google Analytics
+
+To use Google Analytics, you need to create a new project in [Google Analytics](https://analytics.google.com/analytics/web/) and get the tracking ID.
+
+Then, create a new file called *.env.local* in the root directory of your project and add the following line to it:
+
+```bash
+REACT_APP_PUBLIC_GA=YOUR_TRACKING_ID
+```
+
+------
+
+## File structure
+
+    .
+    ├── public                  # static files
+    │   ├── favicon.ico
+    │   ├── index.html          # main HTML file
+    │   ├── robots.txt
+    ├── src                     # source files
+    │   ├── app                 # redux store
+    │   ├── assets              # static assets
+    │   ├── components          # reusable components shared across the app
+    │   ├── constants           
+    │   ├── contexts            # context providers
+    │   ├── db                  # fake database
+    │   ├── features            # redux features (slices)
+    │   ├── fonts               
+    │   ├── hooks               # custom hooks
+    │   ├── layout              # main layout components (header, sidebar, etc.)
+    │   ├── pages               
+    │   ├── styles              # global styles
+    │   ├── ui                  # reusable UI components
+    │   ├── utils               # helper functions
+    │   ├── widgets             # reusable widgets
+    │   ├── App.js              # main app component
+    │   ├── index.js            # app entry point
+    │   ├── layouts.js          # layout object for react-grid-layout
+    │   ├── style.scss          # global app styles
+    ├── .htaccess                       # htaccess file for Apache server
+    ├── babel-plugin-macros.config.js   # babel macros config (for styled-components)
+    ├── craco.config.js                 # custom CRA config
+    ├── jsconfig.json                   # jsconfig for IDE
+    ├── package.json            
+
+## Third-party libraries
+
+- [React-spring](https://www.react-spring.io/) - animation library
+- [Recharts](http://recharts.org/en-US/) - charts
+- [React-select](https://react-select.com/home)
+- [Swiper](https://swiperjs.com/react) - slider
+- [React-toastify](https://fkhadra.github.io/react-toastify/introduction) - toast notifications
+- [MUI](https://mui.com/) - material ui components
+- [styled-components](https://styled-components.com/) - css-in-js
+- [dnd-kit](https://dndkit.com/) - drag and drop
+- [React Redux](https://react-redux.js.org/) - state management
+- [React Router](https://reactrouter.com/) - routing
+- [React Grid Layout](https://react-grid-layout.github.io/react-grid-layout/examples/0-showcase.html) - layout
+- [React Hook Form](https://react-hook-form.com/) - form validation
+- [React Big Calendar](http://jquense.github.io/react-big-calendar/examples/index.html) - scheduler

+ 7 - 0
babel-plugin-macros.config.js

@@ -0,0 +1,7 @@
+const isDev = process.env.NODE_ENV !== 'production';
+module.exports = {
+    styledComponents: {
+        fileName: isDev,
+        displayName: isDev
+    }
+}

+ 23 - 0
craco.config.js

@@ -0,0 +1,23 @@
+const path = require('path');
+
+module.exports = {
+    webpack: {
+        alias: {
+            '@components': path.resolve(__dirname, 'src/components'),
+            '@ui': path.resolve(__dirname, 'src/ui'),
+            '@pages': path.resolve(__dirname, 'src/pages'),
+            '@assets': path.resolve(__dirname, 'src/assets'),
+            '@styles': path.resolve(__dirname, 'src/styles'),
+            '@db': path.resolve(__dirname, 'src/db'),
+            '@hooks': path.resolve(__dirname, 'src/hooks'),
+            '@layout': path.resolve(__dirname, 'src/layout'),
+            '@fonts': path.resolve(__dirname, 'src/fonts'),
+            '@utils': path.resolve(__dirname, 'src/utils'),
+            '@widgets': path.resolve(__dirname, 'src/widgets'),
+            '@contexts': path.resolve(__dirname, 'src/contexts'),
+            '@constants': path.resolve(__dirname, 'src/constants'),
+            '@features': path.resolve(__dirname, 'src/features'),
+            '@api':path.resolve(__dirname,'src/api'),
+        },
+    }
+};

+ 23 - 0
jsconfig.json

@@ -0,0 +1,23 @@
+{
+    "compilerOptions": {
+        "jsx": "react",
+        "baseUrl": "./src",
+        "paths": {
+            "@components/*": [ "components/*"],
+            "@ui/*": [ "ui/*" ],
+            "@pages/*": [ "pages/*" ],
+            "@assets/*": [ "assets/*" ],
+            "@styles/*": [ "styles/*" ],
+            "@db/*": [ "db/*" ],
+            "@hooks/*": [ "hooks/*" ],
+            "@layout/*": [ "layout/*" ],
+            "@fonts/*": [ "fonts/*" ],
+            "@utils/*": [ "utils/*" ],
+            "@widgets/*": [ "widgets/*" ],
+            "@contexts/*": [ "contexts/*" ],
+            "@constants/*": [ "constants/*" ],
+            "@features/*": [ "features/*" ],
+            "@api/*": ["api/*"]
+        }
+    }
+}

+ 104 - 0
package.json

@@ -0,0 +1,104 @@
+{
+  "name": "liga-soccer",
+  "version": "1.0.2",
+  "private": true,
+  "author": "merkulove <hello@merkulov.design> (https://1.envato.market/tf-merkulove)",
+  "contributors": [
+    {
+      "name": "Lilit L.",
+      "email": "lilit@merkulov.design"
+    }
+  ],
+  "copyright": "Merkulove ( https://merkulov.design/ ). All rights reserved.",
+  "support": "help@merkulov.design",
+  "license": "Envato License https://1.envato.market/KYbje",
+  "dependencies": {
+    "@dnd-kit/core": "^6.0.8",
+    "@dnd-kit/modifiers": "^6.0.1",
+    "@dnd-kit/sortable": "^7.0.2",
+    "@dnd-kit/utilities": "^3.2.1",
+    "@emotion/cache": "^11.10.5",
+    "@emotion/react": "^11.10.6",
+    "@emotion/styled": "^11.10.5",
+    "@loadable/component": "^5.15.3",
+    "@mui/base": "^5.0.0-beta.19",
+    "@mui/material": "^5.11.4",
+    "@mui/styled-engine-sc": "^5.11.0",
+    "@react-spring/web": "^9.7.1",
+    "@reduxjs/toolkit": "^1.9.3",
+    "@tanstack/react-table": "^8.7.9",
+    "axios": "^1.6.7",
+    "classnames": "^2.3.2",
+    "country-state-city": "^3.1.2",
+    "craco": "^0.0.3",
+    "dayjs": "^1.11.7",
+    "i18next": "^23.8.2",
+    "i18next-browser-languagedetector": "^7.2.0",
+    "lottie-react": "^2.4.0",
+    "moment": "^2.29.4",
+    "nanoid": "^4.0.1",
+    "prop-types": "^15.8.1",
+    "query-string": "^9.0.0",
+    "react": "^18.2.0",
+    "react-big-calendar": "^1.6.8",
+    "react-calendar": "^4.0.0",
+    "react-countup": "^6.4.1",
+    "react-dom": "^18.2.0",
+    "react-ga4": "^2.1.0",
+    "react-grid-layout": "^1.3.4",
+    "react-headroom": "^3.2.1",
+    "react-helmet": "^6.1.0",
+    "react-hook-form": "^7.43.3",
+    "react-i18next": "^14.0.5",
+    "react-intersection-observer": "^9.4.3",
+    "react-lazy-load-image-component": "^1.5.6",
+    "react-number-format": "^5.1.4",
+    "react-redux": "^8.0.5",
+    "react-router-dom": "^6.6.2",
+    "react-scripts": "5.0.1",
+    "react-select": "^5.7.0",
+    "react-select-country-list": "^2.2.3",
+    "react-sizeme": "^3.0.2",
+    "react-stickynode": "^4.1.0",
+    "react-toastify": "^9.1.1",
+    "react-truncate": "^2.4.0",
+    "react-use": "^17.4.0",
+    "react-use-measure": "^2.1.1",
+    "recharts": "^2.4.3",
+    "rtl-detect": "^1.0.4",
+    "sass": "^1.57.1",
+    "styled-components": "^5.3.6",
+    "styled-theming": "^2.2.0",
+    "stylis-plugin-rtl": "^2.1.1",
+    "swiper": "^8.4.6",
+    "use-gauge": "^0.5.0",
+    "use-mobile-detect-hook": "^1.0.5"
+  },
+  "scripts": {
+    "start": "craco start",
+    "build": "craco build",
+    "gzip": "craco build && compress-cra",
+    "eject": "react-scripts eject"
+  },
+  "eslintConfig": {
+    "extends": [
+      "react-app",
+      "react-app/jest"
+    ]
+  },
+  "browserslist": {
+    "production": [
+      ">0.2%",
+      "not dead",
+      "not op_mini all"
+    ],
+    "development": [
+      "last 1 chrome version",
+      "last 1 firefox version",
+      "last 1 safari version"
+    ]
+  },
+  "devDependencies": {
+    "compress-create-react-app": "^1.3.1"
+  }
+}

binární
public/favicon.ico


+ 17 - 0
public/index.html

@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>Liga Soccer React Dashboard Template</title>
+    <link rel="preconnect" href="https://fonts.googleapis.com">
+    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+    <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800&family=Open+Sans:wght@400;600;700&display=swap" rel="stylesheet">
+    <meta name="description" content="Elevate your soccer management with Liga Soccer React Dashboard! Featuring live data, customizable widgets, and intuitive charts, our dashboard empowers you to effectively monitor player stats, team performance, and match schedules.">
+  </head>
+  <body>
+    <noscript>You need to enable JavaScript to run this app.</noscript>
+    <div id="root"></div>
+  </body>
+</html>

+ 3 - 0
public/robots.txt

@@ -0,0 +1,3 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
+Disallow:

+ 199 - 0
src/App.js

@@ -0,0 +1,199 @@
+
+// GA
+import ReactGA from 'react-ga4';
+
+// utils
+import {lazy, Suspense} from 'react';
+
+// styles
+import ThemeStyles from '@styles/theme';
+import './style.scss';
+
+// libs styles
+import 'react-toastify/dist/ReactToastify.min.css';
+import 'react-grid-layout/css/styles.css';
+import 'swiper/css';
+import 'swiper/css/effect-fade';
+import 'swiper/css/pagination';
+
+// fonts
+import '@fonts/icomoon/icomoon.woff';
+
+// contexts
+import {SidebarProvider, useSidebar} from '@contexts/sidebarContext';
+import {ThemeProvider} from 'styled-components';
+
+// hooks
+import {useThemeProvider} from '@contexts/themeContext';
+import {useEffect, useRef} from 'react';
+import {useWindowSize} from 'react-use';
+import useAuthRoute from '@hooks/useAuthRoute';
+
+// utils
+import {StyleSheetManager} from 'styled-components';
+import {ThemeProvider as MuiThemeProvider, createTheme} from '@mui/material/styles';
+import {preventDefault} from '@utils/helpers';
+import rtlPlugin from 'stylis-plugin-rtl';
+import {CacheProvider} from '@emotion/react';
+import createCache from '@emotion/cache';
+
+// components
+import {BrowserRouter, HashRouter, Route, Routes, useLocation} from 'react-router-dom';
+import {ToastContainer} from 'react-toastify';
+import LoadingScreen from '@components/LoadingScreen';
+import Sidebar from '@layout/Sidebar';
+import BottomNav from '@layout/BottomNav';
+import Navbar from '@layout/Navbar';
+import ShoppingCart from '@widgets/ShoppingCart';
+import ScrollToTop from '@components/ScrollToTop';
+import AppContainer from "@layout/AppContainer";
+import {APP_ROUTES} from "@api/config";
+import Http from "@api/request";
+import Layout from "@layout/Layout";
+
+// pages
+const ClubSummary = lazy(() => import('@pages/ClubSummary'));
+const GameSummary = lazy(() => import('@pages/GameSummary'));
+const Championships = lazy(() => import('@pages/Championships'));
+const LeagueOverview = lazy(() => import('@pages/LeagueOverview'));
+const FansCommunity = lazy(() => import('@pages/FansCommunity'));
+const Statistics = lazy(() => import('@pages/Statistics'));
+const PageNotFound = lazy(() => import('@pages/PageNotFound'));
+const MatchSummary = lazy(() => import('@pages/MatchSummary'));
+const MatchOverview = lazy(() => import('@pages/MatchOverview'));
+const PlayerProfile = lazy(() => import('@pages/PlayerProfile'));
+const Schedule = lazy(() => import('@pages/Schedule'));
+const Tickets = lazy(() => import('@pages/Tickets'));
+const FootballStore = lazy(() => import('@pages/FootballStore'));
+const BrandStore = lazy(() => import('@pages/BrandStore'));
+const Product = lazy(() => import('@pages/Product'));
+const Login = lazy(() => import('@pages/Login'));
+const SignUp = lazy(() => import('@pages/SignUp'));
+const Settings = lazy(() => import('@pages/Settings'));
+
+const App = () => {
+    const appRef = useRef(null);
+    const {theme, direction} = useThemeProvider();
+    const {width} = useWindowSize();
+    // const isAuthRoute = useAuthRoute();
+    const isAuthRoute = false;
+    const {pathname, search, hash} = useLocation();
+    // Google Analytics init
+    const gaKey = process.env.REACT_APP_PUBLIC_GA;
+    gaKey && ReactGA.initialize(gaKey);
+
+    // auto RTL support for Material-UI components and styled-components
+
+    const plugins = direction === 'rtl' ? [rtlPlugin] : [];
+
+    const muiTheme = createTheme({
+        direction: direction,
+    });
+
+    const cacheRtl = createCache({
+        key: 'css-rtl',
+        stylisPlugins: plugins,
+    });
+
+    useEffect(() => {
+        // scroll to top on route change
+        appRef.current && appRef.current.scrollTo(0, 0);
+        preventDefault();
+    }, []);
+    // return (
+    //     <CacheProvider value={cacheRtl}>
+    //         <MuiThemeProvider theme={muiTheme}>
+    //             <SidebarProvider>
+    //                 <ThemeProvider theme={{theme: theme}}>
+    //                     <ThemeStyles/>
+    //                     <ToastContainer theme={theme} autoClose={2500}
+    //                                     position={direction === 'ltr' ? 'top-right' : 'top-left'}/>
+    //                     <StyleSheetManager stylisPlugins={plugins}>
+    //                         <div className={`app ${isAuthRoute ? 'fluid' : ''}`} ref={appRef}>
+    //                             <ScrollToTop/>
+    //                             {
+    //                                 !isAuthRoute && (
+    //                                     <>
+    //                                         <Sidebar/>
+    //                                         <Navbar/>
+    //                                         {
+    //                                             // width < 768 && <Navbar/>
+    //                                         }
+    //                                         {
+    //                                             width < 768 && <BottomNav/>
+    //                                         }
+    //                                     </>
+    //                                 )
+    //                             }
+    //                             {/*<div className={`app_container ${true?'sidebar-open':'sidebar-close'}`}>*/}
+    //                             <AppContainer>
+    //                                 <div className="app_container-content d-flex flex-column flex-1">
+    //                                     <Suspense fallback={<LoadingScreen/>}>
+    //                                         <Routes>
+    //                                             <Route path="*" element={<PageNotFound/>}/>
+    //                                             <Route path="/" element={<ClubSummary/>}/>
+    //                                             <Route path="/game-summary" element={<GameSummary/>}/>
+    //                                             <Route path="/championships" element={<Championships/>}/>
+    //                                             <Route path="/league-overview" element={<LeagueOverview/>}/>
+    //                                             <Route path="/fans-community" element={<FansCommunity/>}/>
+    //                                             <Route path="/statistics" element={<Statistics/>}/>
+    //                                             <Route path="/match-summary" element={<MatchSummary/>}/>
+    //                                             <Route path="/match-overview" element={<MatchOverview/>}/>
+    //                                             <Route path="/player-profile" element={<PlayerProfile/>}/>
+    //                                             <Route path="/schedule" element={<Schedule/>}/>
+    //                                             <Route path="/tickets" element={<Tickets/>}/>
+    //                                             <Route path="/football-store" element={<FootballStore/>}/>
+    //                                             <Route path="/brand-store" element={<BrandStore/>}/>
+    //                                             <Route path="/product" element={<Product/>}/>
+    //                                         </Routes>
+    //                                         {
+    //                                             hash != '' ? (
+    //                                                 <Routes location={{
+    //                                                     pathname: (pathname + hash),
+    //                                                     search: search,
+    //                                                     hash: hash
+    //                                                 }}>
+    //                                                     <Route path={`${pathname}#/settings`} element={<div style={{
+    //                                                         backgroundColor: '#fff',
+    //                                                         zIndex: 2000,
+    //                                                         position: "fixed",
+    //                                                         width: '100px',
+    //                                                         height: '100px'
+    //                                                     }}/>}/>
+    //                                                     <Route path={`${pathname}#/sign-up`} element={<MatchSummary/>}/>
+    //                                                 </Routes>
+    //                                             ) : (<></>)
+    //                                         }
+    //
+    //                                     </Suspense>
+    //
+    //                                 </div>
+    //                                 {/*</div>*/}
+    //                             </AppContainer>
+    //                             <ShoppingCart isPopup/>
+    //                         </div>
+    //                     </StyleSheetManager>
+    //                 </ThemeProvider>
+    //             </SidebarProvider>
+    //         </MuiThemeProvider>
+    //     </CacheProvider>
+    // );
+    return (
+        <CacheProvider value={cacheRtl}>
+            <MuiThemeProvider theme={muiTheme}>
+                <SidebarProvider>
+                    <ThemeProvider theme={{theme: theme}}>
+                        <ThemeStyles/>
+                        <ToastContainer theme={theme} autoClose={2500}
+                                        position={direction === 'ltr' ? 'top-right' : 'top-left'}/>
+                        <StyleSheetManager stylisPlugins={plugins}>
+                            <Layout />
+                        </StyleSheetManager>
+                    </ThemeProvider>
+                </SidebarProvider>
+            </MuiThemeProvider>
+        </CacheProvider>
+    );
+}
+
+export default App

+ 2 - 0
src/Global.js

@@ -0,0 +1,2 @@
+import i18n from './locales/index';
+global.i18n=i18n;

+ 5 - 0
src/api/config.js

@@ -0,0 +1,5 @@
+// export const BASE_API="https://api.24680.com/";
+export const BASE_API="http://localhost:8899/";
+// export const APP_ROUTES="routes";
+export const APP_ROUTES="mobile/testHttp";
+

+ 69 - 0
src/api/request.js

@@ -0,0 +1,69 @@
+
+// Create axios instance
+import {BASE_API} from "./config";
+import axios from "axios";
+
+const service = axios.create({
+    baseURL: BASE_API,
+    timeout: 10000, // Request timeout
+});
+
+// Request intercepter
+service.interceptors.request.use(
+    config => {
+        return config;
+    },
+    error => {
+        // Do something with request error
+        // console.log(error); // for debug
+        Promise.reject(error);
+    }
+);
+
+// response pre-processing
+service.interceptors.response.use(
+    response => {
+
+        return response.data;
+    },
+    error => {
+        let message = error.message;
+        // console.log(error);
+
+        return Promise.reject(error);
+    }
+);
+
+
+const get=(params={})=>{
+    return service({
+        method: 'get',
+        ...params
+    });
+}
+const post=(params={})=>{
+
+    return service({
+        method: 'post',
+        ...params
+    });
+}
+const put=(params={})=>{
+    return service({
+        method: 'put',
+        ...params
+    });
+}
+const adelete=(params={})=>{
+    return service({
+        method: 'delete',
+        ...params
+    });
+}
+const Http={
+    get,
+    post,
+    put,
+    delete:adelete
+}
+export default Http;

+ 10 - 0
src/app/store.js

@@ -0,0 +1,10 @@
+import {configureStore} from '@reduxjs/toolkit';
+import TodosReducer from '../features/todos/todosSlice';
+import MainReducer from '@features/mainSlice';
+
+export default configureStore({
+    reducer: {
+        todos: TodosReducer,
+        main:MainReducer,
+    }
+});

binární
src/assets/404dark.webp


binární
src/assets/404light.webp


binární
src/assets/activity/quests.png


binární
src/assets/activity/rio_refer.png


binární
src/assets/activity/rio_refer_f.png


binární
src/assets/activity/spin_1.png


binární
src/assets/activity/spin_2.png


binární
src/assets/activity/spin_3.png


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
src/assets/auth_shapes.json


binární
src/assets/avatars/1.webp


binární
src/assets/avatars/2.webp


binární
src/assets/avatars/3.webp


binární
src/assets/avatars/4.webp


binární
src/assets/avatars/5.webp


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
src/assets/ball.json


binární
src/assets/ball.webp


+ 3 - 0
src/assets/bar.svg

@@ -0,0 +1,3 @@
+<svg width="53" height="6" viewBox="0 0 53 6" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect x="0.25" width="52.3333" height="6" rx="2" fill="currentColor"/>
+</svg>

binární
src/assets/brand/1.webp


binární
src/assets/brand/10.webp


binární
src/assets/brand/2.webp


binární
src/assets/brand/3.webp


binární
src/assets/brand/4.webp


binární
src/assets/brand/5.webp


binární
src/assets/brand/6.webp


binární
src/assets/brand/7.webp


binární
src/assets/brand/8.webp


binární
src/assets/brand/9.webp


binární
src/assets/cart/1.webp


binární
src/assets/cart/2.webp


binární
src/assets/cart/3.webp


binární
src/assets/cart/4.webp


binární
src/assets/cart/5.webp


binární
src/assets/cart/6.webp


binární
src/assets/celtic/1.webp


binární
src/assets/celtic/10.webp


binární
src/assets/celtic/18.webp


binární
src/assets/celtic/2.webp


binární
src/assets/celtic/21.webp


binární
src/assets/celtic/22.webp


binární
src/assets/celtic/3.webp


binární
src/assets/celtic/4.webp


binární
src/assets/celtic/6.webp


binární
src/assets/celtic/7.webp


binární
src/assets/celtic/8.webp


binární
src/assets/clubs/arsenal.webp


binární
src/assets/clubs/asmonaco.webp


binární
src/assets/clubs/asse.webp


binární
src/assets/clubs/atalanta.webp


binární
src/assets/clubs/athleticbilbao.webp


binární
src/assets/clubs/atletico.webp


binární
src/assets/clubs/barcelona.webp


binární
src/assets/clubs/bayer.webp


binární
src/assets/clubs/bayern.webp


binární
src/assets/clubs/bordeaux.webp


binární
src/assets/clubs/bundesliga.webp


binární
src/assets/clubs/bvb.webp


binární
src/assets/clubs/celtavigo.webp


binární
src/assets/clubs/chelsea.webp


binární
src/assets/clubs/eintracht.webp


binární
src/assets/clubs/english_premier.webp


binární
src/assets/clubs/everton.webp


binární
src/assets/clubs/fiorentina.webp


binární
src/assets/clubs/hamburger.webp


binární
src/assets/clubs/hertha.webp


binární
src/assets/clubs/juventus.webp


binární
src/assets/clubs/koln.webp


binární
src/assets/clubs/lacoruna.webp


binární
src/assets/clubs/lazio.webp


binární
src/assets/clubs/leeds.webp


binární
src/assets/clubs/leicester.webp


binární
src/assets/clubs/lille.webp


binární
src/assets/clubs/liverpool.webp


binární
src/assets/clubs/lyon.webp


binární
src/assets/clubs/manchester.webp


binární
src/assets/clubs/manchester_united.webp


binární
src/assets/clubs/mhsc.webp


binární
src/assets/clubs/milan.webp


binární
src/assets/clubs/milano.webp


binární
src/assets/clubs/nantes.webp


binární
src/assets/clubs/napoli.webp


binární
src/assets/clubs/newcastle.webp


binární
src/assets/clubs/nice.webp


binární
src/assets/clubs/olympique.webp


binární
src/assets/clubs/psg.webp


binární
src/assets/clubs/realbetis.webp


binární
src/assets/clubs/realmadrid.webp


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů