bulma-dashboard-theme-worona
Version:
Theme for the Worona Dashboard.
69 lines (66 loc) • 2.08 kB
JSX
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 />
Configure
</Link>
<Link
className="card-footer-item"
to={`/site/${id}`}
role="button"
>
<Icon code="cloud-upload" small />
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;