From d72e254f083e86f9282681f5fd65783efda3dbf2 Mon Sep 17 00:00:00 2001
From: Yassinlazaar <72605502+Yassinlazaar@users.noreply.github.com>
Date: Fri, 25 Jun 2021 02:05:59 +0200
Subject: [PATCH] Add files via upload
---
App.tsx | 132 ++++++++++++++++
_redirects | 1 +
actions.spec.js | 299 +++++++++++++++++++++++++++++++++++
aliasing.spec.js | 40 +++++
assertions.spec.js | 177 +++++++++++++++++++++
connectors.spec.js | 97 ++++++++++++
cookies.spec.js | 77 +++++++++
cypress_api.spec.js | 222 ++++++++++++++++++++++++++
files.spec.js | 115 ++++++++++++++
index.html | 13 ++
index2.tsx | 20 +++
local_storage.spec.js | 52 ++++++
location.spec.js | 32 ++++
misc.spec.js | 104 ++++++++++++
navigation.spec.js | 56 +++++++
network_requests.spec.js | 205 ++++++++++++++++++++++++
querying.spec.js | 114 +++++++++++++
spies_stubs_clocks.spec.js | 205 ++++++++++++++++++++++++
traversal.spec.js | 121 ++++++++++++++
try.d.ts | 4 +
useAddItemToShopList.tsx | 106 +++++++++++++
useCreateNewShoppingList.tsx | 82 ++++++++++
useFetchCategories.tsx | 32 ++++
useFetchHistoryLists.tsx | 70 ++++++++
useFetchItems.tsx | 22 +++
useFetchStats.tsx | 35 ++++
useInfiniteScroll.tsx | 39 +++++
useLoadActiveListData.tsx | 85 ++++++++++
useMount.tsx | 22 +++
useSidebarShow.tsx | 35 ++++
utilities.spec.js | 136 ++++++++++++++++
viewport.spec.js | 59 +++++++
waiting.spec.js | 33 ++++
window.spec.js | 22 +++
34 files changed, 2864 insertions(+)
create mode 100644 App.tsx
create mode 100644 _redirects
create mode 100644 actions.spec.js
create mode 100644 aliasing.spec.js
create mode 100644 assertions.spec.js
create mode 100644 connectors.spec.js
create mode 100644 cookies.spec.js
create mode 100644 cypress_api.spec.js
create mode 100644 files.spec.js
create mode 100644 index.html
create mode 100644 index2.tsx
create mode 100644 local_storage.spec.js
create mode 100644 location.spec.js
create mode 100644 misc.spec.js
create mode 100644 navigation.spec.js
create mode 100644 network_requests.spec.js
create mode 100644 querying.spec.js
create mode 100644 spies_stubs_clocks.spec.js
create mode 100644 traversal.spec.js
create mode 100644 try.d.ts
create mode 100644 useAddItemToShopList.tsx
create mode 100644 useCreateNewShoppingList.tsx
create mode 100644 useFetchCategories.tsx
create mode 100644 useFetchHistoryLists.tsx
create mode 100644 useFetchItems.tsx
create mode 100644 useFetchStats.tsx
create mode 100644 useInfiniteScroll.tsx
create mode 100644 useLoadActiveListData.tsx
create mode 100644 useMount.tsx
create mode 100644 useSidebarShow.tsx
create mode 100644 utilities.spec.js
create mode 100644 viewport.spec.js
create mode 100644 waiting.spec.js
create mode 100644 window.spec.js
diff --git a/App.tsx b/App.tsx
new file mode 100644
index 000000000..192829805
--- /dev/null
+++ b/App.tsx
@@ -0,0 +1,132 @@
+import { hot } from 'react-hot-loader/root'
+import React, { useCallback, useEffect, useState } from 'react'
+import { Switch, useHistory, useLocation, Redirect } from 'react-router-dom'
+import { useRecoilState } from 'recoil'
+import { Swipeable } from 'react-swipeable'
+import PrivateRoutesController from './routes/PrivateRoutesController'
+import Navbar from './components/navbar/Nav'
+import Sidebar from './components/sidebar/Sidebar'
+import PublicRoute from './components/route/PublicRoute'
+import AuthPage from './pages/auth/Autho'
+import BasicLoader from './components/load/BasicLoader'
+import { userState } from './global-state/miscState'
+import client from './api/client'
+
+// Hooks
+import useLoadActiveListData from './hooks/useLoadActiveListData'
+import useFetchCategories from './hooks/useFetchCategories'
+import useFetchItems from './hooks/useFetchItems'
+import useLoadHistoryLists from './hooks/useFetchHistoryLists'
+import useSidebarShow from './hooks/useSidebarShow'
+const App: React.FC = () => {
+ const [user, setUser] = useRecoilState(userState)
+ const [init, setInit] = useState(true)
+ const [lastHeight, setLastHeight] = useState(0)
+ const history = useHistory()
+ const location = useLocation()
+ const initialActiveShopListData = useLoadActiveListData()
+ const fetchCategories = useFetchCategories()
+ const fetchItems = useFetchItems()
+ const fetchShopListHistory = useLoadHistoryLists()
+ const showSidebar = useSidebarShow()
+ useEffect(() => {
+ if (location.search.length > 0) {
+ const access_token = new URLSearchParams(location.search).get(
+ 'access_token'
+ )
+ if (access_token) {
+
+ localStorage.setItem('token', access_token)
+ getUserConnected()
+ }
+ }
+ }, [location.search])
+
+ useEffect(() => {
+ if (localStorage.getItem('token')) {
+ // Fetch the user
+ if (location.search === '') {
+ getUserConnected()
+ }
+ } else {
+ setInit(false)
+ history.push('/login')
+ }
+ }, [])
+
+ useEffect(() => {
+ const resize = () => {
+ let vh = window.innerHeight * 0.01
+ document.documentElement.style.setProperty('--vh', `${vh}px`)
+ }
+
+ resize()
+ window.addEventListener('resize', resize)
+ return () => {
+ window.removeEventListener('resize', resize)
+ }
+ }, [])
+
+ const initData = async () => {
+ await fetchCategories()
+ await fetchItems()
+ await initialActiveShopListData()
+ await fetchShopListHistory()
+ }
+
+ useEffect(() => {
+ if (user !== null) {
+ initData()
+ setInit(false)
+ }
+ }, [user])
+
+ const getUserConnected = useCallback(async () => {
+ try {
+ const res = await client.get('me')
+ const { id } = res.data.data
+ setUser(id)
+ } catch (e) {
+ console.log('Error fetching the connected user', e)
+ setInit(false)
+ history.push('/login')
+ }
+ }, [])
+
+ if (init)
+ return (
+