| /* |
| * Copyright (c) 2018 StreamNative. All Rights Reserved. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| import React, { Component } from 'react'; |
| import { Card, CardBody, CardHeader, Col, Row, Table } from 'reactstrap'; |
| |
| import usersData from './UsersData' |
| |
| class User extends Component { |
| |
| render() { |
| |
| const user = usersData.find( user => user.id.toString() === this.props.match.params.id) |
| |
| const userDetails = user ? Object.entries(user) : [['id', (<span><i className="text-muted icon-ban"></i> Not found</span>)]] |
| |
| return ( |
| <div className="animated fadeIn"> |
| <Row> |
| <Col lg={6}> |
| <Card> |
| <CardHeader> |
| <strong><i className="icon-info pr-1"></i>User id: {this.props.match.params.id}</strong> |
| </CardHeader> |
| <CardBody> |
| <Table responsive striped hover> |
| <tbody> |
| { |
| userDetails.map(([key, value]) => { |
| return ( |
| <tr key={key}> |
| <td>{`${key}:`}</td> |
| <td><strong>{value}</strong></td> |
| </tr> |
| ) |
| }) |
| } |
| </tbody> |
| </Table> |
| </CardBody> |
| </Card> |
| </Col> |
| </Row> |
| </div> |
| ) |
| } |
| } |
| |
| export default User; |