-
Notifications
You must be signed in to change notification settings - Fork 366
/
Copy pathApp.js
37 lines (31 loc) · 1.04 KB
/
App.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { useState } from 'react';
import './App.css';
import AddVideo from './components/AddVideo';
import videoDB from './data/data';
import VideoList from './components/VideoList';
function App() {
console.log('render App')
const [videos, setVideos] = useState(videoDB);
const [editVideo, setEditVideo] = useState(null)
function addVideos(video) {
setVideos([
...videos,
{ ...video, id: videos.length + 1 }
]);
}
const editableVideo = (id) => {
let editVideo = videos.find(video => video.id === id)
setEditVideo(editVideo);
}
const updateVideo = (updatedVideo) => {
const newVideos = videos.map(video => video.id === updatedVideo.id ? updatedVideo : video);
setVideos([...newVideos])
}
return (
<div className="App" onClick={() => console.log('App')}>
<AddVideo addVideos={addVideos} editVideo={editVideo} setEditVideo={setEditVideo} updateVideo={updateVideo}></AddVideo>
<VideoList videos={videos} editableVideo={editableVideo}></VideoList>
</div>
);
}
export default App;