28 lines
631 B
JavaScript
28 lines
631 B
JavaScript
|
import { writable } from 'svelte/store';
|
||
|
|
||
|
function createVideosStore() {
|
||
|
const { subscribe, set, update } = writable({videos: [], idx_videos: {}, loading: true});
|
||
|
|
||
|
return {
|
||
|
subscribe,
|
||
|
update: async (res_videos, cb=null) => {
|
||
|
if (res_videos.status === 200) {
|
||
|
const videos = await res_videos.json();
|
||
|
const idx_videos = {};
|
||
|
|
||
|
for (const v of videos) {
|
||
|
idx_videos[v.id] = v;
|
||
|
}
|
||
|
|
||
|
update((t) => (Object.assign(t, {videos, idx_videos, loading: false})));
|
||
|
|
||
|
if (cb) {
|
||
|
cb(videos);
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
};
|
||
|
}
|
||
|
|
||
|
export const videos = createVideosStore();
|