|
@@ -1,37 +1,20 @@
|
|
|
-import React, { useState } from 'react';
|
|
|
+import { useState } from 'react';
|
|
|
|
|
|
import s from './TimerControl.module.css';
|
|
|
-import Timer from '../Timer/Timer';
|
|
|
|
|
|
interface ITimerControlProps {
|
|
|
- amountSeconds: number;
|
|
|
- refresh: number;
|
|
|
- renderEl: ({ seconds }: { seconds: number }) => JSX.Element;
|
|
|
+ flag: string;
|
|
|
+ setHours: React.Dispatch<React.SetStateAction<number>>;
|
|
|
+ setMinutes: React.Dispatch<React.SetStateAction<number>>;
|
|
|
+ setSeconds: React.Dispatch<React.SetStateAction<number>>;
|
|
|
}
|
|
|
|
|
|
const TimerControl = ({
|
|
|
- amountSeconds,
|
|
|
- refresh,
|
|
|
- renderEl,
|
|
|
+ flag,
|
|
|
+ setHours,
|
|
|
+ setMinutes,
|
|
|
+ setSeconds,
|
|
|
}: ITimerControlProps) => {
|
|
|
- const [flag, setFlag] = useState<string>('Start');
|
|
|
- const [hours, setHours] = useState<number>(0);
|
|
|
- const [minutes, setMinutes] = useState<number>(0);
|
|
|
- const [seconds, setSeconds] = useState<number>(0);
|
|
|
-
|
|
|
- const handleTimer = () => {
|
|
|
- switch (flag) {
|
|
|
- case 'Start':
|
|
|
- setFlag('Pause');
|
|
|
- break;
|
|
|
- case 'Pause':
|
|
|
- setFlag('Start');
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
const handleTimeInput = (e: React.ChangeEvent<HTMLInputElement>) => {
|
|
|
const name = e.target.name;
|
|
|
const value = Number(e.target.value);
|
|
@@ -50,7 +33,6 @@ const TimerControl = ({
|
|
|
break;
|
|
|
}
|
|
|
};
|
|
|
- const time = (hours * 60 + minutes) * 60 + seconds;
|
|
|
|
|
|
return (
|
|
|
<div className={s.timerControlWrapper}>
|
|
@@ -75,16 +57,6 @@ const TimerControl = ({
|
|
|
type="number"
|
|
|
placeholder="Seconds"
|
|
|
></input>
|
|
|
- <p>
|
|
|
- Hours : {hours} . Minutes : {minutes} .Seconds : {seconds}
|
|
|
- </p>
|
|
|
- <Timer
|
|
|
- time={time > 0 ? time : amountSeconds}
|
|
|
- flag={flag}
|
|
|
- handleTimer={handleTimer}
|
|
|
- refresh={refresh}
|
|
|
- renderEl={renderEl}
|
|
|
- />
|
|
|
</div>
|
|
|
);
|
|
|
};
|