Neorientovat se dle datumu klienta
This commit is contained in:
parent
8ec87ec200
commit
3a357f077f
@ -172,12 +172,6 @@ function App() {
|
|||||||
}
|
}
|
||||||
}, [handleKeyDown]);
|
}, [handleKeyDown]);
|
||||||
|
|
||||||
// Index v týdnu dnešního dne (0-6)
|
|
||||||
// TODO tohle má posílat server, klient je nespolehlivý
|
|
||||||
const currentDayIndex = useMemo(() => {
|
|
||||||
return (((new Date().getDay() - 1) % 7) + 7) % 7;
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
const doAddChoice = async (event: React.ChangeEvent<HTMLSelectElement>) => {
|
const doAddChoice = async (event: React.ChangeEvent<HTMLSelectElement>) => {
|
||||||
const index = Object.keys(Locations).indexOf(event.target.value as unknown as Locations);
|
const index = Object.keys(Locations).indexOf(event.target.value as unknown as Locations);
|
||||||
if (auth?.login) {
|
if (auth?.login) {
|
||||||
@ -381,7 +375,7 @@ function App() {
|
|||||||
{dayIndex != null &&
|
{dayIndex != null &&
|
||||||
<div className='day-navigator'>
|
<div className='day-navigator'>
|
||||||
{dayIndex > 0 && <FontAwesomeIcon title="Předchozí den" icon={faChevronLeft} style={{ cursor: "pointer" }} onClick={() => handleDayChange(dayIndex - 1)} />}
|
{dayIndex > 0 && <FontAwesomeIcon title="Předchozí den" icon={faChevronLeft} style={{ cursor: "pointer" }} onClick={() => handleDayChange(dayIndex - 1)} />}
|
||||||
<h1 className='title'>{`${dayIndex === currentDayIndex ? "(Dnes) " : ""}${data.date}`}</h1>
|
<h1 className='title'>{`${dayIndex === data.todayWeekIndex ? "(Dnes) " : ""}${data.date}`}</h1>
|
||||||
{dayIndex < 4 && <FontAwesomeIcon title="Následující den" icon={faChevronRight} style={{ cursor: "pointer" }} onClick={() => handleDayChange(dayIndex + 1)} />}
|
{dayIndex < 4 && <FontAwesomeIcon title="Následující den" icon={faChevronRight} style={{ cursor: "pointer" }} onClick={() => handleDayChange(dayIndex + 1)} />}
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
@ -392,8 +386,8 @@ function App() {
|
|||||||
</Row>
|
</Row>
|
||||||
<div className='content-wrapper'>
|
<div className='content-wrapper'>
|
||||||
<div className='content'>
|
<div className='content'>
|
||||||
{dayIndex == null || dayIndex >= currentDayIndex && <>
|
{dayIndex == null || dayIndex >= data.todayWeekIndex && <>
|
||||||
<p>{`Jak to ${dayIndex == null || dayIndex === currentDayIndex ? 'dnes' : 'tento den'} vidíš s obědem?`}</p>
|
<p>{`Jak to ${dayIndex == null || dayIndex === data.todayWeekIndex ? 'dnes' : 'tento den'} vidíš s obědem?`}</p>
|
||||||
<Form.Select ref={choiceRef} onChange={doAddChoice}>
|
<Form.Select ref={choiceRef} onChange={doAddChoice}>
|
||||||
<option></option>
|
<option></option>
|
||||||
{Object.entries(Locations)
|
{Object.entries(Locations)
|
||||||
@ -482,7 +476,7 @@ function App() {
|
|||||||
: <div className='mt-5'><i>Zatím nikdo nehlasoval...</i></div>
|
: <div className='mt-5'><i>Zatím nikdo nehlasoval...</i></div>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
{dayIndex === currentDayIndex &&
|
{dayIndex === data.todayWeekIndex &&
|
||||||
<div className='mt-5'>
|
<div className='mt-5'>
|
||||||
{!data.pizzaDay &&
|
{!data.pizzaDay &&
|
||||||
<div style={{ textAlign: 'center' }}>
|
<div style={{ textAlign: 'center' }}>
|
||||||
|
@ -32,7 +32,7 @@ export const getDateForWeekIndex = (index: number) => {
|
|||||||
/** Vrátí "prázdná" (implicitní) data pro předaný den. */
|
/** Vrátí "prázdná" (implicitní) data pro předaný den. */
|
||||||
function getEmptyData(date?: Date): ClientData {
|
function getEmptyData(date?: Date): ClientData {
|
||||||
const usedDate = date || getToday();
|
const usedDate = date || getToday();
|
||||||
return { date: getHumanDate(usedDate), isWeekend: getIsWeekend(usedDate), weekIndex: getDayOfWeekIndex(usedDate), choices: {} };
|
return { date: getHumanDate(usedDate), isWeekend: getIsWeekend(usedDate), weekIndex: getDayOfWeekIndex(usedDate), todayWeekIndex: getDayOfWeekIndex(getToday()), choices: {} };
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -68,9 +68,10 @@ interface PizzaDay {
|
|||||||
|
|
||||||
/** Veškerá data pro zobrazení na klientovi */
|
/** Veškerá data pro zobrazení na klientovi */
|
||||||
export interface ClientData {
|
export interface ClientData {
|
||||||
date: string, // dnešní datum pro zobrazení
|
date: string, // datum vybraného dne pro zobrazení
|
||||||
isWeekend: boolean, // příznak, zda je dnes víkend
|
isWeekend: boolean, // příznak, zda je zvolené datum víkend
|
||||||
weekIndex: number, // index aktuálního dne v týdnu (0-6)
|
weekIndex: number, // index zvoleného dne v týdnu (0-6)
|
||||||
|
todayWeekIndex: number, // index dnešního dne v týdnu (0-6)
|
||||||
choices: Choices, // seznam voleb
|
choices: Choices, // seznam voleb
|
||||||
menus?: { [restaurant in Restaurants]?: Menu }, // menu jednotlivých restaurací
|
menus?: { [restaurant in Restaurants]?: Menu }, // menu jednotlivých restaurací
|
||||||
pizzaDay?: PizzaDay, // pizza day pro dnešní den, pokud existuje
|
pizzaDay?: PizzaDay, // pizza day pro dnešní den, pokud existuje
|
||||||
|
Loading…
x
Reference in New Issue
Block a user