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.
Run the following command to install timer in your repository:
npm i react-imagekit-hooks
- 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
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.
- imageOptions - same options as you send to
imagekit.url
method.
const image = useIKImageSrc({
imageOptions: {
path: "/my-image",
transformation: [
{
height: "300",
width: "250"
}
]
}
});
return <img src={image.src} />
Use this hook to build an instance of image uploader that will upload image to ImageKit platform.
- 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
- 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
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);
}
}, []);
You are encouraged to contribute to this project as soon as you see any defects or issues.
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.
- To build :
npm run build
- To lint use:
npm run lint
- To initialize pre-commit hooks use:
npm run prepare
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.