diff --git a/frontend/src/Call/components/PlaylistBuilder.js b/frontend/src/Call/components/PlaylistBuilder.js index bdccc9d..4c0b411 100644 --- a/frontend/src/Call/components/PlaylistBuilder.js +++ b/frontend/src/Call/components/PlaylistBuilder.js @@ -1,4 +1,5 @@ import { useSelector, useDispatch } from 'react-redux' +import { useParams } from 'react-router-dom'; import React, { useState } from "react"; import { Header, @@ -9,13 +10,45 @@ import { Statistic, Icon, Menu, - Tab + Tab, + Table, + Modal, + Button, + Image, + Form } from "semantic-ui-react"; +import { useAddNewEventMutation, useGetTalkgroupsQuery } from '../../features/api/apiSlice' function PlaylistBuilder(props) { - + const { shortName } = useParams(); + const { data: talkgroupsData, isSuccess: isTalkgroupsSuccess } = useGetTalkgroupsQuery(shortName); + const [addNewEvent, { isLoading }] = useAddNewEventMutation() const { loading: callsLoading, data: callsData } = useSelector((state) => state.calls); const [playlist, setPlaylist] = useState([]); + const [open, setOpen] = React.useState(false); + const [title, setTitle] = useState("") + const [description, setDescription] = useState("") + const handleTitleChange = (e, { name, value }) => setTitle(value); + const handleDescriptionChange = (e, { name, value }) => setDescription(value); + + + const compareCalls = (a, b) => { + const aTimestamp = new Date(a.time).getTime() + const bTimestamp = new Date(b.time).getTime() + if (aTimestamp > bTimestamp) { + return -1 + } else { + return 1 + } + } + const addCall = (call) => { + const found = playlist.find(c => c._id == call._id); + if (!found) { + playlist.push(call); + setPlaylist([...playlist.sort(compareCalls)]) + } + + } const onDragOver = (event) => { // It also receives a DragEvent. @@ -32,30 +65,109 @@ function PlaylistBuilder(props) { event.preventDefault(); } + const onDrop = (event) => { // Here, we will: // - update the rendered list // - and reset the DnD state var callId = event.dataTransfer.getData("call-id"); console.log("Dropping: " + callId); - console.log("Found: " + callsData.entities[callId].freq); - setPlaylist([...playlist, callId]); + addCall(callsData.entities[callId]) } let listItems = ""; - listItems = playlist.map((callId, index) => { - const call = callsData.entities[callId]; - return(