Výběr obědu kliknutím

Oprava možnosti zadat klikáním více podniků současně
This commit is contained in:
Martin Berka 2025-02-02 22:38:15 +01:00
parent 52e78d4ea5
commit 50ce471623

View File

@ -268,14 +268,19 @@ export async function removeChoice(login: string, trusted: boolean, locationKey:
}
/**
* Odstraní kompletně volbu uživatele.
* Odstraní kompletně volbu uživatele, vyjma ignoredLocationKey (pokud byla předána a existuje).
*
* @param login login uživatele
* @param date datum, ke kterému se volby vztahují
* @param ignoredLocationKey volba, která nebude odstraněna, pokud existuje
*/
async function removeChoiceIfPresent(login: string, date: string) {
async function removeChoiceIfPresent(login: string, date: string, ignoredLocationKey?: LocationKey) {
let data: DayData = await storage.getData(date);
for (const key of Object.keys(data.choices)) {
const locationKey = key as LocationKey;
if (ignoredLocationKey != null && ignoredLocationKey == locationKey) {
continue;
}
if (data.choices[locationKey] && login in data.choices[locationKey]) {
delete data.choices[locationKey][login];
if (Object.keys(data.choices[locationKey]).length === 0) {
@ -329,6 +334,9 @@ export async function addChoice(login: string, trusted: boolean, locationKey: Lo
// Pokud měníme pouze lokaci, mažeme případné předchozí
if (foodIndex == null) {
data = await removeChoiceIfPresent(login, selectedDate);
} else {
// Mažeme případné ostatní volby (měla by být maximálně jedna)
removeChoiceIfPresent(login, selectedDate, locationKey);
}
// TODO vytáhnout inicializaci "prázdné struktury" do vlastní funkce
if (!(data.choices[locationKey])) {