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
102 lines (92 sloc) 2.64 KB
// Copyright 2018 The Cockroach Authors.
//
// Licensed under the Cockroach Community Licence (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://github.com/cockroachdb/cockroach/blob/master/licenses/CCL.txt
import React from "react";
import * as PathMath from "src/views/clusterviz/util/pathmath";
import {
BACKGROUND_BLUE,
DARK_BLUE,
LIGHT_TEXT_BLUE,
MAIN_BLUE,
} from "src/views/shared/colors";
import { Bytes } from "src/util/format";
const ARC_INNER_RADIUS = 56;
const ARC_WIDTH = 6;
const ARC_OUTER_RADIUS = ARC_INNER_RADIUS + ARC_WIDTH;
interface CapacityArcProps {
usedCapacity: number;
usableCapacity: number;
}
export class CapacityArc extends React.Component<CapacityArcProps> {
render() {
// Compute used percentage.
const usedCapacity = this.props.usedCapacity;
const capacity = this.props.usableCapacity;
const capacityUsedPct = capacity ? (usedCapacity / capacity * 100) : 0;
return (
<g>
<g transform="translate(90 115)">
{/* background arc */}
<path
fill={BACKGROUND_BLUE}
strokeLinecap="round"
d={PathMath.createArcPath(
ARC_INNER_RADIUS,
ARC_OUTER_RADIUS,
PathMath.arcAngleFromPct(0),
PathMath.arcAngleFromPct(1),
ARC_WIDTH,
)}
/>
{/* current value arc */}
<path
fill={MAIN_BLUE}
strokeLinecap="round"
d={PathMath.createArcPath(
ARC_INNER_RADIUS,
ARC_OUTER_RADIUS,
PathMath.arcAngleFromPct(0),
PathMath.arcAngleFromPct(capacityUsedPct / 100),
ARC_WIDTH,
)}
/>
</g>
{/* text inside arc */}
<text
fill={MAIN_BLUE}
fontFamily="Lato-Bold, Lato"
fontSize="34"
fontWeight="bold"
textAnchor="middle"
x="90"
y="110"
>
{Math.round(capacityUsedPct)}%
</text>
<text
fill={DARK_BLUE}
fontFamily="Lato-Bold, Lato"
fontSize="12"
fontWeight="bold"
letterSpacing="1.333"
textAnchor="middle"
x="90"
y="132"
>
CAPACITY
</text>
{/* labels at ends of arc */}
<text fill={MAIN_BLUE} x="17" y="156" textAnchor="center">
{Bytes(usedCapacity)}
</text>
<text fill={LIGHT_TEXT_BLUE} x="118" y="156" textAnchor="center">
{Bytes(capacity)}
</text>
</g>
);
}
}