colouring-montreal/app/src/frontend/legend.js

160 lines
4.8 KiB
JavaScript
Raw Normal View History

2018-11-29 17:00:53 -05:00
import React from 'react';
2018-09-10 07:41:00 -04:00
2018-10-02 16:47:59 -04:00
import './legend.css';
2018-09-11 15:59:37 -04:00
2018-10-04 17:50:33 -04:00
const LEGEND_CONFIG = {
2018-12-03 04:35:14 -05:00
location: {
title: "Location",
2019-01-22 16:40:35 -05:00
description: "% data collected",
2018-12-03 04:35:14 -05:00
elements: [
2019-01-22 16:46:07 -05:00
{ color: '#084081', text: '≥80%' },
{ color: '#0868ac', text: '6080%' },
{ color: '#43a2ca', text: '4060%' },
{ color: '#7bccc4', text: '2040%' },
{ color: '#bae4bc', text: '<20%' }
2018-12-03 04:35:14 -05:00
]
},
age: {
title: "Age",
elements: [
2018-11-29 17:00:53 -05:00
{ color: '#f0eaba', text: '≥2000' },
{ color: '#fae269', text: '19802000' },
{ color: '#fbaf27', text: '19601980' },
{ color: '#e6711d', text: '19401960' },
{ color: '#d73d3a', text: '19201940' },
{ color: '#ba221c', text: '19001920' },
{ color: '#bb859b', text: '18801900' },
{ color: '#8b3654', text: '18601880' },
{ color: '#8f5385', text: '18401860' },
{ color: '#56619b', text: '18201840' },
{ color: '#6793b2', text: '18001820' },
{ color: '#83c3b3', text: '17801800' },
{ color: '#adc88f', text: '17601780' },
{ color: '#83a663', text: '17401760' },
{ color: '#77852d', text: '17201740' },
{ color: '#69814e', text: '17001720' },
{ color: '#d0c291', text: '16801700' },
{ color: '#918158', text: '16601680' },
{ color: '#7a5732', text: '<1660' },
2018-12-03 04:35:14 -05:00
]
},
size: {
title: "Number of storeys",
2018-12-03 04:35:14 -05:00
elements: [
{ color: '#ffffcc', text: '≥40' },
{ color: '#fed976', text: '2039' },
{ color: '#fd8d3c', text: '10-19' },
{ color: '#e31a1c', text: '6-9' },
{ color: '#800026', text: '1-5' },
2018-12-03 04:35:14 -05:00
]
},
like: {
title: "Like Me",
elements: [
2018-12-05 15:30:29 -05:00
{ color: "#bd0026", text: '👍👍👍 ≥10' },
{ color: "#e31a1c", text: '👍👍 510' },
{ color: "#fc4e2a", text: '👍 4' },
{ color: "#fd8d3c", text: '👍 3' },
{ color: "#feb24c", text: '👍 2' },
{ color: "#fed976", text: '👍 1' },
2018-12-03 04:35:14 -05:00
]
},
use: {
title: "Use",
elements: []
},
ownership: {
title: "Ownership",
2018-12-03 04:35:14 -05:00
elements: []
},
construction: {
title: "Construction",
elements: []
},
team: {
title: "Team",
elements: []
},
sustainability: {
title: "Sustainability",
elements: []
},
greenery: {
title: "Greenery",
elements: []
},
planning: {
title: "Planning",
elements: [
{ color: "#73ebaf", text: 'within conservation area' },
]
2018-12-03 04:35:14 -05:00
},
demolition: {
title: "Demolition",
elements: []
}
2018-10-04 17:50:33 -04:00
};
const Legend = (props) => {
2018-12-03 04:35:14 -05:00
const details = LEGEND_CONFIG[props.slug];
const title = details.title;
const elements = details.elements;
2018-10-04 17:50:33 -04:00
return (
2018-12-03 04:35:14 -05:00
<div className="map-legend">
2019-01-22 16:23:35 -05:00
<div className="logo">
<div className="grid">
<div className="row">
<div className="cell"></div>
<div className="cell"></div>
<div className="cell"></div>
<div className="cell"></div>
</div>
<div className="row">
<div className="cell"></div>
<div className="cell"></div>
<div className="cell"></div>
<div className="cell"></div>
</div>
<div className="row">
<div className="cell"></div>
<div className="cell"></div>
<div className="cell"></div>
<div className="cell"></div>
</div>
</div>
<h3 className="h3 logotype">
<span>Colouring</span>
<span>London</span>
</h3>
</div>
2019-04-28 10:57:30 -04:00
<h4 className="h4">{ title }</h4>
{
details.description?
<p>{details.description}</p>
: null
}
{
elements.length?
(<ul className="data-legend">
{
elements.map((data_item) => (
<LegendItem {...data_item} key={data_item.color} />
))
}
</ul>)
: (<p className="data-intro">Coming soon</p>)
}
2018-12-03 04:35:14 -05:00
</div>
2018-10-04 17:50:33 -04:00
);
}
const LegendItem = (props) => (
<li>
<span className="key" style={ { background: props.color } }>-</span>
{ props.text }
</li>
2018-09-10 16:49:58 -04:00
);
2018-09-10 07:41:00 -04:00
export default Legend;