Front-End Web Dev. with React Week 2
Assignment Week 2
About Component
import React from 'react';
import { Breadcrumb, BreadcrumbItem, Card, CardBody, CardHeader, Media } from 'reactstrap';
import { Link } from 'react-router-dom';
function RenderLeader({ leader }) {
return(
<div key={leader.id} className="col-12 mt-5">
<Media tag="li">
<Media left middle>
<Media object src={leader.image} alt={leader.name} />
</Media>
<Media body className="ml-5">
<Media heading>{leader.name}</Media>
<p>{leader.description}</p>
</Media>
</Media>
</div>
);
}
function About(props) {
const leaders = props.leaders.map((leader) => {
return (
<RenderLeader leader={leader} />
);
});
return (
<div className="container">
<div className="row">
<Breadcrumb>
<BreadcrumbItem><Link to="/home">Home</Link></BreadcrumbItem>
<BreadcrumbItem active>About Us</BreadcrumbItem>
</Breadcrumb>
<div className="col-12">
<h3>About Us</h3>
<hr />
</div>
</div>
<div className="row row-content">
<div className="col-12 col-md-6">
<h2>Our History</h2>
<p>Started in 2010, Ristorante con Fusion quickly established itself as a culinary icon par excellence in Hong Kong. With its unique brand of world fusion cuisine that can be found nowhere else, it enjoys patronage from the A-list clientele in Hong Kong. Featuring four of the best three-star Michelin chefs in the world, you never know what will arrive on your plate the next time you visit us.</p>
<p>The restaurant traces its humble beginnings to <em>The Frying Pan</em>, a successful chain started by our CEO, Mr. Peter Pan, that featured for the first time the world's best cuisines in a pan.</p>
</div>
<div className="col-12 col-md-5">
<Card>
<CardHeader className="bg-primary text-white">Facts At a Glance</CardHeader>
<CardBody>
<dl className="row p-1">
<dt className="col-6">Started</dt>
<dd className="col-6">3 Feb. 2013</dd>
<dt className="col-6">Major Stake Holder</dt>
<dd className="col-6">HK Fine Foods Inc.</dd>
<dt className="col-6">Last Year's Turnover</dt>
<dd className="col-6">$1,250,375</dd>
<dt className="col-6">Employees</dt>
<dd className="col-6">40</dd>
</dl>
</CardBody>
</Card>
</div>
<div className="col-12">
<Card>
<CardBody className="bg-faded">
<blockquote className="blockquote">
<p className="mb-0">You better cut the pizza in four pieces because
I'm not hungry enough to eat six.</p>
<footer className="blockquote-footer">Yogi Berra,
<cite title="Source Title">The Wit and Wisdom of Yogi Berra,
P. Pepe, Diversion Books, 2014</cite>
</footer>
</blockquote>
</CardBody>
</Card>
</div>
</div>
<div className="row row-content">
<div className="col-12">
<h2>Corporate Leadership</h2>
</div>
<div className="col-12">
<div className="row">
<Media list>
{leaders}
</Media>
</div>
</div>
</div>
</div>
);
}
export default About;
Main Component
import React, { Component } from 'react';
import Home from './HomeComponent';
import Menu from './MenuComponent';
import About from './AboutComponent';
import Contact from './ContactComponent';
import Header from './HeaderComponent';
import Footer from './FooterComponent';
import DishDetail from './DishdetailComponent';
import { COMMENTS } from '../shared/comments'
import { DISHES } from '../shared/dishes'
import { LEADERS } from '../shared/leaders'
import { PROMOTIONS } from '../shared/promotions'
import { Switch, Route, Redirect } from 'react-router-dom';
class Main extends Component {
constructor(props) {
super(props);
this.state = {
comments: COMMENTS,
dishes: DISHES,
leaders: LEADERS,
promotions: PROMOTIONS,
};
}
render() {
const HomePage = () => {
return(
<Home
dish={ this.state.dishes.filter( (dish)=>dish.featured )[0] }
promotion={this.state.promotions.filter( (promotion)=>promotion.featured )[0] }
leader={this.state.leaders.filter( (leader)=>leader.featured )[0] }
/>
);
};
const AboutUsPage = () => {
return(
<About
leaders={this.state.leaders}
/>
);
};
const DishWithId = ({match}) => {
return(
<DishDetail
dish={this.state.dishes.filter( (dish) => dish.id === parseInt(match.params.dishId, 10))[0] }
comments={this.state.comments.filter( (comment) => comment.dishId === parseInt(match.params.dishId, 10)) }
/>
);
};
return (
<div>
<Header></Header>
<Switch>
<Route path="/home" component={ HomePage } />
<Route exact path="/menu" component={() => <Menu dishes={this.state.dishes}/> }/>
<Route path="/menu/:dishId" component={DishWithId} />
<Route exact path="/contactus" component={Contact } />
<Route exact path="/aboutus" component={ AboutUsPage } />
{/* if url dosesnt match, bydefault redirect to */}
<Redirect to="/home" />
</Switch>
<Footer></Footer>
</div>
);
}
}
export default Main;
For Reference .js File is attached below
* The material and content uploaded on this website are for general information and reference purposes only. Please do it by your own first.