moved uid to a derived store
This commit is contained in:
@@ -21,3 +21,4 @@
|
||||
doesn't advance
|
||||
- [ ] bug: when you go backwards on the YouTube timeline, it doesn't update the selected module
|
||||
(forwards is fine)
|
||||
- [ ] show the module name in a header
|
||||
|
||||
@@ -3,13 +3,11 @@
|
||||
|
||||
import Modules from './Modules.svelte'
|
||||
import YouTube from './YouTube.svelte'
|
||||
import { position, currentModule } from './stores'
|
||||
import { position, currentModule, uid } from './stores'
|
||||
import { getModule } from './utils'
|
||||
import { modules } from './data'
|
||||
|
||||
let video; let interval; let timeout; let uid = modules[0].uid;
|
||||
|
||||
$: if ($currentModule) uid = $currentModule.uid
|
||||
let video; let interval; let timeout;
|
||||
|
||||
const positionUpdater = () => {
|
||||
interval = setInterval(() => {
|
||||
@@ -20,7 +18,6 @@
|
||||
if ((newModule && !$currentModule) || (newModule && $currentModule && newModule.id !==
|
||||
$currentModule.id)) {
|
||||
currentModule.update(() => newModule)
|
||||
uid = newModule.uid
|
||||
}
|
||||
}, 100)
|
||||
}
|
||||
@@ -111,8 +108,8 @@
|
||||
<svelte:window on:keydown={handleKeyDown} />
|
||||
|
||||
<main>
|
||||
{#key uid}
|
||||
<YouTube bind:this={video} videoId={uid} />
|
||||
{#key $uid}
|
||||
<YouTube bind:this={video} videoId={$uid} />
|
||||
{/key}
|
||||
<Modules
|
||||
on:repositionInModule={onRepositionInModule}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { writable } from 'svelte/store'
|
||||
import { writable, derived } from 'svelte/store'
|
||||
|
||||
export const currentModule = writable(null)
|
||||
export const position = writable(0)
|
||||
export const uid = derived(currentModule, $currentModule => $currentModule && $currentModule.uid)
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import { modules } from './data'
|
||||
import { uid } from './stores'
|
||||
import { get } from 'svelte/store';
|
||||
|
||||
export const getModule = (position, currentModule) => {
|
||||
if (!currentModule) return modules[0]
|
||||
if (position < currentModule.end) {
|
||||
if (position < currentModule.end && currentModule.uid != get(uid).value) {
|
||||
return currentModule
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user