0.1.4-a.0 • Published 3 months ago

@stoked-ui/media-selector v0.1.4-a.0

Weekly downloads
-
License
-
Repository
github
Last release
3 months ago

@stoked-ui/media-selector

Media handling utilities for modern web applications.

Installation

npm install @stoked-ui/media-selector
# or
yarn add @stoked-ui/media-selector
# or
pnpm add @stoked-ui/media-selector

Usage with Next.js

This package is compatible with Next.js but requires some configuration to work with Server Components. There are a few approaches for using it in a Next.js application:

Method 1: Use the client entrypoint

For client components, you can import directly from the client entrypoint:

'use client';
import { App, Stage, WebFile, MediaFile } from '@stoked-ui/media-selector/client';

Method 2: Use the Next.js configuration helper

Add the provided helper to your Next.js configuration:

// next.config.js
const withStokedUI = require('@stoked-ui/media-selector/next.config.js');

/** @type {import('next').NextConfig} */
const nextConfig = {};

module.exports = withStokedUI(nextConfig);

This will add the necessary configuration to transpile the package correctly.

Method 3: Mark components with 'use client'

If you need to use these components in your own client components, make sure to mark them with 'use client':

'use client';
import { App, Stage, MediaFile } from '@stoked-ui/media-selector';

API Documentation

This package provides utilities for handling media files including:

  • MediaFile - Base class for media file handling
  • App - Base application class
  • Stage - DOM manipulation utilities
  • WebFile - File handling utilities

For complete API documentation, see the generated docs or source files.

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

0.1.4-a.0

3 months ago

0.1.3

3 months ago

0.1.2

4 months ago

0.1.1

5 months ago

0.1.0

10 months ago