UNPKG

@salesforce/design-system-react

Version:

Salesforce Lightning Design System for React

52 lines (47 loc) 1.25 kB
/* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved */ /* Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */ import React from 'react'; import PropTypes from 'prop-types'; import { shape } from 'airbnb-prop-types'; const propTypes = { /** * Assistive text for percentage */ assistiveText: shape({ percentage: PropTypes.string }), /** * Percentage of progress completion, with range of [0, 100] */ value: PropTypes.string.isRequired }; /** * ProgressBar renders the blue/gray progress bar and dynamically updates its completion percentage */ class ProgressBar extends React.Component { render () { return ( <div className="slds-progress-bar slds-progress-bar_x-small" aria-valuemin="0" aria-valuemax="100" aria-valuenow={this.props.value} role="progressbar" tabIndex={0} > <span className="slds-progress-bar__value" style={{ width: `${this.props.value}%` }} > <span className="slds-assistive-text"> {this.props.assistiveText.percentage || `Progress: ${this.props.value}%`} </span> </span> </div> ); } } ProgressBar.displayName = 'ProgressBar'; ProgressBar.propTypes = propTypes; export default ProgressBar;