diff --git a/src/meta/play-meta.js b/src/meta/play-meta.js
index ba9c6f0cc7..18851abcb5 100644
--- a/src/meta/play-meta.js
+++ b/src/meta/play-meta.js
@@ -4,7 +4,8 @@ import {
CurrentTimer,
MovieContainer,
WhyReact,
- //import play here
+ CounterApp,
+//import play here
} from "plays";
const plays = [
@@ -58,6 +59,15 @@ const plays = [
level: 'Intermediate',
tags: 'Recursion, Tree',
github: 'green-roots'
+ }, {
+ id: 'pl-counter',
+ name: 'Counter',
+ description: 'A simple counter which increments the value upto a certain limit!',
+ component: () => {return },
+ path: '/plays/Counter',
+ level: 'Beginner',
+ tags: 'JSX, State, Props',
+ github: 'murtuzaalisurti'
}, //replace new play item here
];
diff --git a/src/plays/Counter/Counter.js b/src/plays/Counter/Counter.js
new file mode 100644
index 0000000000..7b07eeba62
--- /dev/null
+++ b/src/plays/Counter/Counter.js
@@ -0,0 +1,28 @@
+import { useState } from "react";
+
+const Counter = (props) => {
+
+ const [times, setTimes] = useState(0);
+
+ function increase() {
+ setTimes((prev) => {
+ if (prev === props.times) {
+ return 0;
+ } else {
+ return prev + 1;
+ }
+ })
+ }
+
+ function reset(){
+ setTimes(0);
+ }
+
+ return (
+
+
+
+
+ )
+}
+export default Counter;
\ No newline at end of file
diff --git a/src/plays/Counter/CounterApp.js b/src/plays/Counter/CounterApp.js
new file mode 100644
index 0000000000..1c24e27f93
--- /dev/null
+++ b/src/plays/Counter/CounterApp.js
@@ -0,0 +1,27 @@
+import {useState} from 'react';
+import Counter from './Counter';
+import './counter.css';
+function CounterApp() {
+ const [input, setInput] = useState("");
+ const [times, setTimes] = useState(33);
+ function register(){
+ let no_times = Number(input);
+ console.log(no_times)
+ setTimes(no_times);
+ setInput("");
+ }
+ return (
+
+
Counter
+
A simple counter
+
Specify the limit and click the circle below to increment the value until the limit has been reached. After that it will reset to zero.
+
+ setInput(e.target.value)} className="no_of_times" type="text" />
+
+
+
+
+ );
+}
+
+export default CounterApp;
\ No newline at end of file
diff --git a/src/plays/Counter/counter.css b/src/plays/Counter/counter.css
new file mode 100644
index 0000000000..f91ff6a9ee
--- /dev/null
+++ b/src/plays/Counter/counter.css
@@ -0,0 +1,66 @@
+.counter-container{
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ width: 100vw;
+}
+.counter-desc{
+ text-align: center;
+}
+button:hover{
+ cursor: pointer;
+}
+.input_field {
+ display: flex;
+ justify-content: center;
+ margin-top: 1rem;
+ width: 90%;
+ margin: 0 1rem;
+}
+.input_field input {
+ width: 100%;
+ max-width: 15rem;
+ outline: none;
+ border: 3px solid rgb(220, 182, 255);
+ border-radius: 0.6rem;
+ padding: 0.5rem;
+ text-align: center;
+}
+.input_field button,
+.reset_btn {
+ background-color: rgb(111, 78, 138);
+ margin-left: 1rem;
+ outline: none;
+ color: white;
+ border: none;
+ border-radius: 0.5rem;
+ padding: 0 0.5rem;
+}
+.reset_btn {
+ margin: 0;
+ padding: 0.5rem 1rem;
+}
+.counter {
+ margin-top: 2.5rem;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+.reset_btn {
+ margin-top: 0.5rem;
+}
+.counter_btn {
+ height: 7rem;
+ width: 7rem;
+ background-color: rgb(199, 139, 255);
+ border-radius: 50%;
+ border: none;
+ font-size: 2.5rem;
+ transition: border 0.01s ease-in;
+}
+.counter_btn:active {
+ border: 3px solid rgb(73, 0, 141);
+}
+.counter_btn::selection {
+ background-color: transparent;
+}
diff --git a/src/plays/index.js b/src/plays/index.js
index 3fdaee9ff5..057ecf87c4 100644
--- a/src/plays/index.js
+++ b/src/plays/index.js
@@ -5,4 +5,5 @@ export { default as CdTimerComp } from 'plays/date-time-counter/CdTimerComp';
export { default as BasicTree } from 'plays/family-tree/BasicTree';
export { default as MovieContainer } from 'plays/movies/MovieContainer';
export { default as WhyReact } from 'plays/why-react/WhyReact';
+export { default as CounterApp } from 'plays/Counter/CounterApp';
//add export here