moved uid to a derived store

This commit is contained in:
2020-10-04 16:41:18 +02:00
parent b0c7aa402b
commit f9ec1419ab
4 changed files with 10 additions and 9 deletions

View File

@@ -21,3 +21,4 @@
doesn't advance doesn't advance
- [ ] bug: when you go backwards on the YouTube timeline, it doesn't update the selected module - [ ] bug: when you go backwards on the YouTube timeline, it doesn't update the selected module
(forwards is fine) (forwards is fine)
- [ ] show the module name in a header

View File

@@ -3,13 +3,11 @@
import Modules from './Modules.svelte' import Modules from './Modules.svelte'
import YouTube from './YouTube.svelte' import YouTube from './YouTube.svelte'
import { position, currentModule } from './stores' import { position, currentModule, uid } from './stores'
import { getModule } from './utils' import { getModule } from './utils'
import { modules } from './data' import { modules } from './data'
let video; let interval; let timeout; let uid = modules[0].uid; let video; let interval; let timeout;
$: if ($currentModule) uid = $currentModule.uid
const positionUpdater = () => { const positionUpdater = () => {
interval = setInterval(() => { interval = setInterval(() => {
@@ -20,7 +18,6 @@
if ((newModule && !$currentModule) || (newModule && $currentModule && newModule.id !== if ((newModule && !$currentModule) || (newModule && $currentModule && newModule.id !==
$currentModule.id)) { $currentModule.id)) {
currentModule.update(() => newModule) currentModule.update(() => newModule)
uid = newModule.uid
} }
}, 100) }, 100)
} }
@@ -111,8 +108,8 @@
<svelte:window on:keydown={handleKeyDown} /> <svelte:window on:keydown={handleKeyDown} />
<main> <main>
{#key uid} {#key $uid}
<YouTube bind:this={video} videoId={uid} /> <YouTube bind:this={video} videoId={$uid} />
{/key} {/key}
<Modules <Modules
on:repositionInModule={onRepositionInModule} on:repositionInModule={onRepositionInModule}

View File

@@ -1,4 +1,5 @@
import { writable } from 'svelte/store' import { writable, derived } from 'svelte/store'
export const currentModule = writable(null) export const currentModule = writable(null)
export const position = writable(0) export const position = writable(0)
export const uid = derived(currentModule, $currentModule => $currentModule && $currentModule.uid)

View File

@@ -1,8 +1,10 @@
import { modules } from './data' import { modules } from './data'
import { uid } from './stores'
import { get } from 'svelte/store';
export const getModule = (position, currentModule) => { export const getModule = (position, currentModule) => {
if (!currentModule) return modules[0] if (!currentModule) return modules[0]
if (position < currentModule.end) { if (position < currentModule.end && currentModule.uid != get(uid).value) {
return currentModule return currentModule
} }