Permalink
Switch branches/tags
v2.2.0-alpha.00000000 v2.1.0-beta.20181015 v2.1.0-beta.20181008 v2.1.0-beta.20181001 v2.1.0-beta.20180924 v2.1.0-beta.20180917 v2.1.0-beta.20180910 v2.1.0-beta.20180904 v2.1.0-beta.20180827 v2.1.0-alpha.20180730 v2.1.0-alpha.20180702 v2.1.0-alpha.20180604 v2.1.0-alpha.20180507 v2.1.0-alpha.20180416 v2.1.0-alpha.00000000 v2.0.6 v2.0.6-rc.1 v2.0.5 v2.0.4 v2.0.3 v2.0.2 v2.0.1 v2.0.0 v2.0-rc.1 v2.0-beta.20180326 v2.0-beta.20180319 v2.0-beta.20180312 v2.0-beta.20180305 v2.0-alpha.20180212 v2.0-alpha.20180129 v2.0-alpha.20180122 v2.0-alpha.20180116 v2.0-alpha.20171218 v2.0-alpha.20171218-plus-left-join-fix v1.2-alpha.20171211 v1.2-alpha.20171204 v1.2-alpha.20171113 v1.2-alpha.20171026 v1.2-alpha.20170901 v1.1.9 v1.1.9-rc.1 v1.1.8 v1.1.7 v1.1.6 v1.1.5 v1.1.4 v1.1.3 v1.1.2 v1.1.1 v1.1.0 v1.1.0-rc.1 v1.1-beta.20170928 v1.1-beta.20170921 v1.1-beta.20170907 v1.1-alpha.20170817 v1.1-alpha.20170810 v1.1-alpha.20170803 v1.1-alpha.20170720 v1.1-alpha.20170713 v1.1-alpha.20170629 v1.1-alpha.20170622 v1.1-alpha.20170608 v1.1-alpha.20170601 v1.0.7 v1.0.6 v1.0.5 v1.0.4 v1.0.3 v1.0.2 v1.0.1 v1.0 v1.0-rc.3 v1.0-rc.2 v1.0-rc.1 v0.1-alpha beta-20170420 beta-20170413 beta-20170406 beta-20170330 beta-20170323 beta-20170309 beta-20170223 beta-20170216 beta-20170209 beta-20170126 beta-20170112 beta-20170105 beta-20161215 beta-20161208 beta-20161201 beta-20161110 beta-20161103 beta-20161027 beta-20161013 beta-20161006 beta-20160929 beta-20160915 beta-20160908 beta-20160829 beta-20160728
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
58 lines (52 sloc) 1.76 KB
import React from "react";
import _ from "lodash";
import { Link } from "react-router";
import { generateLocalityRoute } from "src/util/localities";
import { LocalityTier } from "src/redux/localities";
import { intersperse } from "src/util/intersperse";
import { getLocalityLabel } from "src/util/localities";
import { MAIN_BLUE } from "src/views/shared/colors";
import mapPinIcon from "!!raw-loader!assets/mapPin.svg";
import { trustIcon } from "src/util/trust";
import { CLUSTERVIZ_ROOT } from "src/routes/visualization";
interface BreadcrumbsProps {
tiers: LocalityTier[];
}
export class Breadcrumbs extends React.Component<BreadcrumbsProps> {
render() {
const paths = breadcrumbPaths(this.props.tiers);
return (
<div style={{ textTransform: "uppercase", fontWeight: "bold", letterSpacing: 1 }}>
<span
dangerouslySetInnerHTML={trustIcon(mapPinIcon)}
style={{ paddingRight: 5, position: "relative", top: 2 }}
/>
{intersperse(
paths.map((path, idx) => (
<span>
{idx === paths.length - 1
? getLocalityLabel(path)
: <Link
to={CLUSTERVIZ_ROOT + generateLocalityRoute(path)}
style={{ color: MAIN_BLUE, textDecoration: "none" }}
>
{getLocalityLabel(path)}
</Link>
}
</span>
)),
<span className="breadcrumb-sep"> &gt; </span>,
)}
</div>
);
}
}
function breadcrumbPaths(path: LocalityTier[]): LocalityTier[][] {
const pathSoFar: LocalityTier[] = [];
const output: LocalityTier[][] = [[]];
path.forEach((tier) => {
pathSoFar.push(tier);
output.push(_.clone(pathSoFar));
});
return output;
}