From ac6b8d5db837bd893f4aae22ad9450a813ee166c Mon Sep 17 00:00:00 2001 From: neko Date: Sun, 25 Sep 2022 14:21:17 +0300 Subject: [PATCH] final ref hw9 --- src/s2-homeworks/hw05/pages/Junior.tsx | 4 +- src/s2-homeworks/hw09/Clock.tsx | 52 ++++++++++++-------------- src/s2-homeworks/hw09/HW9.tsx | 8 +++- 3 files changed, 33 insertions(+), 31 deletions(-) diff --git a/src/s2-homeworks/hw05/pages/Junior.tsx b/src/s2-homeworks/hw05/pages/Junior.tsx index df6e621..55d5563 100644 --- a/src/s2-homeworks/hw05/pages/Junior.tsx +++ b/src/s2-homeworks/hw05/pages/Junior.tsx @@ -2,7 +2,7 @@ import React from 'react' import HW6 from '../../hw06/HW6' import HW7 from '../../hw07/HW7' import HW8 from '../../hw08/HW8' -// import HW9 from '../../hw09/HW9' +import HW9 from '../../hw09/HW9' function Junior() { return ( @@ -10,7 +10,7 @@ function Junior() { - {/**/} + ) } diff --git a/src/s2-homeworks/hw09/Clock.tsx b/src/s2-homeworks/hw09/Clock.tsx index a8a6241..d962da5 100644 --- a/src/s2-homeworks/hw09/Clock.tsx +++ b/src/s2-homeworks/hw09/Clock.tsx @@ -1,48 +1,44 @@ -import React, { useState } from 'react' +import React, {useState} from 'react' import SuperButton from '../hw04/common/c2-SuperButton/SuperButton' -import { restoreState } from '../hw06/localStorage/localStorage' +import {restoreState} from '../hw06/localStorage/localStorage' import s from './Clock.module.css' function Clock() { const [timerId, setTimerId] = useState(undefined) - const [date, setDate] = useState( - new Date(restoreState('hw9-date', new Date())) - ) // for autotests + // for autotests // не менять // можно подсунуть в локалСторэдж нужную дату, чтоб увидеть как она отображается + const [date, setDate] = useState(new Date(restoreState('hw9-date', Date.now()))) const [show, setShow] = useState(false) - const stop = () => { - // пишут студенты - if (timerId) { - clearInterval(timerId) - setTimerId(undefined) - } - } const start = () => { - // пишут студенты + // пишут студенты // запустить часы (должно отображаться реальное время, а не +1) + // сохранить ид таймера (https://learn.javascript.ru/settimeout-setinterval#setinterval) const id: number = +setInterval(() => { setDate(new Date()) }, 1000) setTimerId(id) } - const onMouseEnter = () => { + const stop = () => { + // пишут студенты // поставить часы на паузу, обнулить ид таймера (timerId <- undefined) + if (timerId) { + clearInterval(timerId) + setTimerId(undefined) + } + } + + const onMouseEnter = () => { // пишут студенты // показать дату если наведена мышка setShow(true) } - const onMouseLeave = () => { + const onMouseLeave = () => { // пишут студенты // спрятать дату если мышка не наведена setShow(false) } - // логику напишет Андрей :) // |v| видел такое в реальных часах |v| - const stringTime = date?.toLocaleTimeString() ||
// часы24:минуты:секунды (01:02:03)/(23:02:03)/(24:00:00)/(00:00:01) // пишут студенты - const stringDate = date?.toLocaleDateString() ||
// день.месяц.год (01.02.2022) // пишут студенты, варианты 01.02.0123/01.02.-123/01.02.12345 не рассматриваем - // день недели на английском, месяц на английском + const stringTime = date.toLocaleTimeString() ||
// часы24:минуты:секунды (01:02:03)/(23:02:03)/(24:00:00)/(00:00:01) // пишут студенты + const stringDate = date.toLocaleDateString() ||
// день.месяц.год (01.02.2022) // пишут студенты, варианты 01.02.0123/01.02.-123/01.02.12345 не рассматриваем - const stringDay = new Intl.DateTimeFormat('en-US', { - weekday: 'long', - }).format(date) ||
// пишут студенты - const stringMonth = new Intl.DateTimeFormat('en-US', { - month: 'long', - }).format(date) ||
// пишут студенты + // день недели на английском, месяц на английском (https://learn.javascript.ru/intl#intl-datetimeformat) + const stringDay = new Intl.DateTimeFormat('en-US', {weekday: 'long'}).format(date) ||
// пишут студенты + const stringMonth = new Intl.DateTimeFormat('en-US', {month: 'long'}).format(date) ||
// пишут студенты return (
@@ -67,7 +63,7 @@ function Clock() { ) : ( <> -
+
)}
@@ -76,14 +72,14 @@ function Clock() {
start stop diff --git a/src/s2-homeworks/hw09/HW9.tsx b/src/s2-homeworks/hw09/HW9.tsx index f597255..274b56a 100644 --- a/src/s2-homeworks/hw09/HW9.tsx +++ b/src/s2-homeworks/hw09/HW9.tsx @@ -2,12 +2,18 @@ import React from 'react' import Clock from './Clock' import s2 from '../../s1-main/App.module.css' +/* +* 1 - в файле Clock.tsx дописать функции stop, start, onMouseEnter, onMouseLeave +* 2 - в файле Clock.tsx из переменной date вычислить значения stringTime, stringDate, stringDay, stringMonth +* 3 - в файле Clock.tsx дизэйблить кнопки стоп / старт если таймер не запущен / запущен соответственно +* 4 - сделать стили в соответствии с дизайном +* */ + const HW9 = () => { return (
Homework #9
- {/*should work (должно работать)*/}