diff --git a/src/meta/play-meta.js b/src/meta/play-meta.js index 3fb6ec4fd4..d15f03dab2 100644 --- a/src/meta/play-meta.js +++ b/src/meta/play-meta.js @@ -1,6 +1,6 @@ import { - BasicTree, CountDownTimer, + BasicTree, CdTimerComp, CurrentTimer, MovieContainer, WhyReact @@ -22,7 +22,7 @@ const plays = [ }, { name: 'Countdown Timer', - component: () => {return }, + component: () => {return }, path: '/plays/countdown', includeInMenu: true, }, diff --git a/src/plays/date-time-counter/CdTimerComp.js b/src/plays/date-time-counter/CdTimerComp.js new file mode 100644 index 0000000000..aa0e3b6813 --- /dev/null +++ b/src/plays/date-time-counter/CdTimerComp.js @@ -0,0 +1,32 @@ +import { useState } from "react"; +import CountDownTimer from "./CountDownTimer"; + +const CdTimerComp = () => { + const dateTimeAfterThreeDays = new Date().getTime() + 3 * 24 * 60 * 60 * 1000; + const [targetDate, setTargetDate] = useState( + new Date(dateTimeAfterThreeDays) + ); + + const handleChange = (event) => { + event.preventDefault(); + setTargetDate(new Date(event.target.value)); + }; + + return ( +
+

Countdown Timer

+
+ + +
+ +
+ ); +}; + +export default CdTimerComp; diff --git a/src/plays/date-time-counter/CountDownTimer.js b/src/plays/date-time-counter/CountDownTimer.js index b5027598df..4153d82787 100644 --- a/src/plays/date-time-counter/CountDownTimer.js +++ b/src/plays/date-time-counter/CountDownTimer.js @@ -2,44 +2,51 @@ import "./datetime.css"; import DateTimeDisplay from "./DateTimeDisplay"; import useCountDown from "./hooks/useCountDown"; -const CountDownTimer = ({ targetDate }) => { - - const [days, hours, minutes, seconds] = useCountDown(targetDate); +const ExpiredNotice = () => { + return ( +
+ Expired!!! +

Please select a future date and time.

+
+ ); +}; +const ShowCounter = ({ days, hours, minutes, seconds }) => { return ( -
+
- +

:

- +

:

- +

:

- +
); }; +const CountDownTimer = ({ targetDate }) => { + const [days, hours, minutes, seconds] = useCountDown(targetDate); + + if (days < 0) { + return ; + } else { + return ( + + ); + } +}; + export default CountDownTimer; diff --git a/src/plays/date-time-counter/datetime.css b/src/plays/date-time-counter/datetime.css index 4aafe77a4b..3e81e99433 100644 --- a/src/plays/date-time-counter/datetime.css +++ b/src/plays/date-time-counter/datetime.css @@ -1,5 +1,38 @@ +.countdown-container { + margin: 0.5rem +} + +.countdown-container > form { + padding: 0.5rem; +} + +.countdown-container > form > label { + margin-right: 0.09rem; +} + +.expired-notice { + text-align: center; + padding: 2rem; + border: 1px solid #ebebeb; + border-radius: 0.25rem; + margin: 0.5rem; +} + +.expired-notice > span { + font-size: 2.5rem; + font-weight: bold; + color: red; +} + +.expired-notice > p { + font-size: 1.5rem; +} + +.show-counter { + padding: 0.5rem; +} -.countdown-link { +.show-counter .countdown-link { display: flex; flex-direction: row; justify-content: center; @@ -14,7 +47,7 @@ color: #000; } -.countdown { +.show-counter .countdown { line-height: 1.25rem; padding: 0 0.75rem 0 0.75rem; align-items: center; @@ -22,15 +55,15 @@ flex-direction: column; } -.countdown.danger { +.show-counter .countdown.danger { color: #ff0000; } -.countdown > p { +.show-counter .countdown > p { margin: 0; } -.countdown > span { +.show-counter .countdown > span { text-transform: uppercase; font-size: 0.75rem; line-height: 1rem; diff --git a/src/plays/index.js b/src/plays/index.js index 1af057259a..ceb3d70104 100644 --- a/src/plays/index.js +++ b/src/plays/index.js @@ -1,7 +1,7 @@ export { default as PageNotFound } from '../common/404/PageNotFound'; export { default as Home } from '../common/home/Home'; export { default as CurrentTimer } from './clock/CurrentTimer'; -export { default as CountDownTimer } from './date-time-counter/CountDownTimer'; +export { default as CdTimerComp } from './date-time-counter/CdTimerComp'; export { default as BasicTree } from './family-tree/BasicTree'; export { default as MovieContainer } from './movies/MovieContainer'; export { default as WhyReact } from './why-react/WhyReact';