All files / packages/design-system/ui/components/welcome-mat WelcomeMatContentTrailhead.jsx

100% Statements 7/7
100% Branches 4/4
100% Functions 0/0
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90                          9x 9x 9x   9x               9x                                                                                                     2x           2x              
// 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 classNames from 'classnames';
import PropTypes from 'prop-types';
 
import { Button } from '../buttons/base/example';
import { ActionIcon } from '../icons/action/example';
import { ProgressBar } from '../progress-bar';
 
class WelcomeMatContentTrailhead extends React.Component {
  render() {
    const { complete, total, labelId } = this.props;
    const completePercent = complete / total * 100;
    const isComplete = completePercent === 100;
 
    const badgeProgressMessage = isComplete ? (
      <p>Cha-ching! You earned the badge.</p>
    ) : (
      <p>
        {complete}/{total} units completed
      </p>
    );
 
    return (
      <React.Fragment>
        <h2 id={labelId} className="slds-welcome-mat__info-title">
          The Lightning Experience is here!
        </h2>
        <p className="slds-welcome-mat__info-description slds-text-longform">
          Welcome to Lightning Experience, the modern, beautiful user experience
          from Salesforce. With a sales-and service-centric mindset, we focused
          on reinventing the desktop environment to better support your business
          processes.
        </p>
 
        <div
          className={classNames('slds-welcome-mat__info-progress', {
            'slds-welcome-mat__info-progress_complete': isComplete
          })}
        >
          <div className="slds-welcome-mat__info-badge-container">
            <img
              className="slds-welcome-mat__info-badge"
              src="/assets/images/welcome-mat/trailhead_badge@2x.png"
              width="50"
              height="50"
              alt=""
            />
            <ActionIcon
              title="Completed"
              assistiveText="Completed"
              className="slds-welcome-mat__icon-check slds-icon_xx-small"
              symbol="check"
            />
          </div>
          <p>
            <strong>Lightning Explorer</strong>
          </p>
          {badgeProgressMessage}
        </div>
 
        {isComplete ? (
          <Button isBrand>View on your Trailblazer Profile</Button>
        ) : (
          <ProgressBar
            value={completePercent}
            className="slds-progress-bar_circular"
          />
        )}
      </React.Fragment>
    );
  }
}
 
WelcomeMatContentTrailhead.propTypes = {
  complete: PropTypes.number.isRequired,
  total: PropTypes.number.isRequired,
  labelId: PropTypes.string.isRequired
};
 
WelcomeMatContentTrailhead.defaultProps = {
  complete: 0,
  total: 5,
  labelId: 'welcome-mat-label-1'
};
 
export default WelcomeMatContentTrailhead;