use jsx extension for react stuff

This commit is contained in:
Thomas Ruoff
2020-11-28 14:12:42 +01:00
parent abc9081da2
commit f6e08255a6
12 changed files with 33 additions and 12 deletions

50
context/appProvider.jsx Normal file
View File

@@ -0,0 +1,50 @@
import React, { useEffect, useState } from "react";
import AppContext from "./app";
const AppProvider = ({ debug = false, children }) => {
const [songs, setSongs] = useState(null);
const [openSong, setOpenSong] = useState(null);
const URL = debug ? "/api/songs?unlock=true" : "/api/songs";
useEffect(() => {
async function getSongs() {
const response = await fetch(URL);
if (!response.ok) {
setError(`HTTP Status of youtube request: ${response.status}`);
return;
}
const { songs } = await response.json();
setSongs(songs);
}
getSongs();
}, []);
const openDoor = index => {
if (!Number.isInteger(index) || !songs[index]) {
setOpenSong(null);
}
setOpenSong(songs[index]);
};
return (
<AppContext.Provider
value={{
loading: !songs,
songs,
openSong,
openSongIndex: songs && songs.indexOf(openSong),
openDoor
}}
>
{children}
</AppContext.Provider>
);
};
export default AppProvider;