import Heading from '../components/Heading'; import { useState, useEffect } from 'preact/hooks'; import useSWR from 'swr'; import Button from '../components/Button'; import axios from 'axios'; export default function Export() { const { data: config } = useSWR('config'); const [camera, setCamera] = useState('select'); const [playback, setPlayback] = useState('select'); const [message, setMessage] = useState({ text: '', error: false }); const [startDate, setStartDate] = useState('input'); const [startTime, setStartTime] = useState('input'); const [endDate, setEndDate] = useState('input'); const [endTime, setEndTime] = useState('input'); useEffect(() => { const currentDate = new Date(); currentDate.setHours(0, 0, 0, 0); const offsetMs = currentDate.getTimezoneOffset() * 60 * 1000; const localISOTime = (new Date(currentDate.getTime() - offsetMs)).toISOString().slice(0,16); setStartDate(localISOTime); setStartTime("00:00"); setEndDate(localISOTime); setEndTime("23:59"); }, []); const onHandleExport = () => { if (camera == 'select') { setMessage({ text: 'A camera needs to be selected.', error: true }); return; } if (playback == 'select') { setMessage({ text: 'A playback factor needs to be selected.', error: true }); return; } if (!startDate || !startTime || !endDate || !endTime) { setMessage({ text: 'A start and end time needs to be selected', error: true }); return; } const start = new Date(`${startDate}T${startTime}`).getTime() / 1000; const end = new Date(`${endDate}T${endTime}`).getTime() / 1000; if (end <= start) { setMessage({ text: 'The end time must be after the start time.', error: true }); return; } setMessage({ text: 'Successfully started export. View the file in the /exports folder.', error: false }); axios.post(`export/${camera}/start/${start}/end/${end}`, { playback }); }; return (
Export {message.text && (
{message.text}
)}
From: setStartDate(e.target.value)}/> setStartTime(e.target.value)}/> To: setEndDate(e.target.value)}/> setEndTime(e.target.value)}/>
); }