Možnost přidat k objednávce poznámku
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';
|
||||
import 'bootstrap/dist/css/bootstrap.min.css';
|
||||
import { EVENT_DISCONNECT, EVENT_MESSAGE, SocketContext } from './context/socket';
|
||||
import { addPizza, createPizzaDay, deletePizzaDay, finishDelivery, finishOrder, getData, getFood, getPizzy, getQrUrl, lockPizzaDay, removePizza, unlockPizzaDay, updateChoice } from './Api';
|
||||
import { addPizza, createPizzaDay, deletePizzaDay, finishDelivery, finishOrder, getData, getFood, getPizzy, getQrUrl, lockPizzaDay, removePizza, unlockPizzaDay, updateChoice, updateNote } from './Api';
|
||||
import { useAuth } from './context/auth';
|
||||
import Login from './Login';
|
||||
import { Locations, ClientData, Pizza, PizzaOrder, State, Order } from './Types';
|
||||
@@ -29,6 +29,7 @@ function App() {
|
||||
const [myOrder, setMyOrder] = useState<Order>();
|
||||
const socket = useContext(SocketContext);
|
||||
const choiceRef = useRef<HTMLSelectElement>(null);
|
||||
const poznamkaRef = useRef<HTMLInputElement>(null);
|
||||
|
||||
// Prvotní načtení aktuálního stavu
|
||||
useEffect(() => {
|
||||
@@ -83,9 +84,7 @@ function App() {
|
||||
useEffect(() => {
|
||||
if (data?.pizzaDay?.orders) {
|
||||
const myOrder = data.pizzaDay.orders.find(o => o.customer === auth?.login);
|
||||
if (myOrder) {
|
||||
setMyOrder(myOrder);
|
||||
}
|
||||
setMyOrder(myOrder);
|
||||
}
|
||||
}, [data?.pizzaDay?.orders])
|
||||
|
||||
@@ -131,9 +130,19 @@ function App() {
|
||||
}
|
||||
}
|
||||
|
||||
const handlePizzaDelete = (pizzaOrder: PizzaOrder) => {
|
||||
const handlePizzaDelete = async (pizzaOrder: PizzaOrder) => {
|
||||
if (auth?.login) {
|
||||
removePizza(auth?.login, pizzaOrder);
|
||||
await removePizza(auth?.login, pizzaOrder);
|
||||
}
|
||||
}
|
||||
|
||||
const handlePoznamkaChange = async () => {
|
||||
if (auth?.login) {
|
||||
if (poznamkaRef.current?.value && poznamkaRef.current.value.length > 100) {
|
||||
alert("Poznámka může mít maximálně 100 znaků");
|
||||
return;
|
||||
}
|
||||
updateNote(auth.login, poznamkaRef.current?.value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -198,6 +207,7 @@ function App() {
|
||||
<ul>
|
||||
<li>Nová žárovka zatím funguje</li>
|
||||
<li>Funkční generování a zobrazení QR kódů pro Pizza day</li>
|
||||
<li>Možnost zadat k Pizza day objednávce poznámku</li>
|
||||
</ul>
|
||||
</Alert>
|
||||
<h1 className='title'>Dnes je {data.date}</h1>
|
||||
@@ -260,7 +270,10 @@ function App() {
|
||||
{
|
||||
data.pizzaDay.state === State.CREATED &&
|
||||
<div>
|
||||
<p>Pizza Day je založen a spravován uživatelem {data.pizzaDay.creator}.<br />Můžete upravovat své objednávky.</p>
|
||||
<p>
|
||||
Pizza Day je založen a spravován uživatelem {data.pizzaDay.creator}.<br />
|
||||
Můžete upravovat své objednávky.
|
||||
</p>
|
||||
{
|
||||
data.pizzaDay.creator === auth.login &&
|
||||
<>
|
||||
@@ -275,18 +288,22 @@ function App() {
|
||||
</div>
|
||||
}
|
||||
{
|
||||
data.pizzaDay.state === State.LOCKED && data.pizzaDay.creator === auth.login &&
|
||||
data.pizzaDay.state === State.LOCKED &&
|
||||
<div>
|
||||
<p>Objednávky jsou uzamčeny uživatelem {data.pizzaDay.creator}</p>
|
||||
<Button className='danger mb-3' title="Umožní znovu editovat objednávky." onClick={async () => {
|
||||
await unlockPizzaDay(auth.login);
|
||||
}}>Odemknout</Button>
|
||||
{/* <Button className='danger mb-3' style={{ marginLeft: '20px' }} onClick={async () => {
|
||||
{data.pizzaDay.creator === auth.login &&
|
||||
<>
|
||||
<Button className='danger mb-3' title="Umožní znovu editovat objednávky." onClick={async () => {
|
||||
await unlockPizzaDay(auth.login);
|
||||
}}>Odemknout</Button>
|
||||
{/* <Button className='danger mb-3' style={{ marginLeft: '20px' }} onClick={async () => {
|
||||
await addToCart();
|
||||
}}>Přidat vše do košíku</Button> */}
|
||||
<Button className='danger mb-3' style={{ marginLeft: '20px' }} title={noOrders ? "Nelze objednat - neexistuje žádná objednávka" : "Použij po objednání. Objednávky zůstanou zamčeny."} disabled={noOrders} onClick={async () => {
|
||||
await finishOrder(auth.login);
|
||||
}}>Objednáno</Button>
|
||||
<Button className='danger mb-3' style={{ marginLeft: '20px' }} title={noOrders ? "Nelze objednat - neexistuje žádná objednávka" : "Použij po objednání. Objednávky zůstanou zamčeny."} disabled={noOrders} onClick={async () => {
|
||||
await finishOrder(auth.login);
|
||||
}}>Objednáno</Button>
|
||||
</>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
{
|
||||
@@ -312,13 +329,27 @@ function App() {
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<SelectSearch
|
||||
search={true}
|
||||
options={pizzaSuggestions}
|
||||
placeholder='Vyhledat pizzu...'
|
||||
onChange={handlePizzaChange}
|
||||
disabled={data.pizzaDay.state !== State.CREATED}
|
||||
/>
|
||||
{data.pizzaDay.state === State.CREATED &&
|
||||
<div style={{ textAlign: 'center' }}>
|
||||
<SelectSearch
|
||||
search={true}
|
||||
options={pizzaSuggestions}
|
||||
placeholder='Vyhledat pizzu...'
|
||||
onChange={handlePizzaChange}
|
||||
/>
|
||||
Poznámka: <input ref={poznamkaRef} className='mt-3' type="text" onKeyDown={event => {
|
||||
if (event.key === 'Enter') {
|
||||
handlePoznamkaChange();
|
||||
}
|
||||
}} />
|
||||
<Button
|
||||
style={{ marginLeft: '20px' }}
|
||||
disabled={!myOrder?.pizzaList?.length}
|
||||
onClick={handlePoznamkaChange}>
|
||||
Uložit
|
||||
</Button>
|
||||
</div>
|
||||
}
|
||||
<PizzaOrderList state={data.pizzaDay.state} orders={data.pizzaDay.orders} onDelete={handlePizzaDelete} />
|
||||
{
|
||||
data.pizzaDay.state === State.DELIVERED && myOrder?.hasQr &&
|
||||
|
||||
Reference in New Issue
Block a user