From 6bc76d1340248fa9f3dbaf44a3e978135d8402f6 Mon Sep 17 00:00:00 2001 From: zevav Date: Fri, 2 Oct 2020 03:08:57 +0200 Subject: [PATCH] removed a lot of workarounds and experiments --- modulearn/src/App.svelte | 20 ++++++++------------ modulearn/src/Module.svelte | 32 ++++++++++++++------------------ 2 files changed, 22 insertions(+), 30 deletions(-) diff --git a/modulearn/src/App.svelte b/modulearn/src/App.svelte index f93f77f..1b7fab7 100644 --- a/modulearn/src/App.svelte +++ b/modulearn/src/App.svelte @@ -7,7 +7,7 @@ import { getModuleIndex, getModule } from './utils' import DATA from './data' - let video; let interval; let timeout; let firstUpdate; + let video; let interval; let timeout; // TODO: load data from JSON or an API // TODO: validate the data: overlaps? gaps? (gaps should be ok). @@ -16,16 +16,12 @@ // TODO: (depends on above) enable search const positionUpdater = () => { - if (firstUpdate) { - firstUpdate = false - return - } interval = setInterval(() => { - const newModule = getModule($position) const pos = video.position() + const newModule = getModule(pos) + if (!pos) return console.log('no pos') position.update(() => pos) - if (!newModule - || newModule && !$currentModule + if (newModule && !$currentModule || newModule && $currentModule && newModule.name !== $currentModule.name) { currentModule.update(() => newModule) } }, 100) @@ -39,8 +35,7 @@ currentModule.update(() => module) position.update(() => module.start) video.jumpTo(module.start) - firstUpdate = true - timeout = setTimeout(positionUpdater, 500) + positionUpdater() } } @@ -56,12 +51,12 @@ } else if ([32, "Space"].includes(code)) { video.toggle() } else if (["l", "ArrowRight"].includes(key)) { - video.jumpTo($position + 5) clearInterval(interval) + video.jumpTo($position + 5) positionUpdater() } else if (["h", "ArrowLeft"].includes(key)) { - video.jumpTo($position - 5) clearInterval(interval) + video.jumpTo($position - 5) positionUpdater() } } @@ -86,6 +81,7 @@ } } + diff --git a/modulearn/src/Module.svelte b/modulearn/src/Module.svelte index 11dce3f..53c0771 100644 --- a/modulearn/src/Module.svelte +++ b/modulearn/src/Module.svelte @@ -2,24 +2,29 @@ import { createEventDispatcher } from 'svelte'; import { currentModule, position } from "./stores" - const dispatcher = createEventDispatcher() + const dispatch = createEventDispatcher() export let module const duration = module.end - module.start const getProgress = pos => (pos - module.start) / duration * 100 - let styl; let selected; let progress; + let selected; let progress; let klass; + $: selected = $currentModule && $currentModule.name === module.name $: if (selected) { - progress = getProgress($position) - } + progress = getProgress($position) + klass = "current" + } else { + progress = null; + klass = "" + } // TODO: add checkboxes for 'want to watch' // TODO: gray out watched modules -
dispatcher("selectModule", { module })} > - I want to {module.outcome}. - {#if selected} +
dispatch("selectModule", { module })} > + I want to {module.outcome}. + {#if progress} Hi {/if}
@@ -28,21 +33,12 @@