import { useState } from 'react'; import Codepen from "react-codepen-embed"; import redirect from '../../utils/redirect'; import FunctionPage from '../../components/FunctionPage/FunctionPage'; import FunctionTabs from '../../components/FunctionPage/FunctionTabs'; import FunctionArticle from '../../components/FunctionPage/FunctionArticle'; import FunctionComments from '../../components/FunctionPage/FunctionComments/FunctionComments'; import Loader from '../../components/Loader'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faPlay, faPause, faSync } from '@fortawesome/free-solid-svg-icons'; import api from '../../utils/api'; import '../../public/css/pages/FunctionComponent.css'; import '../../public/css/pages/functions/chronometerTimer.css'; let interval; function convertSeconds(seconds) { return { minutes: Math.floor(seconds / 60), seconds: seconds % 60 }; } const Chronometer = () => { const [timeLength, setTimeLength] = useState(0); // seconds const [isPlaying, setIsPlaying] = useState(false); const handlePlayPause = () => { if (isPlaying) { clearInterval(interval); } else { if (interval) clearInterval(interval); interval = setInterval(() => { setTimeLength((time) => time + 1); }, 1000); } setIsPlaying(!isPlaying); } const handleReset = () => { if (interval) clearInterval(interval); setIsPlaying(false); setTimeLength(0); } const getFormattedValue = () => { const minutesAndSeconds = convertSeconds(timeLength); const minutes = (minutesAndSeconds.minutes < 100) ? (('0'+minutesAndSeconds.minutes).slice(-2)) : minutesAndSeconds.minutes; const seconds = ('0'+minutesAndSeconds.seconds).slice(-2); return `${minutes}:${seconds}`; } return(
{getFormattedValue()}
); } const Pomodoro = () => { return (
} />
); } const FunctionTabManager = (props) => { return (
); } const chronometerTimer = (props) => ( ); export async function getServerSideProps(context) { return api.get(`/functions/chronometerTimer`) .then((response) => ({ props: response.data })) .catch(() => redirect(context, '/404')); } export default chronometerTimer;