Předvyplnění posledně zvolené hodnoty
This commit is contained in:
parent
ec1cbf332b
commit
608dbd5e03
@ -7,6 +7,7 @@ Server je v adresáři /server, client v adresáři /client obojí lze spustit p
|
|||||||
### `yarn start`
|
### `yarn start`
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
|
- Minimálně v klientovi nefunguje správně eslint - neřve, když chybí závislosti v useEffect
|
||||||
- Popsat Food API, nginx
|
- Popsat Food API, nginx
|
||||||
- Popsat spuštění pro vývoj
|
- Popsat spuštění pro vývoj
|
||||||
- Vyndat URL na Food API do .env
|
- Vyndat URL na Food API do .env
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import React, { useContext, useEffect, useState } from 'react';
|
import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';
|
||||||
import 'bootstrap/dist/css/bootstrap.min.css';
|
import 'bootstrap/dist/css/bootstrap.min.css';
|
||||||
import { EVENT_DISCONNECT, EVENT_MESSAGE, SocketContext } from './context/socket';
|
import { EVENT_DISCONNECT, EVENT_MESSAGE, SocketContext } from './context/socket';
|
||||||
import { getData, getFood, updateChoice } from './Api';
|
import { getData, getFood, updateChoice } from './Api';
|
||||||
@ -18,6 +18,7 @@ function App() {
|
|||||||
const [food, setFood] = useState<any>();
|
const [food, setFood] = useState<any>();
|
||||||
// const [pizzy, setPizzy] = useState();
|
// const [pizzy, setPizzy] = useState();
|
||||||
const socket = useContext(SocketContext);
|
const socket = useContext(SocketContext);
|
||||||
|
const choiceRef = useRef<HTMLSelectElement>(null);
|
||||||
|
|
||||||
// Prvotní načtení aktuálního stavu
|
// Prvotní načtení aktuálního stavu
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -55,6 +56,20 @@ function App() {
|
|||||||
}
|
}
|
||||||
}, [socket]);
|
}, [socket]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!auth || !auth.login) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// TODO tohle občas náhodně nezafunguje, nutno přepsat, viz https://medium.com/@teh_builder/ref-objects-inside-useeffect-hooks-eb7c15198780
|
||||||
|
if (data?.choices && choiceRef.current) {
|
||||||
|
for (let entry of Object.entries(data.choices)) {
|
||||||
|
if (entry[1].includes(auth.login)) {
|
||||||
|
choiceRef.current.value = Object.values(Locations)[entry[0]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, [auth?.login, data?.choices, choiceRef?.current])
|
||||||
|
|
||||||
const changeChoice = async (event: React.ChangeEvent<HTMLSelectElement>) => {
|
const changeChoice = async (event: React.ChangeEvent<HTMLSelectElement>) => {
|
||||||
const index = Object.values(Locations).indexOf(event.target.value as unknown as Locations);
|
const index = Object.values(Locations).indexOf(event.target.value as unknown as Locations);
|
||||||
if (auth?.login) {
|
if (auth?.login) {
|
||||||
@ -107,7 +122,7 @@ function App() {
|
|||||||
<div className='content-wrapper'>
|
<div className='content-wrapper'>
|
||||||
<div className='content'>
|
<div className='content'>
|
||||||
<p>Jak to dnes vidíš s obědem?</p>
|
<p>Jak to dnes vidíš s obědem?</p>
|
||||||
<Form.Select onChange={changeChoice}>
|
<Form.Select ref={choiceRef} onChange={changeChoice}>
|
||||||
<option></option>
|
<option></option>
|
||||||
<option value={Locations.SLADOVNICKA}>Sladovnická</option>
|
<option value={Locations.SLADOVNICKA}>Sladovnická</option>
|
||||||
<option value={Locations.UMOTLIKU}>U Motlíků</option>
|
<option value={Locations.UMOTLIKU}>U Motlíků</option>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user