@rhc-shared-components/file-upload-component
TypeScript icon, indicating that this package has built-in type declarations

0.2.5 • Public • Published

@rhc-shared-components/file-upload-component

File upload component for Red Hat Certified Apps

NPM JavaScript Style Guide

Install

yarn add @rhc-shared-components/file-upload-component

Usage

import React from 'react';
import {
  FileUploadComponent,
  FileUploadFormComponent,
  FileuploadTypes,
  UploadSates
} from '@rhc-shared-components/file-upload-component';
import avatarImg from './assets/avatar_image.svg';
import { Grid, GridItem } from '@patternfly/react-core';
import { Formik } from 'formik';

const App = () => {
  const [fileUrl, setFileUrl] = React.useState('');
  const FieldName = 'upload file';
  const onchange = (fileData: any) => {
    const data = fileData[0];
    const reader = new FileReader();
    reader.onload = (e: any) => {
      setFileUrl(e.target.result);
    };
    reader.readAsDataURL(data);
  };
  return (
    <Grid>
      <GridItem>
        <FileUploadComponent
          name={'logo.url'}
          label='File Upload component'
          buttonMessage='Upload thumbnail image'
          popoverHeading={'Logo best practices'}
          popoverMessage={
            'If you have multiple logo format, we recommend use a logo with transparent background, no border, and square versus rectangular shape. '
          }
          fileTypesAllowed={['svg', 'png']}
          removeMessage={'Remove logo'}
          maxSize={5}
          readonly={false}
          uniqueId={'fm'}
          fileuploadType={FileuploadTypes.AVATAR}
          uploadState={UploadSates.INITIAL}
          avatarImg={avatarImg}
          fileUrl={fileUrl}
          onChange={(fileData: any) => onchange(fileData)}
        />
      </GridItem>
      <GridItem>
        <Formik
          initialValues={{
            [FieldName]: '<h1>Hello world</h1>'
          }}
          enableReinitialize={true}
          onSubmit={() => {
          }}
        >
          <FileUploadFormComponent
            name={FieldName}
            label='File Upload Component with Formik'
            helperText={'This is a test description'}
            isRequired={true}
            fileuploadType={FileuploadTypes.AVATAR}
            uploadState={UploadSates.INITIAL}
            avatarImg={avatarImg}
            fileUrl={fileUrl}
            onChange={(fileData: any) => onchange(fileData)}
          />
        </Formik>
      </GridItem>
    </Grid>
  );
};

export default App;

Props

Name Type Default Description
name string " " Adds a name to your component
label string " " Adds a title to your component
buttonMessage string " " Adds a message to the upload button
fileuploadType FileuploadTypes FileuploadTypes.AVATAR or FileuploadTypes.LOGOFRAME depending upon the value it would either put the avatar component from patternfly or simply put a rectangular frame
uploadState UploadStates UploadStates.INITIAL or UploadStates.UPLOADING or UploadStates.DONE Adds or removes the spinner
removeMessage string " " Adds the message for removing the uploaded file
fileTypesAllowed string[] [] checks for the added file types
maxSize number max size of the file in MB you want to upload
uniqueId number Sets the unique id for the component
readonly boolean Adds disabled styling and disables the button using the disabled html attribute
onChange (fileData: FileList) => void A callback for when the file contents change.

License

MIT © shkale

Readme

Keywords

none

Package Sidebar

Install

npm i @rhc-shared-components/file-upload-component

Weekly Downloads

12

Version

0.2.5

License

MIT

Unpacked Size

44.2 kB

Total Files

11

Last publish

Collaborators

  • eyevana
  • kipatil-1
  • shkale
  • bdone
  • gkr-redhat