Site icon Filestack Blog

React-Filestack Package is Here – And You Will Love It!

react-filestack-logo

The first half of 2017 has been an exciting time for Filestack. In March, we launched the V3 File Picker to enthusiastic community feedback. Now, we are releasing a React Filestack package for our React lovers to easily adopt the V3 File Picker.

The new V3 File Picker offers fast uploads from cloud sources, a streamlined UI, and embed transformations to crop, resize, filter and otherwise edit images, and more. To learn more about what makes the V3 File Picker an awesome, end-to-end content management solution, see our post Filestack Launches File Picker V3.

From a web developer point of view, the V3  File Picker excels in many ways:

First of all, the client functions such as pick return promises which make the code suitable for async/await handlers. Secondly, the client filestack-js is now available through npm making it suitable for modular development with any modern front-end framework/library.

npm logo

Even more exciting, the react-filestack package is our new community-driven module that make the integration with React easier than ever. We don’t just welcome your PR but we are eager to take your suggestions in the open issues section.

In the next section I will show you the package in action!

A special thanks goes to zerocho who created the original package.

React-Filestack in Action

The component is available through npm command

npm install --save react-filestack

and can be imported via

import ReactFilestack from 'react-filestack'

So, we have a fully customizable React component that accepts props.

Let’s see an example.

Upload A File with Pick

First Attempt

Let’s say we want to let users upload pictures and log the Filestack response in the console.

This is what we need to pass as props:

Thus, the final code is a component with 4 props:

<ReactFilestack 
  apiKey={YOUR_API_KEY}
  mode={'pick'}
  onSuccess={(response) => console.log(response)}
  onError={(e) => console.log(e)}
  buttonText={'Pick File'}
/>

It does look very easy… But what if I told you there is an even faster way?

Optimized Solution

While apiKey is a required the latter ones are not and their default values are defined within /src/ReactFilestack.jsx:

static defaultProps = {
  ...
  onSuccess: result => console.log(result),
  onError: error => console.error(error),
  mode: 'pick',
  buttonText: 'Pick file',
  ...
}

Their values are exactly what we are looking for so we can simply achieve the same result by writing:

<ReactFilestack apiKey={YOUR_API_KEY} />

Props List

If you are curious about all the props available here you can find the full list:

Exit mobile version