@stoked-ui/media-selector
TypeScript icon, indicating that this package has built-in type declarations

0.1.0 • Public • Published

file-selector

A small package for converting a DragEvent or file input to a list of File objects.

npm Tests codecov Open Collective Backers Open Collective Sponsors Contributor Covenant

Table of Contents

Installation

To install this package:

npm add @stoked-ui/media-selector
yarn add @stoked-ui/media-selector
pnpm add @stoked-ui/media-selector

Usage

ES6

Convert a DragEvent to File objects:

import FileWithPath from '@stoked-ui/media-selector/FileWithPath';
document.addEventListener('drop', async evt => {
    const files = await FileWithPath.from(evt);
    console.log(files);
});

Convert a change event for an input type file to File objects:

import FileWithPath from '@stoked-ui/media-selector/FileWithPath';
const input = document.getElementById('myInput');
input.addEventListener('change', async evt => {
    const files = await FileWithPath.from(evt);
    console.log(files);
});

Convert FileSystemFileHandle items to File objects:

import FileWithPath from '@stoked-ui/media-selector/FileWithPath';

// Open file picker
const handles = await window.showOpenFilePicker({multiple: true});
// Get the files
const files = await FileWithPath.from(handles);
console.log(files);

NOTE The above is experimental and subject to change.

CommonJS

Convert a DragEvent to File objects:

const {fromEvent} = require('@stoked-ui/media-selector');
document.addEventListener('drop', async evt => {
    const files = await fromEvent(evt);
    console.log(files);
});

Browser Support

Most browser support basic File selection with drag 'n' drop or file input:

For folder drop we use the FileSystem API which has very limited support:

Contribute

If you wish to contribute, please use the following guidelines:

Credits

Support

Backers

Support us with a monthly donation and help us continue our activities. [Become a backer]

Sponsors

Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i @stoked-ui/media-selector

Weekly Downloads

17

Version

0.1.0

License

none

Unpacked Size

9.46 kB

Total Files

4

Last publish

Collaborators

  • brian-stoker