Blame components/Wizard/AWSDestinationStep.js

Packit Service eebd6f
import React from "react";
Packit Service eebd6f
import { Button, Form, Popover, Text, TextInput } from "@patternfly/react-core";
Packit Service eebd6f
import { OutlinedQuestionCircleIcon } from "@patternfly/react-icons";
Packit Service eebd6f
import { FormattedMessage, defineMessages, injectIntl, intlShape } from "react-intl";
Packit Service eebd6f
import PropTypes from "prop-types";
Packit Service eebd6f
Packit Service eebd6f
const ariaLabels = defineMessages({
Packit Service eebd6f
  imageName: {
Packit Service eebd6f
    defaultMessage: "Image name help",
Packit Service eebd6f
  },
Packit Service eebd6f
  bucket: {
Packit Service eebd6f
    defaultMessage: "S3 Bucket help",
Packit Service eebd6f
  },
Packit Service eebd6f
  region: {
Packit Service eebd6f
    defaultMessage: "AWS region help",
Packit Service eebd6f
  },
Packit Service eebd6f
});
Packit Service eebd6f
Packit Service eebd6f
class AWSDestinationStep extends React.PureComponent {
Packit Service eebd6f
  render() {
Packit Service eebd6f
    const { formatMessage } = this.props.intl;
Packit Service eebd6f
    const { imageName, setImageName, uploadSettings, setUploadSettings } = this.props;
Packit Service eebd6f
Packit Service eebd6f
    return (
Packit Service eebd6f
      <>
Packit Service eebd6f
        <Text className="help-block cc-c-form__required-text">
Packit Service eebd6f
          <FormattedMessage defaultMessage="All fields are required." />
Packit Service eebd6f
        </Text>
Packit Service eebd6f
        <Form isHorizontal className="cc-m-wide-label">
Packit Service eebd6f
          
Packit Service eebd6f
            
Packit Service eebd6f
              <label htmlFor="image-name-input" className="pf-l-flex__item">
Packit Service eebd6f
                
Packit Service eebd6f
                  <FormattedMessage defaultMessage="Image name" />
Packit Service eebd6f
                
Packit Service eebd6f
                
Packit Service eebd6f
                  *
Packit Service eebd6f
                
Packit Service eebd6f
              </label>
Packit Service eebd6f
              
Packit Service eebd6f
                id="image-name-popover"
Packit Service eebd6f
                bodyContent={
Packit Service eebd6f
                  <>
Packit Service eebd6f
                    <FormattedMessage defaultMessage="Provide a file name to be used for the image file that will be uploaded." />
Packit Service eebd6f
                  
Packit Service eebd6f
                }
Packit Service eebd6f
                aria-label={formatMessage(ariaLabels.imageName)}
Packit Service eebd6f
              >
Packit Service eebd6f
                <Button variant="plain" aria-label={formatMessage(ariaLabels.imageName)}>
Packit Service eebd6f
                  <OutlinedQuestionCircleIcon id="popover-icon" />
Packit Service eebd6f
                </Button>
Packit Service eebd6f
              </Popover>
Packit Service eebd6f
            
Packit Service eebd6f
            
Packit Service eebd6f
              className="pf-c-form-control"
Packit Service eebd6f
              value={imageName}
Packit Service eebd6f
              type="text"
Packit Service eebd6f
              id="image-name-input"
Packit Service eebd6f
              onChange={setImageName}
Packit Service eebd6f
            />
Packit Service eebd6f
          
Packit Service eebd6f
          
Packit Service eebd6f
            
Packit Service eebd6f
              <label htmlFor="bucket-input" className="pf-l-flex__item">
Packit Service eebd6f
                Amazon S3 bucket
Packit Service eebd6f
                
Packit Service eebd6f
                  *
Packit Service eebd6f
                
Packit Service eebd6f
              </label>
Packit Service eebd6f
              
Packit Service eebd6f
                id="bucket-popover"
Packit Service eebd6f
                bodyContent={
Packit Service eebd6f
                  <>
Packit Service eebd6f
                    
Packit Service eebd6f
                      defaultMessage="
Packit Service eebd6f
                        Provide the S3 {bucket} name to which the image file will be uploaded before being imported into EC2. 
Packit Service eebd6f
                        The {bucket} must already exist in the Region where you want to import your image. You can find a list of {buckets} on the
Packit Service eebd6f
                        {bucketsPage} page in the {amazon} S3 storage service in the AWS console.
Packit Service eebd6f
                      "
Packit Service eebd6f
                      values={{
Packit Service eebd6f
                        bucket: "bucket",
Packit Service eebd6f
                        buckets: "buckets",
Packit Service eebd6f
                        bucketsPage: S3 buckets,
Packit Service eebd6f
                        amazon: "Amazon",
Packit Service eebd6f
                      }}
Packit Service eebd6f
                    />
Packit Service eebd6f
                  
Packit Service eebd6f
                }
Packit Service eebd6f
                aria-label={formatMessage(ariaLabels.bucket)}
Packit Service eebd6f
              >
Packit Service eebd6f
                <Button variant="plain" aria-label={formatMessage(ariaLabels.bucket)}>
Packit Service eebd6f
                  <OutlinedQuestionCircleIcon id="popover-icon" />
Packit Service eebd6f
                </Button>
Packit Service eebd6f
              </Popover>
Packit Service eebd6f
            
Packit Service eebd6f
            
Packit Service eebd6f
              className="pf-c-form-control"
Packit Service eebd6f
              value={uploadSettings.bucket}
Packit Service eebd6f
              type="text"
Packit Service eebd6f
              id="bucket-input"
Packit Service eebd6f
              name="bucket"
Packit Service eebd6f
              onChange={setUploadSettings}
Packit Service eebd6f
            />
Packit Service eebd6f
          
Packit Service eebd6f
          
Packit Service eebd6f
            
Packit Service eebd6f
              <label htmlFor="region-input" className="pf-l-flex__item">
Packit Service eebd6f
                
Packit Service eebd6f
                  <FormattedMessage defaultMessage="AWS region" />
Packit Service eebd6f
                
Packit Service eebd6f
                
Packit Service eebd6f
                  *
Packit Service eebd6f
                
Packit Service eebd6f
              </label>
Packit Service eebd6f
              
Packit Service eebd6f
                id="region-popover"
Packit Service eebd6f
                bodyContent={
Packit Service eebd6f
                  
Packit Service eebd6f
                    defaultMessage="Provide the AWS Region where you want to import your image. This must be the same region where the {bucket} exists."
Packit Service eebd6f
                    values={{
Packit Service eebd6f
                      bucket: "S3 bucket",
Packit Service eebd6f
                    }}
Packit Service eebd6f
                  />
Packit Service eebd6f
                }
Packit Service eebd6f
                aria-label={formatMessage(ariaLabels.region)}
Packit Service eebd6f
              >
Packit Service eebd6f
                <Button variant="plain" aria-label={formatMessage(ariaLabels.region)}>
Packit Service eebd6f
                  <OutlinedQuestionCircleIcon id="popover-icon" />
Packit Service eebd6f
                </Button>
Packit Service eebd6f
              </Popover>
Packit Service eebd6f
            
Packit Service eebd6f
            
Packit Service eebd6f
              className="pf-c-form-control"
Packit Service eebd6f
              value={uploadSettings.region}
Packit Service eebd6f
              type="text"
Packit Service eebd6f
              id="region-input"
Packit Service eebd6f
              name="region"
Packit Service eebd6f
              onChange={setUploadSettings}
Packit Service eebd6f
            />
Packit Service eebd6f
          
Packit Service eebd6f
        </Form>
Packit Service eebd6f
      
Packit Service eebd6f
    );
Packit Service eebd6f
  }
Packit Service eebd6f
}
Packit Service eebd6f
Packit Service eebd6f
AWSDestinationStep.propTypes = {
Packit Service eebd6f
  intl: intlShape.isRequired,
Packit Service eebd6f
  imageName: PropTypes.string,
Packit Service eebd6f
  setUploadSettings: PropTypes.func,
Packit Service eebd6f
  setImageName: PropTypes.func,
Packit Service eebd6f
  uploadSettings: PropTypes.object,
Packit Service eebd6f
};
Packit Service eebd6f
Packit Service eebd6f
AWSDestinationStep.defaultProps = {
Packit Service eebd6f
  imageName: "",
Packit Service eebd6f
  uploadSettings: {},
Packit Service eebd6f
  setImageName() {},
Packit Service eebd6f
  setUploadSettings() {},
Packit Service eebd6f
};
Packit Service eebd6f
Packit Service eebd6f
export default injectIntl(AWSDestinationStep);