diff options
author | Ibrahim Mkusa <ibrahimmkusa@gmail.com> | 2023-04-28 00:02:01 -0400 |
---|---|---|
committer | Ibrahim Mkusa <ibrahimmkusa@gmail.com> | 2023-04-28 00:02:01 -0400 |
commit | 6bf9e0fcd5a4fb5bb1ca6b42bccf91a57eb59067 (patch) | |
tree | 8b5704ebbffeea30051c043037b7161f45b835af | |
parent | 9a4ee1ad06006367e50249719ef5cde23fec7626 (diff) |
ex2.5 modulize helper components
-rw-r--r-- | part2/courseinfo2/src/App.js | 56 | ||||
-rw-r--r-- | part2/courseinfo2/src/components/Course.js | 57 |
2 files changed, 58 insertions, 55 deletions
diff --git a/part2/courseinfo2/src/App.js b/part2/courseinfo2/src/App.js index 720ea29..186af0d 100644 --- a/part2/courseinfo2/src/App.js +++ b/part2/courseinfo2/src/App.js @@ -1,58 +1,4 @@ -const Header = (props) => { - const header = props.name - return ( - <h1>{header}</h1> - ) -} - -const Part = (props) => { - const name = props.name - const exercises = props.exercises - - return ( - <p>{name} {exercises}</p> - ) -} - -const Content = (props) => { - //const object_1 = props.parts.parts[0] - //const object_2 = props.parts.parts[1] - //const object_3 = props.parts.parts[2] - const parts = props.parts - - return ( - <> - {parts.map((part) => { - return ( - <Part name={part.name} exercises={part.exercises} /> - )}) - } - </> - ) -} - -const Total = (props) => { - const parts = props.parts - const initialValue = 0 - - return (<p> Number of exercises {parts.reduce((sum, part) => { - return sum += part.exercises - - }, initialValue)} </p> - ) -} - -const Course = (props) => { - const header = props.course.name - const parts = props.course.parts - return ( - <> - <Header name={header} /> - <Content parts={parts} /> - <Total parts={parts} /> - </> - ) -} +import Course from './components/Course' const App = () => { const courses = [ diff --git a/part2/courseinfo2/src/components/Course.js b/part2/courseinfo2/src/components/Course.js new file mode 100644 index 0000000..e7c86e0 --- /dev/null +++ b/part2/courseinfo2/src/components/Course.js @@ -0,0 +1,57 @@ +const Header = (props) => { + const header = props.name + return ( + <h1>{header}</h1> + ) +} + +const Part = (props) => { + const name = props.name + const exercises = props.exercises + + return ( + <p>{name} {exercises}</p> + ) +} + +const Content = (props) => { + //const object_1 = props.parts.parts[0] + //const object_2 = props.parts.parts[1] + //const object_3 = props.parts.parts[2] + const parts = props.parts + + return ( + <> + {parts.map((part) => { + return ( + <Part name={part.name} exercises={part.exercises} /> + )}) + } + </> + ) +} + +const Total = (props) => { + const parts = props.parts + const initialValue = 0 + + return (<p> Number of exercises {parts.reduce((sum, part) => { + return sum += part.exercises + + }, initialValue)} </p> + ) +} + +const Course = (props) => { + const header = props.course.name + const parts = props.course.parts + return ( + <> + <Header name={header} /> + <Content parts={parts} /> + <Total parts={parts} /> + </> + ) +} + +export default Course |