diff --git a/client/src/App.tsx b/client/src/App.tsx
index 7caae96..7e46d58 100644
--- a/client/src/App.tsx
+++ b/client/src/App.tsx
@@ -257,7 +257,8 @@ function App() {
Poslední změny:
- - Přehlednější zobrazení tabulky
+ - (Trochu) přehlednější zobrazení tabulky
+ - (Opět) možnost vybrat jen jednu variantu
Dnes je {data.date}
@@ -279,6 +280,7 @@ function App() {
+ Je možné vybrat jen jednu možnost. Výběr jiné odstraní předchozí.
{foodChoiceList && <>
Na co dobrého? (nepovinné)
diff --git a/server/src/service.ts b/server/src/service.ts
index e2968bc..7e4d1ef 100644
--- a/server/src/service.ts
+++ b/server/src/service.ts
@@ -285,6 +285,24 @@ export function removeChoice(login: string, location: Locations, foodIndex: numb
return data;
}
+/**
+ * Odstraní kompletně volbu uživatele.
+ *
+ * @param login login uživatele
+ */
+function removeChoiceIfPresent(login: string) {
+ const today = formatDate(getToday());
+ let data: ClientData = db.get(today);
+ for (const key of Object.keys(data.choices)) {
+ if (login in data.choices[key]) {
+ delete data.choices[key][login];
+ if (Object.keys(data.choices[key]).length === 0) {
+ delete data.choices[key];
+ }
+ }
+ }
+}
+
/**
* Přidá volbu uživatele.
*
@@ -295,6 +313,10 @@ export function removeChoice(login: string, location: Locations, foodIndex: numb
*/
export function addChoice(login: string, location: Locations, foodIndex?: number) {
initIfNeeded();
+ // Pokud měníme pouze lokaci, mažeme případné předchozí
+ if (foodIndex == null) {
+ removeChoiceIfPresent(login);
+ }
const today = formatDate(getToday());
let data: ClientData = db.get(today);
if (!(location in data.choices)) {