activate and disactivate playlist

This commit is contained in:
grimhilt 2023-08-01 21:19:13 +02:00
parent 0bb83325bd
commit b551df505b
2 changed files with 38 additions and 15 deletions

View File

@ -12,12 +12,28 @@ const Playlist = (item) => {
const id = window.location.href.split('/').slice(-1)[0]; const id = window.location.href.split('/').slice(-1)[0];
const [playlist, setPlaylist] = useState(null); const [playlist, setPlaylist] = useState(null);
const [showUpdate, setShowUpdate] = useState(false); const [showUpdate, setShowUpdate] = useState(false);
const [addFile, setAddFile] = useState(false);
const [files, setFiles] = useState([]);
const [duration, setDuration] = useState(0); const [duration, setDuration] = useState(0);
const [isLoading, setIsLoading] = useState(false);
const [isActive, setIsActive] = useState(false);
const toggleUpdate = () => setShowUpdate(!showUpdate); const toggleUpdate = () => setShowUpdate(!showUpdate);
const toggleActivate = () => {
setIsLoading(true);
(isActive ? API.disactivate : API.activate)(id)
.then((res) => {
if (res.status === 200) {
setIsActive(!isActive);
setNotification(false, `Playlist currently ${isActive ? 'inactive' : 'active'}`);
}
setIsLoading(false);
})
.catch((err) => {
setNotification(true, err.message);
setIsLoading(false);
});
};
const form = useForm({ const form = useForm({
initialValues: { initialValues: {
files: [], files: [],
@ -51,16 +67,6 @@ const Playlist = (item) => {
.catch((err) => { .catch((err) => {
setNotification(true, err.message); setNotification(true, err.message);
}); });
API.getFiles()
.then((res) => {
if (res.status === 200) {
setFiles(res.data);
}
})
.catch((err) => {
setNotification(true, err.message);
});
} }
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps
}, [id]); }, [id]);
@ -77,10 +83,21 @@ const Playlist = (item) => {
{parseTime(duration)} {parseTime(duration)}
</Text> </Text>
</Text> </Text>
<Group>
<Button
variant="light"
mt="sm"
color={isActive ? 'red' : 'green'}
onClick={toggleActivate}
loading={isLoading}
>
{isActive ? 'Stop' : 'Activate'}
</Button>
<Button variant="light" mt="sm" onClick={toggleUpdate}> <Button variant="light" mt="sm" onClick={toggleUpdate}>
Edit Edit
</Button> </Button>
</Group> </Group>
</Group>
<Paper p="xs" radius="sm" shadow="sm" withBorder my="md"> <Paper p="xs" radius="sm" shadow="sm" withBorder my="md">
<Content form={form} playlistId={id} /> <Content form={form} playlistId={id} />
</Paper> </Paper>

View File

@ -16,6 +16,12 @@ const API = {
updatePlaylist(playlistId, data) { updatePlaylist(playlistId, data) {
return caller().post(`/playlist/${playlistId}/update`, data); return caller().post(`/playlist/${playlistId}/update`, data);
}, },
activate(playlistId) {
return caller().post(`/playlist/${playlistId}/activate`);
},
disactivate(playlistId) {
return caller().post(`/playlist/${playlistId}/disactivate`);
},
getPlaylist(id) { getPlaylist(id) {
return caller().get(`/playlist/${id}`); return caller().get(`/playlist/${id}`);
}, },