From 2b76496e2be971d7d184dd5bd823f817aa8be3c4 Mon Sep 17 00:00:00 2001 From: tree Date: Tue, 12 Apr 2022 10:54:48 +0200 Subject: [PATCH] update --- src/lib/Event.svelte | 26 +++----------------------- src/lib/events.js | 23 ++++++++++++++++++++++- src/routes/program.svelte | 14 ++++++++------ src/routes/udalosti.svelte | 12 ++++++++++++ 4 files changed, 45 insertions(+), 30 deletions(-) diff --git a/src/lib/Event.svelte b/src/lib/Event.svelte index 5089205..9607f37 100644 --- a/src/lib/Event.svelte +++ b/src/lib/Event.svelte @@ -5,7 +5,7 @@ import Tooltip from "$lib/Tooltip.svelte"; import EventTypeLabel from "$lib/EventTypeLabel.svelte"; import { bundle, userData } from "$lib/stores.js"; - import calcDuration from "$lib/events.js"; + import { calcDuration, addFavorite } from "$lib/events.js"; const e = event; $: duration = calcDuration(e, $bundle); @@ -25,24 +25,6 @@ function getChildrens(e) { return $bundle.spec.events.filter((i) => i.parent === e.id); } - - function handleFavorite(el) { - const t = el.target.getAttribute("utxo-event-id"); - userData.update((data) => { - const fe = data.favoriteEvents; - let output = null; - if (fe.includes(t)) { - output = Object.assign($userData, { - favoriteEvents: fe.filter((f) => f !== t), - }); - } else { - fe.push(t); - output = Object.assign($userData, { favoriteEvents: fe }); - } - //localStorage.setItem('userData', JSON.stringify(output)) - return output; - }); - }
addFavorite(e.id, userData)} />
@@ -96,8 +77,7 @@ class="fa-star {$userData.favoriteEvents.includes(pe.id) ? 'fa-solid' : 'fa-regular'} cursor-pointer" - utxo-event-id={pe.id} - on:click={handleFavorite} + on:click={() => addFavorite(e.id, userData)} />
diff --git a/src/lib/events.js b/src/lib/events.js index 52fa974..2dda9b5 100644 --- a/src/lib/events.js +++ b/src/lib/events.js @@ -1,8 +1,9 @@ -export default function calcDuration(e, bundle) { +export function calcDuration(e, bundle) { if (!bundle) { return 0 } + console.log(e.duration) if (e.duration) { return e.duration } @@ -13,3 +14,23 @@ export default function calcDuration(e, bundle) { return total } } + +export function addFavorite(eventId, userData) { + userData.update((data) => { + const fe = data.favoriteEvents; + let output = null; + if (fe.includes(eventId)) { + output = Object.assign({}, data, { + favoriteEvents: fe.filter((f) => f !== eventId), + }); + } else { + fe.push(eventId); + output = Object.assign(data, { favoriteEvents: fe }); + } + //localStorage.setItem('userData', JSON.stringify(output)) + return output; + }) +} + +export default function () {} + diff --git a/src/routes/program.svelte b/src/routes/program.svelte index af151aa..2f65161 100644 --- a/src/routes/program.svelte +++ b/src/routes/program.svelte @@ -5,17 +5,19 @@ diff --git a/src/routes/udalosti.svelte b/src/routes/udalosti.svelte index b3f597d..3c88a07 100644 --- a/src/routes/udalosti.svelte +++ b/src/routes/udalosti.svelte @@ -7,6 +7,7 @@ import { goto } from "$app/navigation"; import { onMount } from "svelte"; import { bundle, userData } from "$lib/stores.js"; + import { addFavorite } from "$lib/events.js"; import EventTypeLabel from "$lib/EventTypeLabel.svelte"; import Avatar from "$lib/Avatar.svelte"; import Event from "$lib/Event.svelte"; @@ -62,6 +63,17 @@
{trackRender(e.track)}
{duration}m
+
+
addFavorite(e.id, userData)}> + + {#if $userData.favoriteEvents.includes(e.id)} Tvoje oblíbená + událost{/if} +
+

{e.name}

{#if e.speakers && e.speakers.length > 0}