diff --git a/client/src/App.css b/client/src/App.css index 954d2ef..d31b027 100644 --- a/client/src/App.css +++ b/client/src/App.css @@ -38,6 +38,19 @@ } } +.loader { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.loader>.loader-icon { + font-size: 64px; +} + .wrapper { padding: 20px; } diff --git a/client/src/App.tsx b/client/src/App.tsx index da6bdd6..66012b3 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -16,6 +16,8 @@ import { faCircleCheck, faTrashCan } from '@fortawesome/free-regular-svg-icons'; import { useBank } from './context/bank'; import { ClientData, Restaurants, Food, Order, Locations, PizzaOrder, PizzaDayState, FoodChoices, Menu } from './types'; import Footer from './components/Footer'; +import { faChainBroken, faChevronLeft, faChevronRight, faGear, faSatelliteDish, faSearch } from '@fortawesome/free-solid-svg-icons'; +import Loader from './components/Loader'; const EVENT_CONNECT = "connect" @@ -49,6 +51,7 @@ function App() { const choiceRef = useRef(null); const foodChoiceRef = useRef(null); const poznamkaRef = useRef(null); + const [failure, setFailure] = useState(false); // Načtení dat po přihlášení useEffect(() => { @@ -57,9 +60,13 @@ function App() { } getData().then(data => { setData(data); + }).catch(e => { + setFailure(true); }) getFood().then(food => { setFood(food); + }).catch(e => { + setFailure(true); }) }, [auth, auth?.login]); @@ -278,8 +285,28 @@ function App() { return ; } - if (!data || !isConnected || !food) { - return
Načítám data...
+ if (!isConnected) { + return + } + + if (failure) { + return + } + + if (!data || !food) { + return } const noOrders = data?.pizzaDay?.orders?.length === 0; @@ -292,14 +319,7 @@ function App() { Poslední změny:
    -
  • Oprava čtení env při výběru úložiště dat
  • -
  • Přepojení na Redis (jen v produkčním nasazení)
  • -
  • Oprava časové zóny v "Poslední aktualizace"
  • -
  • Oprava přesměrování při přihlášení přes Authelia
  • -
  • Zobrazení jména uživatele místo loginu při přihlášení přes Authelia
  • -
  • Funkční odhlášení přes Authelia
  • -
  • Oprava stahování pizz z Pizza Chefie
  • -
  • Pokročilá AI detekce zavřených podniků
  • +
  • Lépe vypadající a více vypovídající načítací obrazovky (ztráta spojení, chyba načtení apod.)

Dnes je {data.date}

diff --git a/client/src/components/Loader.tsx b/client/src/components/Loader.tsx new file mode 100644 index 0000000..608b12c --- /dev/null +++ b/client/src/components/Loader.tsx @@ -0,0 +1,19 @@ +import { IconDefinition } from '@fortawesome/free-solid-svg-icons'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' + +type Props = { + title?: String, + icon: IconDefinition, + description: String, + animation?: String, +} + +function Loader(props: Props) { + return
+

{props.title || 'Prosím čekejte...'}

+ +

{props.description}

+
+} + +export default Loader;