react-imagekit-hooks
v0.2.1
Published
This module offers react hooks to work with ImageKit platform
Downloads
383
Readme
react-imagekit-hooks
This module offers a set of hooks to work with ImageKit platorrm. It uses imagekit-javascript module under the hood. Make sure to read documentation for it.
Installation
Run the following command to install timer in your repository:
npm i react-imagekit-hooks
Usage
- Wrap your application by IKContextProvider
<IKContextProvider options={{
publickKey: '<YOUR_PUBLIC_KEY>',
urlEndpoint: 'URL_ENDPOINT',
authenticator: async () => ({
token: '<GENERATED_TOKEN>',
expire: '...',
signature: '...'
})
}}>
<App />
</IKContextProvider>
- Use one of the hooks:
useIKImage
oruseIKUpload
useIKImageSrc
Use this hook to build URL for an image available through ImageKit platform. This hook can generate both a URL for a preview and for an original image.
Options
- imageOptions - same options as you send to
imagekit.url
method.
Example
const image = useIKImageSrc({
imageOptions: {
path: "/my-image",
transformation: [
{
height: "300",
width: "250"
}
]
}
});
return <img src={image.src} />
useIKUpload
Use this hook to build an instance of image uploader that will upload image to ImageKit platform.
Options
- options - see here
- onStart - a callback function that is called right after upload was started and before authentication is complete
- onProgress - a callback function that is called whenever we have a progress in uploading a file
- onSuccess - a callback function that is called when upload completes successfully
- onError - a callback function that is called when upload fails
- onAbort - a callback function that is called after upload was aborted
Returns
- upload - a method to initiate background upload
- uploadSync - a method to initiate upload that returns Promise
- abort - a method to abort uploading process
- progress - a property that holds current progress
Example
const ikUpload = useIKUpload({
options: {
folder: `folder`,
fileName,
useUniqueFileName: true
}
});
const onSubmitCallback = useCallback(async (values) => {
if (values.image instanceof File) {
const result = await ikUpload.uploadAsync(values.image);
}
}, []);
Contribution guidelines
You are encouraged to contribute to this project as soon as you see any defects or issues.
Code Editor Configuration
This repository contains configuration for VSCode editor. It doesn't mean that you cannot use a different tool. Feel free to push configurations for your favourite code editor.
Commands
- To build :
npm run build
- To lint use:
npm run lint
- To initialize pre-commit hooks use:
npm run prepare
Workflow
Before you get started make sure that there is noone working on an issue you are going to address.
As a first step, clone the repository and run npm i && npm run prepare
command to install all dependencies and initialize pre-commit hooks.
Create a branch to work on your code changes.
Once you are done with coding, create pull request and get an approval.
Lastly, enjoy your changes.