5.1.0 • Published 1 year ago

@idot-digital/file-selector v5.1.0

Weekly downloads
-
License
UNLICENSED
Repository
-
Last release
1 year ago

@idot-digital/file-selector

Upload, delete, filter, and select files, using Material UI's framework

NPM JavaScript Style Guide

Install

npm install --save @idot-digital/file-selector
yarn add @idot-digital/file-selector

Usage

import React, { Component } from 'react';

import { createTheme, ThemeProvider } from '@material-ui/core';
import { SnackbarProvider } from 'notistack';

import { FileSelector, FileSelectorRaw, FileResponse, FileSelectorLinkSettings } from '@idot-digital/file-selector';

// Wrap ThemeProvider from Material UI around your app -- ability to tweak initial styles
// Wrap SnackbarProvider around your app -- ability to enqueue snackbars
const Index = () => {
  return (
    <ThemeProvider theme={createTheme()}>
      <SnackbarProvider preventDuplicate maxSnack={3}>
        <App />
      </SnackbarProvider>
    </ThemeProvider>
  );
};

const App = () => {
  const [open, setOpen] = React.useState(false);
  const [files, setFiles] = React.useState<string[]>([]); // Currently selected files (paths)

  return (
    <>
      <div onClick={() => setOpen(true)}>Open</div>
      <FileSelector
        // Fetch settings
        links={{
          get: {
            url: 'URL for specific request',
            method: 'Method for specific request',
            settings: {
              // Custom settings only for "get"
            },
          },
          rename: {
            //Settings as in get
          },
          delete: {
            //Settings as in get
          },
          upload: {
            //Settings as in get
          },

          // Next applies to all requests
          settings: {
            // General settings
          },
          url: 'General api URL',
          root: 'Root image URL',
        }}
        // Callback functions
        callback={(file) => console.log(file)}
        callbackDone={(files) => {
          console.log(files);
          setFiles(files.map((file) => file.path));
          setOpen(false);
        }}
        // Controlled prop to manage currently selected files
        pickedFiles={files}
        // Change link of previewed images in order to fetch low res variants
        previewImage={(filePath) => filePath.replace('...', '...')}
        // Material UI default dialog props
        open={open}
        onClose={() => setOpen(false)}
        // Custom props
        fullWidth
        maxWidth="xl"
      />
    </>
  );
};

License

UNLICENSED © @idot-digital

5.1.0

1 year ago

5.0.0

2 years ago

3.2.2

2 years ago

4.0.1

2 years ago

4.0.0

2 years ago

3.2.1

3 years ago

3.2.0

3 years ago

3.0.4

3 years ago

3.0.3

3 years ago

3.1.1

3 years ago

3.1.0

3 years ago

3.0.5

3 years ago

3.0.2

3 years ago

3.0.1

3 years ago

3.0.0

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.2.4

3 years ago

1.4.0

3 years ago

1.3.0

3 years ago

1.2.3

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.0.0

3 years ago