moved uid to a derived store
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user