From d128c8fe7a5b27c1e351db2ccb77ae60f2ecff77 Mon Sep 17 00:00:00 2001 From: Deepak Pundir Date: Sat, 30 Apr 2022 13:56:16 +0530 Subject: [PATCH 1/2] a beautiful wall clock --- src/meta/play-meta.js | 16 +++++ src/plays/analog-clock/AnalogClock.css | 85 +++++++++++++++++++++++++ src/plays/analog-clock/AnalogClock.jsx | 65 +++++++++++++++++++ src/plays/analog-clock/Readme.md | 12 ++++ src/plays/analog-clock/cover.png | Bin 0 -> 49136 bytes src/plays/index.js | 1 + 6 files changed, 179 insertions(+) create mode 100644 src/plays/analog-clock/AnalogClock.css create mode 100644 src/plays/analog-clock/AnalogClock.jsx create mode 100644 src/plays/analog-clock/Readme.md create mode 100644 src/plays/analog-clock/cover.png diff --git a/src/meta/play-meta.js b/src/meta/play-meta.js index 37359234d4..74373423cb 100644 --- a/src/meta/play-meta.js +++ b/src/meta/play-meta.js @@ -10,6 +10,7 @@ import { RandomMemeGenerator, ReactTodoApp, ExpandingCards, + AnalogClock, //import play here } from "plays"; @@ -174,5 +175,20 @@ export const plays = [ cover: "", blog: "", video: "", + }, + { + id: "pl-analog-clock", + name: "Analog-Clock", + description: "A beautiful wall clock", + component: () => { + return ; + }, + path: "/plays/analog-clock", + level: "Beginner", + tags: "useState, useEffect, Date, setInterval", + github: "Deepak8717", + cover: "", + blog: "", + video: "", }, //replace new play item here ]; diff --git a/src/plays/analog-clock/AnalogClock.css b/src/plays/analog-clock/AnalogClock.css new file mode 100644 index 0000000000..59a703ad35 --- /dev/null +++ b/src/plays/analog-clock/AnalogClock.css @@ -0,0 +1,85 @@ +.clock-play-heading { + text-align: center; +} +.clock { + max-width: 375px; + height: 375px; + border: 10px solid #e6e6e6; + margin: 0 auto; + border-radius: 50%; + position: relative; + background-color: #3d3d3d; + box-shadow: inset 0px 6px 0px 2px #646262, -4px 4px 1px 0px #959393, + 0px 0px 1px 2px #959393, -4px 4px 7px 1px #434343; +} +.clock::after { + content: ""; + width: 15px; + height: 15px; + background: #fff; + position: absolute; + top: 49%; + left: 49%; + border-radius: 50%; + box-shadow: 0px 0px 0px 4px #a3a1a1, 0px 0px 0px 5px #9d9d9d; +} +.hour-hand { + width: 10px; + height: 100px; + background: #e8e5ef; + position: absolute; + left: 50%; + top: 50%; + border-radius: 0px 0px 10px 10px; + transform-origin: top; +} +.minute-hand { + width: 5px; + height: 134px; + background: #ffffff; + position: absolute; + left: 50%; + top: 50%; + border-radius: 0px 0px 10px 10px; + transform-origin: top; +} +.second-hand { + width: 2px; + height: 155px; + background: yellow; + position: absolute; + left: 50%; + top: 50%; + border-radius: 0px 0px 10px 10px; + transform-origin: top; + transform: rotate(180deg); +} +.brand { + position: absolute; + top: 50%; + left: 50%; + background-color: #fff; + font-size: 21px; + z-index: -1; + padding: 0 5px; + border-radius: 5px; + font-weight: bold; + letter-spacing: 7px; + font-style: italic; +} + +@media only screen and (max-width: 420px) { + .clock { + width: 310px; + height: 310px; + } + .hour-hand { + height: 100px; + } + .minute-hand { + height: 118px; + } + .second-hand { + height: 135px; + } +} diff --git a/src/plays/analog-clock/AnalogClock.jsx b/src/plays/analog-clock/AnalogClock.jsx new file mode 100644 index 0000000000..86e3588118 --- /dev/null +++ b/src/plays/analog-clock/AnalogClock.jsx @@ -0,0 +1,65 @@ +import { getPlayById } from "meta/play-meta-util"; +import "./AnalogClock.css"; + +import PlayHeader from "common/playlists/PlayHeader"; +import { useState } from "react"; +import { useEffect } from "react"; + +function AnalogClock(props) { + // Do not remove the below lines. + // The following code is to fetch the current play from the URL + const { id } = props; + const play = getPlayById(id); + + // Your Code Start below. + const [date, setDate] = useState(new Date()); + useEffect(() => { + const interval = setInterval(() => { + setDate(new Date()); + }, 1000); + + return () => clearInterval(interval); + }); + const hour = date.getHours() * 30 + 180; // 360/12 = 30 each hour it rotates 30deg +180 (initial design at 0 deg was upside down so to fix it i rotate 180deg..// see the design at 0deg for more clarification) + const minute = date.getMinutes() * 6 + 180; // 360/60 = 6 each minutes it rotate 6deg + 180(same as above to ...see at 0 deg) + const second = date.getSeconds() * 6 + 180; //// 360/60 = 6 each minutes it rotate 6deg + 180(look at 0 deg for more clarification) + console.log(date.getHours()); + + return ( + <> +
+ +
+ {/* Your Code Starts Here */} +

Analog Clock

+
+
+
+
+
+
+
+
+ {/* Your Code Ends Here */} +
+
+ + ); +} + +export default AnalogClock; diff --git a/src/plays/analog-clock/Readme.md b/src/plays/analog-clock/Readme.md new file mode 100644 index 0000000000..4b228e9752 --- /dev/null +++ b/src/plays/analog-clock/Readme.md @@ -0,0 +1,12 @@ +# analog-clock + +A Beautiful wall clock + +## What will you learn + +- How to use `useStae` hook +- How to use `useEffect` hook +- How to work with `Date` objects and manupulate them. +- How to `rotate` the clock hands as per the time. + +The file `AnalogClock.jsx` has all the code for implementation. please free to have a look and implement it. diff --git a/src/plays/analog-clock/cover.png b/src/plays/analog-clock/cover.png new file mode 100644 index 0000000000000000000000000000000000000000..c79ea6426f4ce6f6f219786a29f7387b5326c173 GIT binary patch literal 49136 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 literal 0 HcmV?d00001 diff --git a/src/plays/index.js b/src/plays/index.js index 570df76b8e..051813d34c 100644 --- a/src/plays/index.js +++ b/src/plays/index.js @@ -11,4 +11,5 @@ export { default as SocialCard } from 'plays/social-card/SocialCard'; export { default as RandomMemeGenerator } from 'plays/random-meme-generator/RandomMemeGenerator'; export { default as ReactTodoApp } from 'plays/react-todo-app/ReactTodoApp'; export { default as ExpandingCards } from 'plays/expanding-cards/ExpandingCards'; +export { default as AnalogClock } from 'plays/analog-clock/AnalogClock'; //add export here From 9b1192800dc5f01c003183b20d850e48cfe5c7e0 Mon Sep 17 00:00:00 2001 From: Deepak Pundir Date: Sat, 30 Apr 2022 18:01:00 +0530 Subject: [PATCH 2/2] requested changes //removed console.log/added dependecy array to useEffect hook --- src/plays/analog-clock/AnalogClock.jsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/plays/analog-clock/AnalogClock.jsx b/src/plays/analog-clock/AnalogClock.jsx index 86e3588118..9454f597da 100644 --- a/src/plays/analog-clock/AnalogClock.jsx +++ b/src/plays/analog-clock/AnalogClock.jsx @@ -19,11 +19,10 @@ function AnalogClock(props) { }, 1000); return () => clearInterval(interval); - }); + }, []); const hour = date.getHours() * 30 + 180; // 360/12 = 30 each hour it rotates 30deg +180 (initial design at 0 deg was upside down so to fix it i rotate 180deg..// see the design at 0deg for more clarification) const minute = date.getMinutes() * 6 + 180; // 360/60 = 6 each minutes it rotate 6deg + 180(same as above to ...see at 0 deg) const second = date.getSeconds() * 6 + 180; //// 360/60 = 6 each minutes it rotate 6deg + 180(look at 0 deg for more clarification) - console.log(date.getHours()); return ( <>