Skip to content

Commit 2fc830f

Browse files
committed
part 02
1 parent 6911ab1 commit 2fc830f

File tree

4 files changed

+73
-2
lines changed

4 files changed

+73
-2
lines changed

src/components/App.js

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import React from 'react';
2+
import './App.css';
3+
import Stories from './Stories';
4+
5+
const App = ({ stories }) =>
6+
<div className="app">
7+
<Stories stories={stories} />
8+
</div>
9+
10+
export default App;

src/components/Stories.js

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import React from 'react';
2+
import './Stories.css';
3+
import Story from './Story';
4+
5+
const Stories = ({ stories }) =>
6+
<div className="stories">
7+
{(stories || []).map(story =>
8+
<Story
9+
key={story.objectID}
10+
story={story}
11+
/>
12+
)}
13+
</div>
14+
15+
export default Stories;

src/components/Story.js

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import React from 'react';
2+
import './Story.css';
3+
4+
const Story = ({ story }) => {
5+
const {
6+
title,
7+
url,
8+
author,
9+
num_comments,
10+
points,
11+
} = story;
12+
13+
return (
14+
<div className="story">
15+
<span>
16+
<a href={url}>{title}</a>
17+
</span>
18+
<span>{author}</span>
19+
<span>{num_comments}</span>
20+
<span>{points}</span>
21+
</div>
22+
);
23+
}
24+
25+
export default Story;

src/index.js

+23-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,29 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
33
import './index.css';
4-
import App from './App';
4+
import App from './components/App';
55
import registerServiceWorker from './registerServiceWorker';
66

7-
ReactDOM.render(<App />, document.getElementById('root'));
7+
const stories = [
8+
{
9+
title: 'React',
10+
url: 'https://facebook.github.io/react/',
11+
author: 'Jordan Walke',
12+
num_comments: 3,
13+
points: 4,
14+
objectID: 0,
15+
}, {
16+
title: 'Redux',
17+
url: 'https://github.com/reactjs/redux',
18+
author: 'Dan Abramov, Andrew Clark',
19+
num_comments: 2,
20+
points: 5,
21+
objectID: 1,
22+
},
23+
];
24+
25+
ReactDOM.render(
26+
<App stories={stories} />,
27+
document.getElementById('root')
28+
);
829
registerServiceWorker();

0 commit comments

Comments
 (0)