UNPKG

bulma-dashboard-theme-worona

Version:
69 lines (66 loc) 2.08 kB
import React from 'react'; import cn from 'classnames'; import moment from 'moment'; import { Link } from 'react-router'; import Icon from '../../elements/Icon'; import EditSiteLink from '../../elements/EditSiteLink'; const Site = ({ name, url, date, id, isEditable = true, status = {} }) => ( <div className="column is-narrow-mobile is-one-third-tablet is-one-quarter-desktop"> <div className={cn('card', 'is-fullwidth')}> <header className="card-header"> <p className="card-header-title"> {name} {isEditable && <EditSiteLink id={id} color="#69707a" />} </p> { status.type === 'conflict' ? <Link className="card-header-icon" style={{ color: 'red' }} to={`/site/${id}`} role="button" > <i className="fa fa-exclamation-triangle" /> </Link> : null } </header> <div className="card-content"> <div className="content"> <strong>URL:</strong> {url} <br /> <strong>Site ID:</strong> {id} <br /> <br /> <small>Last modified: {moment(date).fromNow()}</small> </div> </div> <footer className="card-footer"> <Link className="card-footer-item" to={`/site/${id}`} role="button"> <Icon code="sliders" small /> &nbsp;&nbsp;Configure </Link> <Link className="card-footer-item" to={`/site/${id}`} role="button" > <Icon code="cloud-upload" small /> &nbsp;&nbsp;Publish </Link> </footer> </div> </div> ); Site.propTypes = { name: React.PropTypes.string.isRequired, url: React.PropTypes.string.isRequired, id: React.PropTypes.string.isRequired, isEditable: React.PropTypes.bool, date: React.PropTypes.number.isRequired, status: React.PropTypes.shape({ type: React.PropTypes.string.isRequired, description: React.PropTypes.string, }), }; export default Site;