refactor some functions

This commit is contained in:
Вячеслав 2025-06-14 15:06:39 +05:00
parent 981ef867fb
commit 8f69ed3b58
3 changed files with 19 additions and 15 deletions

View file

@ -2,6 +2,7 @@ import { useEffect, useState } from 'react';
import TimeManager from '../../helpers/TimeManager'; import TimeManager from '../../helpers/TimeManager';
import Button from '../Button/Button'; import Button from '../Button/Button';
import styles from './Timer.module.css' import styles from './Timer.module.css'
import { formatTime } from '../../helpers/Formatters';
const Timer = () => { const Timer = () => {
const [timeManager, recreateTimeManager] = useState(() => new TimeManager(0)) const [timeManager, recreateTimeManager] = useState(() => new TimeManager(0))
@ -9,19 +10,15 @@ const Timer = () => {
const [startDate, setStartDate] = useState('00:00'); const [startDate, setStartDate] = useState('00:00');
const [endDate, setEndDate] = useState('00:00'); const [endDate, setEndDate] = useState('00:00');
const formatTime = (date: Date) => {
const hours = String(date.getHours()).padStart(2, '0');
const minutes = String(date.getMinutes()).padStart(2, '0');
return `${hours}:${minutes}`;
};
useEffect(() => { useEffect(() => {
timeManager.start() timeManager.start()
console.log("timer started") console.log("timer started")
const interval = setInterval(() => { const interval = setInterval(() => {
setRemainingTime(timeManager.getRemainingTime()); setRemainingTime(timeManager.getRemainingTime());
let startString = formatTime(timeManager.getStartDate()); const startString = formatTime(timeManager.getStartDate());
let endString = formatTime(timeManager.getEndDate()); const endString = formatTime(timeManager.getEndDate());
if (startString === endString) { if (startString === endString) {
setStartDate('00:00'); setStartDate('00:00');
setEndDate('00:00'); setEndDate('00:00');

12
src/helpers/Formatters.ts Normal file
View file

@ -0,0 +1,12 @@
export const formatFullTime = (date: Date) => {
const hours = String(date.getHours()).padStart(2, '0');
const minutes = String(date.getMinutes()).padStart(2, '0');
const seconds = String(date.getSeconds()).padStart(2, '0');
return `${hours}:${minutes}:${seconds}`;
};
export const formatTime = (date: Date) => {
const hours = String(date.getHours()).padStart(2, '0');
const minutes = String(date.getMinutes()).padStart(2, '0');
return `${hours}:${minutes}`;
};

View file

@ -1,6 +1,7 @@
import { useEffect, useState } from 'react'; import {useEffect, useState} from 'react';
import Timer from '../../components/Timer/Timer'; import Timer from '../../components/Timer/Timer';
import styles from './Timers.module.css'; import styles from './Timers.module.css';
import {formatFullTime} from "../../helpers/Formatters.ts";
const Timers = () => { const Timers = () => {
const [time, setTime] = useState(new Date()); const [time, setTime] = useState(new Date());
@ -13,18 +14,12 @@ const Timers = () => {
return () => clearInterval(intervalId); return () => clearInterval(intervalId);
}, []) }, [])
const formatTime = (date: Date) => {
const hours = String(date.getHours()).padStart(2, '0');
const minutes = String(date.getMinutes()).padStart(2, '0');
const seconds = String(date.getSeconds()).padStart(2, '0');
return `${hours}:${minutes}:${seconds}`;
};
return ( return (
<div className={styles.content}> <div className={styles.content}>
<header className={styles.header}> <header className={styles.header}>
<a className={`${styles.header_text} ${styles.title}`}>MetaTimer</a> <a className={`${styles.header_text} ${styles.title}`}>MetaTimer</a>
<a className={`${styles.header_text} ${styles.title}`}>{formatTime(time)}</a> <a className={`${styles.header_text} ${styles.title}`}>{formatFullTime(time)}</a>
</header> </header>
<div className={styles.timers_container}> <div className={styles.timers_container}>
<Timer/> <Timer/>