An open API service indexing awesome lists of open source software.

https://github.com/apideck-libraries/file-picker-js

Apideck FilePicker Modal for JavaScript projects
https://github.com/apideck-libraries/file-picker-js

Last synced: 3 months ago
JSON representation

Apideck FilePicker Modal for JavaScript projects

Awesome Lists containing this project

README

        

# FilePicker JS

A vanilla JavaScript library to embed the [Apideck FilePicker](https://www.apideck.com/samples/file-picker) in any web application.

**FilePicker JS** | [React FilePicker](https://github.com/apideck-libraries/file-picker) | [Vue FilePicker](https://github.com/apideck-libraries/vue-file-picker)

## Installation

### Package

```sh
npm install @apideck/file-picker-js
```

### Script

If you don't want to set up a build environment, you can get `@apideck/file-picker-js` from a CDN like unpkg.com and it will be globally available through the `window.FilePicker` object.

```html

```

## Prerequisites

Before opening the FilePicker modal with `@apideck/file-picker-js`, you need to create a Vault session from your backend using the Vault API or one of our [SDKs](https://docs.apideck.com/sdks). Find out more in the [docs](https://docs.apideck.com/apis/vault/reference#operation/sessionsCreate).

## Usage

Pass the JWT you got from the Vault session to `@apideck/file-picker-js` and provide an `onSelect` function that acts upon selection of a file:

```js
import { FilePicker } from '@apideck/file-picker-js';

FilePicker.open({
token: 'REPLACE_WITH_SESSION_TOKEN',
onSelect: file => console.log(file),
});
```

If you want to get notified when the modal opens and closes, you can provide the `onReady` and `onClose` options. You could also get notified when the consumer switches from integration by using the `onConnectionSelect` option.

```jsx
import { FilePicker } from '@apideck/file-picker-js';

FilePicker.open({
token: 'REPLACE_WITH_SESSION_TOKEN',
onSelect: file => console.log(file),
onClose: () => {
console.log('closed!');
},
onReady: () => {
console.log('ready!');
},
onConnectionSelect: connection => {
console.log(connection);
},
});
```

You can also provide a file through the `fileToSave` options that will force the FilePicker to go into "Upload" mode. This will allow the user to select the connector and folder that the file needs to get saved to.

```jsx
import { FilePicker } from '@apideck/file-picker-js';

FilePicker.open({
token: 'REPLACE_WITH_SESSION_TOKEN',
fileToSave: '',
});
```

### Properties

| Property | Type | Required | Default | Description |
| ------------------ | ------- | -------- | ------------------- | --------------------------------------------------------------------- |
| token | string | true | - | The JSON Web Token returned from the Create Session call |
| onSelect | event | false | - | The function that gets called when a file is selected |
| onConnectionSelect | event | false | - | The function that gets called when a connection is selected |
| title | string | false | Apideck File Picker | Title shown in the modal |
| subTitle | string | false | Select a file | Subtitle shown in the modal |
| showAttribution | boolean | false | true | Show "Powered by Apideck" in the backdrop of the modal backdrop |
| open | boolean | false | false | Opens the file picker if set to true |
| onClose | event | false | - | Function that gets called when the modal is closed |
| fileToSave | file | false | - | Forces "Upload" mode to select the folder to upload the provided file |