From 4238086caee26a8b03d5146d04d8ae0c7ea6d560 Mon Sep 17 00:00:00 2001 From: tree Date: Sat, 9 Apr 2022 16:46:17 +0200 Subject: [PATCH] Update --- src/lib/Avatar.svelte | 27 ++++++++++++++++----------- src/routes/lide.svelte | 17 ++++++----------- src/routes/udalosti.svelte | 18 +++++++----------- 3 files changed, 29 insertions(+), 33 deletions(-) diff --git a/src/lib/Avatar.svelte b/src/lib/Avatar.svelte index 0e91df8..4bdf5e5 100644 --- a/src/lib/Avatar.svelte +++ b/src/lib/Avatar.svelte @@ -12,21 +12,26 @@ }*/ const priority = [ 'web:svg', 'web:webp', 'web:png', 'web:jpg', 'twitter:jpg' ] - let speakerImg = null - let speakerImgAlt = null + $: photos = getPhotos(speaker) + $: speakerImg = photos[0] + $: speakerImgAlt = photos[1] - if (speaker.photos && speaker.photos.length > 0) { - for (const prio of priority) { - if (speaker.photos.includes(prio)) { - const [ ext, format ] = prio.split(':') - const fn = `${imagesRoot}/${col}/${speaker.id}-${ext}.${format}` - if (speakerImg) { - $: speakerImgAlt = fn - break + function getPhotos (sp) { + const output = [] + if (speaker.photos && speaker.photos.length > 0) { + for (const prio of priority) { + if (speaker.photos.includes(prio)) { + const [ ext, format ] = prio.split(':') + const fn = `${imagesRoot}/${col}/${speaker.id}-${ext}.${format}` + if (output[0]) { + output.push(fn) + break + } + output.push(fn) } - $: speakerImg = fn } } + return output } if (!speakerImg) { diff --git a/src/routes/lide.svelte b/src/routes/lide.svelte index af8dfc8..8f5dec0 100644 --- a/src/routes/lide.svelte +++ b/src/routes/lide.svelte @@ -12,24 +12,19 @@ import { page } from '$app/stores'; import { bundle } from '$lib/stores.js'; - let id = null - let s = null - + $: id = getId($page.url.search) $: s = $bundle ? $bundle.spec.speakers.find(s => s.id === id) : null $: events = s ? $bundle.spec.events.filter(ev => ev.speakers && ev.speakers.includes(s.id)) : [] - function loadItem () { - const searchParams = new URLSearchParams($page.url.search) - id = searchParams.get('id') - if (!$bundle.spec.speakers.find(s => s.id === id)) { + function getId (search) { + const searchParams = new URLSearchParams(search) + const cid = searchParams.get('id') + if (!$bundle.spec.speakers.find(s => s.id === cid)) { goto('/') } + return cid } - onMount(() => { - loadItem() - }) - function trackRender (trackId) { const track = $bundle.spec.tracks.find(t => t.id === trackId) return track.shortname || track.name diff --git a/src/routes/udalosti.svelte b/src/routes/udalosti.svelte index 863474b..871fd17 100644 --- a/src/routes/udalosti.svelte +++ b/src/routes/udalosti.svelte @@ -12,22 +12,18 @@ import EventTypeLabel from '$lib/EventTypeLabel.svelte'; import Avatar from '$lib/Avatar.svelte'; - let id = null - + $: id = getId($page.url.search) $: e = $bundle ? $bundle.spec.events.find(ev => ev.id === id) : null - function loadItem () { - const searchParams = new URLSearchParams($page.url.search) - id = searchParams.get('id') - if (!$bundle.spec.events.find(ev => ev.id === id)) { - goto('/program') + function getId (search) { + const searchParams = new URLSearchParams(search) + const cid = searchParams.get('id') + if (!$bundle.spec.events.find(s => s.id === cid)) { + goto('/') } + return cid } - onMount(() => { - loadItem() - }) - function speakersMap (arr) { if (!arr) return; return arr.map(sId => {