Socket
Book a DemoInstallSign in
Socket

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

Package Overview
Dependencies
Maintainers
8
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

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

File upload component for Red Hat certified technology apps

latest
npmnpm
Version
0.3.4
Version published
Maintainers
8
Created
Source

@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

NameTypeDefaultDescription
namestring" "Adds a name to your component
labelstring" "Adds a title to your component
buttonMessagestring" "Adds a message to the upload button
fileuploadTypeFileuploadTypesFileuploadTypes.AVATAR or FileuploadTypes.LOGOFRAMEdepending upon the value it would either put the avatar component from patternfly or simply put a rectangular frame
uploadStateUploadStatesUploadStates.INITIAL or UploadStates.UPLOADING or UploadStates.DONEAdds or removes the spinner
removeMessagestring" "Adds the message for removing the uploaded file
fileTypesAllowedstring[][]checks for the added file types
maxSizenumbermax size of the file in MB you want to upload
uniqueIdnumberSets the unique id for the component
readonlybooleanAdds disabled styling and disables the button using the disabled html attribute
onChange(fileData: FileList) => voidA callback for when the file contents change.

License

MIT © shkale

FAQs

Package last updated on 03 Jan 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts