11import React , { forwardRef , useContext , useEffect , useState } from 'react' ;
22import { IKContextBaseProps } from "../IKContext/props" ;
3- import { IKUploadProps } from "./props" ;
3+ import { IKUploadProps , OverrideValues } from "./props" ;
44import { ImageKitContext } from '../IKContext' ;
55import useImageKitComponent from '../ImageKitComponent' ;
66
@@ -50,6 +50,7 @@ const IKUpload = forwardRef<HTMLInputElement, IKUploadProps & IKContextBaseProps
5050 extensions,
5151 customMetadata,
5252 transformation,
53+ overrideParameters,
5354 ...restProps
5455 } = props ;
5556
@@ -60,6 +61,7 @@ const IKUpload = forwardRef<HTMLInputElement, IKUploadProps & IKContextBaseProps
6061 const urlEndpoint = props . urlEndpoint || contextOptions . urlEndpoint ;
6162
6263 if ( ! publicKey || publicKey . trim ( ) === "" ) {
64+ console . error ( "Missing publicKey" ) ;
6365 if ( onError && typeof onError === "function" ) {
6466 onError ( {
6567 message : "Missing publicKey"
@@ -69,6 +71,7 @@ const IKUpload = forwardRef<HTMLInputElement, IKUploadProps & IKContextBaseProps
6971 }
7072
7173 if ( ! authenticator ) {
74+ console . error ( "The authenticator function is not provided." ) ;
7275 if ( onError && typeof onError === "function" ) {
7376 onError ( {
7477 message : "The authenticator function is not provided."
@@ -78,6 +81,7 @@ const IKUpload = forwardRef<HTMLInputElement, IKUploadProps & IKContextBaseProps
7881 }
7982
8083 if ( typeof authenticator !== 'function' ) {
84+ console . error ( "The provided authenticator is not a function." ) ;
8185 if ( onError && typeof onError === "function" ) {
8286 onError ( {
8387 message : "The provided authenticator is not a function."
@@ -87,6 +91,7 @@ const IKUpload = forwardRef<HTMLInputElement, IKUploadProps & IKContextBaseProps
8791 }
8892
8993 if ( ! urlEndpoint || urlEndpoint . trim ( ) === "" ) {
94+ console . error ( "Missing urlEndpoint" ) ;
9095 if ( onError && typeof onError === "function" ) {
9196 onError ( {
9297 message : "Missing urlEndpoint"
@@ -110,6 +115,12 @@ const IKUpload = forwardRef<HTMLInputElement, IKUploadProps & IKContextBaseProps
110115 props . onUploadStart ( e ) ;
111116 }
112117
118+ let overrideValues : OverrideValues = { } ;
119+
120+ if ( props . overrideParameters && typeof props . overrideParameters === 'function' ) {
121+ overrideValues = props . overrideParameters ( file ) || { } ;
122+ }
123+
113124 const xhr = new XMLHttpRequest ( ) ;
114125 const progressCb = ( e : ProgressEvent < XMLHttpRequestEventTarget > ) => {
115126 if ( props . onUploadProgress && typeof props . onUploadProgress === 'function' ) {
@@ -121,25 +132,25 @@ const IKUpload = forwardRef<HTMLInputElement, IKUploadProps & IKContextBaseProps
121132
122133 var params = {
123134 file : file ,
124- fileName : fileName || file . name ,
125- useUniqueFileName,
126- tags,
127- folder,
128- isPrivateFile,
129- customCoordinates,
135+ fileName : overrideValues . fileName || fileName || file . name ,
136+ useUniqueFileName : overrideValues . useUniqueFileName || useUniqueFileName ,
137+ tags : overrideValues . tags || tags ,
138+ folder : overrideValues . folder || folder ,
139+ isPrivateFile : overrideValues . isPrivateFile || isPrivateFile ,
140+ customCoordinates : overrideValues . customCoordinates || customCoordinates ,
130141 responseFields,
131- extensions,
132- webhookUrl,
133- overwriteFile,
134- overwriteAITags,
135- overwriteTags,
136- overwriteCustomMetadata,
137- customMetadata,
142+ extensions : overrideValues . extensions || extensions ,
143+ webhookUrl : overrideValues . webhookUrl || webhookUrl ,
144+ overwriteFile : overrideValues . overwriteFile || overwriteFile ,
145+ overwriteAITags : overrideValues . overwriteAITags || overwriteAITags ,
146+ overwriteTags : overrideValues . overwriteTags || overwriteTags ,
147+ overwriteCustomMetadata : overrideValues . overwriteCustomMetadata || overwriteCustomMetadata ,
148+ customMetadata : overrideValues . customMetadata || customMetadata ,
138149 signature : '' ,
139150 expire : 0 ,
140151 token : '' ,
141152 xhr,
142- transformation,
153+ transformation : overrideValues . transformation || transformation ,
143154 } ;
144155
145156 const authPromise = authenticator ( ) ;
0 commit comments