Podpora víkendů
This commit is contained in:
parent
d59e439588
commit
ec1cbf332b
@ -93,51 +93,53 @@ function App() {
|
|||||||
<>
|
<>
|
||||||
<Header />
|
<Header />
|
||||||
<div className='wrapper'>
|
<div className='wrapper'>
|
||||||
<Alert variant={'primary'}>
|
{data.isWeekend ? <h4>Užívejte víkend :)</h4> : <>
|
||||||
Tvé zobrazované jméno je {auth.login}. Změnu můžeš provést v local storage prohlížeče.<br />
|
<Alert variant={'primary'}>
|
||||||
<small>Pro gamer move: Změň si své jméno na cizí. Můžeš pak libovolně měnit jejich volbu.</small>
|
Tvé zobrazované jméno je {auth.login}. Změnu můžeš provést v local storage prohlížeče.<br />
|
||||||
</Alert>
|
<small>Pro gamer move: Změň si své jméno na cizí. Můžeš pak libovolně měnit jejich volbu.</small>
|
||||||
<h1 className='title'>Dnes je {data.date}</h1>
|
</Alert>
|
||||||
<Row className='food-tables'>
|
<h1 className='title'>Dnes je {data.date}</h1>
|
||||||
{renderFoodTable('Sladovnická', food.sladovnicka)}
|
<Row className='food-tables'>
|
||||||
{renderFoodTable('U Motlíků', food["uMotliku:"])}
|
{renderFoodTable('Sladovnická', food.sladovnicka)}
|
||||||
{renderFoodTable('TechTower', food.techTower)}
|
{renderFoodTable('U Motlíků', food["uMotliku:"])}
|
||||||
</Row>
|
{renderFoodTable('TechTower', food.techTower)}
|
||||||
<div className='content-wrapper'>
|
</Row>
|
||||||
<div className='content'>
|
<div className='content-wrapper'>
|
||||||
<p>Jak to dnes vidíš s obědem?</p>
|
<div className='content'>
|
||||||
<Form.Select onChange={changeChoice}>
|
<p>Jak to dnes vidíš s obědem?</p>
|
||||||
<option></option>
|
<Form.Select onChange={changeChoice}>
|
||||||
<option value={Locations.SLADOVNICKA}>Sladovnická</option>
|
<option></option>
|
||||||
<option value={Locations.UMOTLIKU}>U Motlíků</option>
|
<option value={Locations.SLADOVNICKA}>Sladovnická</option>
|
||||||
<option value={Locations.TECHTOWER}>TechTower</option>
|
<option value={Locations.UMOTLIKU}>U Motlíků</option>
|
||||||
<option value={Locations.SPSE}>SPŠE</option>
|
<option value={Locations.TECHTOWER}>TechTower</option>
|
||||||
<option value={Locations.VLASTNI}>Mám vlastní</option>
|
<option value={Locations.SPSE}>SPŠE</option>
|
||||||
<option value={Locations.OBJEDNAVAM}>Budu objednávat</option>
|
<option value={Locations.VLASTNI}>Mám vlastní</option>
|
||||||
<option value={Locations.NEOBEDVAM}>Nebudu obědvat</option>
|
<option value={Locations.OBJEDNAVAM}>Budu objednávat</option>
|
||||||
</Form.Select>
|
<option value={Locations.NEOBEDVAM}>Nebudu obědvat</option>
|
||||||
<p style={{ fontSize: "12px", marginTop: "5px" }}>
|
</Form.Select>
|
||||||
Aktuálně je možné vybrat pouze jednu variantu. Vyber prázdnou položku pro odstranění.
|
<p style={{ fontSize: "12px", marginTop: "5px" }}>
|
||||||
</p>
|
Aktuálně je možné vybrat pouze jednu variantu. Vyber prázdnou položku pro odstranění.
|
||||||
{Object.keys(data.choices).length > 0 ?
|
</p>
|
||||||
<Table striped bordered hover className='results-table mt-5'>
|
{Object.keys(data.choices).length > 0 ?
|
||||||
<tbody>
|
<Table striped bordered hover className='results-table mt-5'>
|
||||||
{Object.keys(data.choices).map((key: string, index: number) =>
|
<tbody>
|
||||||
<tr key={index}>
|
{Object.keys(data.choices).map((key: string, index: number) =>
|
||||||
<td>{Object.values(Locations)[Number(key)]}</td>
|
<tr key={index}>
|
||||||
<td>
|
<td>{Object.values(Locations)[Number(key)]}</td>
|
||||||
<ul>
|
<td>
|
||||||
{data.choices[Number(key)].map((p: string, index: number) => <li key={index}>{p}</li>)}
|
<ul>
|
||||||
</ul>
|
{data.choices[Number(key)].map((p: string, index: number) => <li key={index}>{p}</li>)}
|
||||||
</td>
|
</ul>
|
||||||
</tr>
|
</td>
|
||||||
)}
|
</tr>
|
||||||
</tbody>
|
)}
|
||||||
</Table>
|
</tbody>
|
||||||
: <div className='mt-5'><i>Zatím nikdo nehlasoval...</i></div>
|
</Table>
|
||||||
}
|
: <div className='mt-5'><i>Zatím nikdo nehlasoval...</i></div>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</>}
|
||||||
{/* {!pizzaDayExists &&
|
{/* {!pizzaDayExists &&
|
||||||
<div>
|
<div>
|
||||||
<p>Pro dnešní den není aktuálně založen Pizza day.</p>
|
<p>Pro dnešní den není aktuálně založen Pizza day.</p>
|
||||||
|
@ -19,6 +19,7 @@ export interface Choices {
|
|||||||
|
|
||||||
export interface ClientData {
|
export interface ClientData {
|
||||||
date: string, // dnešní datum pro zobrazení
|
date: string, // dnešní datum pro zobrazení
|
||||||
|
isWeekend: boolean, // příznak zda je dnešní den víkend
|
||||||
choices: Choices, // seznam voleb
|
choices: Choices, // seznam voleb
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { ClientData, Locations } from "./types";
|
import { ClientData, Locations } from "./types";
|
||||||
import { db } from "./database";
|
import { db } from "./database";
|
||||||
import { getTodayString } from "./utils";
|
import { getHumanDate, getIsWeekend } from "./utils";
|
||||||
import { getDate } from "./utils";
|
import { getDate } from "./utils";
|
||||||
|
|
||||||
// /** Jedna konkrétní pizza */
|
// /** Jedna konkrétní pizza */
|
||||||
@ -33,7 +33,7 @@ import { getDate } from "./utils";
|
|||||||
|
|
||||||
/** Vrátí "prázdná" (implicitní) data, pokud ještě nikdo nehlasoval. */
|
/** Vrátí "prázdná" (implicitní) data, pokud ještě nikdo nehlasoval. */
|
||||||
function getEmptyData(): ClientData {
|
function getEmptyData(): ClientData {
|
||||||
return { date: getTodayString(), choices: {} };
|
return { date: getHumanDate(new Date()), isWeekend: getIsWeekend(new Date()), choices: {} };
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -4,6 +4,7 @@ export interface Choices {
|
|||||||
|
|
||||||
export interface ClientData {
|
export interface ClientData {
|
||||||
date: string, // dnešní datum pro zobrazení
|
date: string, // dnešní datum pro zobrazení
|
||||||
|
isWeekend: boolean, // příznak, zda je dnes víkend
|
||||||
choices: Choices, // seznam voleb
|
choices: Choices, // seznam voleb
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,12 +6,17 @@ export function getDate() {
|
|||||||
return `${currentYear}-${currentMonth}-${currentDay}`;
|
return `${currentYear}-${currentMonth}-${currentDay}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Vrátí human-readable reprezentaci dnešního data pro zobrazení. */
|
/** Vrátí human-readable reprezentaci předaného data pro zobrazení. */
|
||||||
export function getTodayString() {
|
export function getHumanDate(date: Date) {
|
||||||
const date = new Date();
|
|
||||||
let currentDay = String(date.getDate()).padStart(2, '0');
|
let currentDay = String(date.getDate()).padStart(2, '0');
|
||||||
let currentMonth = String(date.getMonth() + 1).padStart(2, "0");
|
let currentMonth = String(date.getMonth() + 1).padStart(2, "0");
|
||||||
let currentYear = date.getFullYear();
|
let currentYear = date.getFullYear();
|
||||||
let currentDayOfWeek = date.toLocaleDateString("CZ-cs", { weekday: 'long' });
|
let currentDayOfWeek = date.toLocaleDateString("CZ-cs", { weekday: 'long' });
|
||||||
return `${currentDay}.${currentMonth}.${currentYear} (${currentDayOfWeek})`;
|
return `${currentDay}.${currentMonth}.${currentYear} (${currentDayOfWeek})`;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Vrátí true, pokud je předané datum o víkendu. */
|
||||||
|
export function getIsWeekend(date: Date) {
|
||||||
|
const dayName = date.toLocaleDateString("CZ-cs", { weekday: 'long' }).toLowerCase()
|
||||||
|
return dayName === 'sobota' || dayName === 'neděle'
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user