import * as React from "react"; import * as Constants from "~/common/constants"; import * as Strings from "~/common/strings"; import * as System from "~/components/system"; import { css } from "@emotion/react"; // NOTE(jim): Consolidate if used elsewhere on the client (Not node_common) const MAX_IN_BYTES = 10737418240 * 4; const STYLES_CONTAINER = css` border-radius: 4px; box-shadow: 0 0 0 1px ${Constants.system.lightBorder} inset, 0 0 40px 0 ${Constants.system.shadow}; padding: 32px; max-width: 100%; width: 100%; `; const STYLES_DATA = css` width: 100%; display: flex; align-items: center; height: 16px; border-radius: 3px; background-color: ${Constants.system.foreground}; overflow: hidden; `; const STYLES_DATA_METER = css` flex-shrink: 0; height: 16px; background-color: ${Constants.system.brand}; `; const STYLES_ROW = css` display: flex; align-items: flex-end; justify-content: space-between; font-family: ${Constants.font.code}; color: ${Constants.system.darkGray}; font-size: 10px; margin-top: 2px; text-transform: uppercase; `; const STYLES_STATS_ROW = css` display: flex; align-items: flex-end; justify-content: space-between; font-family: ${Constants.font.text}; color: ${Constants.system.black}; font-size: 12px; text-transform: uppercase; `; const STYLES_LEFT = css` min-width: 10%; width: 100% ""; `; const STYLES_RIGHT = css` flex-shrink: 0; `; const STYLES_TITLE = css` font-family: ${Constants.font.medium}; font-size: ${Constants.typescale.lvl1}; display: block; margin-bottom: 4px; overflow-wrap: break-word; `; export const DataMeterBar = (props) => { const percentage = props.bytes / props.maximumBytes; return (
{props.leftLabel}
{props.rightLabel}
); }; export const DataMeter = (props) => { return (
{Strings.bytesToSize(props.stats.bytes)} of{" "} {Strings.bytesToSize(props.stats.maximumBytes)} used
); }; export default DataMeter;