Skip to content

Commit 0baf4b1

Browse files
react-5
1 parent 9912fb2 commit 0baf4b1

File tree

4 files changed

+56
-7
lines changed

4 files changed

+56
-7
lines changed

src/App.js

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,27 @@
1+
import { useState } from 'react';
12
import './App.css';
3+
import Counter from './components/Counter';
24
import PlayButton from './components/PlayButton';
35
import Video from './components/Video';
4-
import videos from './data/data';
6+
import videoDB from './data/data';
57
function App() {
8+
console.log('render App')
9+
10+
const [videos,setVideos] = useState(videoDB);
11+
612
return (
713
<div className="App" onClick={()=>console.log('App')}>
8-
<div>Videos</div>
14+
<div>
15+
<button onClick={()=>{
16+
setVideos( [...videos,{ id:videos.length+1,
17+
title: 'Demo JS tutorial',
18+
views: '1M',
19+
time: '1 month ago',
20+
channel: 'Coder Dost',
21+
verified: true
22+
}]);
23+
}}>Add Video</button>
24+
</div>
925
{videos.map((video) => (
1026
<Video
1127
key={video.id}
@@ -30,6 +46,9 @@ function App() {
3046

3147
{/* <PlayButton message="pause-msg" onSmash={()=>alert('Playyy')}>Pause</PlayButton> */}
3248
</div>
49+
50+
<Counter></Counter>
51+
3352
</div>
3453
);
3554
}

src/components/Counter.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { useState } from "react";
2+
3+
function Counter(){
4+
console.log('render Counter')
5+
const [number, setNumber] = useState(0);
6+
7+
function handleClick(e){
8+
e.stopPropagation();
9+
10+
setNumber(number=>number+1);
11+
setNumber(number=>number+1);
12+
setNumber(number=>number+1);
13+
14+
console.log(number)
15+
}
16+
17+
return(
18+
<>
19+
<h1 style={{color:'white'}}>{number}</h1>
20+
<button onClick={handleClick}>Add</button>
21+
</>
22+
)
23+
24+
}
25+
26+
export default Counter;

src/components/PlayButton.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
import './PlayButton.css';
2+
import { useState } from 'react';
23

34
function PlayButton({message,children,onPlay,onPause}){
4-
let playing = false; // don't use this approach;
5+
console.log('render PlayButton')
6+
7+
const [playing, setPlaying] = useState(false);
58
function handleClick(e){
6-
console.log(e)
9+
// console.log(e)
710
e.stopPropagation()
811

912
if(playing) onPause()
1013
else onPlay();
1114

12-
playing = !playing;
15+
setPlaying(!playing);
1316
}
1417

1518
return (
16-
<button onClick={handleClick}>{children} : {playing?'>':'||'}</button>
19+
<button onClick={handleClick}>{children} : {playing?'⏸️':'⏯️'}</button>
1720
)
1821

1922
}

src/components/Video.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import './Video.css';
22

33
function Video({title,id,channel="Coder Dost",views,time,verified,children}) {
4-
4+
console.log('render Video')
5+
56

67
return (
78
<>

0 commit comments

Comments
 (0)