Skip to content

Commit 20c4f34

Browse files
committed
[FEAT]: Add headerClassName and footerClassName for overriding css styles on header and footer in dropzone component. Added due to feature request on issue #514. ALso updated version to 6.7.20
1 parent 7e10875 commit 20c4f34

File tree

5 files changed

+27
-24
lines changed

5 files changed

+27
-24
lines changed

build/index.es.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/index.es.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/index.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/index.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components/dropzone/components/Dropzone/Dropzone.tsx

+23-20
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
7171
localization,
7272
disableScroll,
7373
footerClassName,
74-
headerClassName
74+
headerClassName,
7575
} = mergeProps(props, DropzonePropsDefault);
7676
//ref for ripple
7777
const dz_ui_ripple_ref = React.useRef<HTMLDivElement>(null);
@@ -88,7 +88,7 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
8888
const output: FileValidated[] = fileListvalidator(
8989
fileList,
9090
remainingValids,
91-
localValidator
91+
localValidator,
9292
);
9393
onChange?.(output);
9494
}
@@ -111,7 +111,8 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
111111
const [localMessage, setLocalMessage] = React.useState<string>("");
112112

113113
//ClassName for dynamic style
114-
const [onUploadingStart, setOnUploadingStart] = React.useState<boolean>(false);
114+
const [onUploadingStart, setOnUploadingStart] =
115+
React.useState<boolean>(false);
115116
// const [queueFiles, setQueueFiles] = React.useState<FileValidated[]>([]);
116117
// const offset:number= header && footer? 50: (!header && footer?23:(header && !footer?22:0)) ;
117118

@@ -120,7 +121,7 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
120121
backgroundColor,
121122
disableScroll ? undefined : maxHeight,
122123
minHeight,
123-
header && footer ? 50 : !header && footer ? 23 : header && !footer ? 22 : 0
124+
header && footer ? 50 : !header && footer ? 23 : header && !footer ? 22 : 0,
124125
);
125126
const finalClassName: string = `dropzone-ui${classNameCreated}${
126127
isDragging ? ` drag` : ``
@@ -166,7 +167,7 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
166167
* @param files
167168
*/
168169
const fakeUpload = (
169-
file: FileValidated
170+
file: FileValidated,
170171
): Promise<UploadPromiseAxiosResponse> => {
171172
return new Promise((resolve, reject) => {
172173
setTimeout(() => {
@@ -212,7 +213,7 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
212213
const uploadFiles = async (files: FileValidated[]) => {
213214
const totalNumber = files.length;
214215
const missingUpload = files.filter(
215-
(x) => x.valid && x.uploadStatus !== "success"
216+
(x) => x.valid && x.uploadStatus !== "success",
216217
).length;
217218
let totalRejected: number = 0;
218219
let currentCountUpload: number = 0;
@@ -222,7 +223,7 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
222223
setOnUploadingStart(true);
223224
if (missingUpload > 0 && url) {
224225
setLocalMessage(
225-
uploadingMessenger(`${missingUpload}/${totalNumber}`)
226+
uploadingMessenger(`${missingUpload}/${totalNumber}`),
226227
/* localization === "ES-es"
227228
? `Subiendo ${missingUpload}/${totalNumber} archivos`
228229
: `uploading ${missingUpload}/${totalNumber} files`, */
@@ -241,14 +242,14 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
241242
let serverResponses: FileDuiResponse[] = [];
242243
onUploadStart?.(
243244
uploadStartFiles.filter(
244-
(f) => f.uploadStatus === UPLOADSTATUS.uploading
245-
)
245+
(f) => f.uploadStatus === UPLOADSTATUS.uploading,
246+
),
246247
);
247248
for (let i = 0; i < uploadStartFiles.length; i++) {
248249
let currentFile: FileValidated = uploadStartFiles[i];
249250
if (currentFile.uploadStatus === UPLOADSTATUS.uploading) {
250251
setLocalMessage(
251-
uploadingMessenger(`${++currentCountUpload}/${missingUpload}`)
252+
uploadingMessenger(`${++currentCountUpload}/${missingUpload}`),
252253
);
253254

254255
const { serverResponse, uploadedFile }: UploadPromiseAxiosResponse =
@@ -277,14 +278,14 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
277278
const finishUploadMessenger: FunctionLabel =
278279
DropzoneLocalizer.uploadFinished as FunctionLabel;
279280
setLocalMessage(
280-
finishUploadMessenger(missingUpload - totalRejected, totalRejected)
281+
finishUploadMessenger(missingUpload - totalRejected, totalRejected),
281282
);
282283
setTimeout(() => {
283284
setOnUploadingStart(false);
284285
}, 2300);
285286
} else {
286287
setLocalMessage(
287-
DropzoneLocalizer.noFilesMessage as string
288+
DropzoneLocalizer.noFilesMessage as string,
288289
/* localization === "ES-es"
289290
? `No hay archivos válidos pendientes por subir`
290291
: `There is not any missing valid file for uploading`, */
@@ -317,7 +318,7 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
317318
* @param evt
318319
*/
319320
const kamui: React.DragEventHandler<HTMLDivElement> = async (
320-
evt: React.DragEvent<HTMLDivElement>
321+
evt: React.DragEvent<HTMLDivElement>,
321322
): Promise<void> => {
322323
evt.stopPropagation();
323324
evt.preventDefault();
@@ -335,7 +336,7 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
335336
const output: FileValidated[] = fileListvalidator(
336337
fileList,
337338
behaviour === "replace" ? maxFiles || Infinity : remainingValids,
338-
localValidator
339+
localValidator,
339340
);
340341
if (!disableRipple) {
341342
createRippleFromElement(dz_ui_ripple_ref.current, evt, color as string);
@@ -346,7 +347,7 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
346347
};
347348

348349
const handleOnChangeInput: React.ChangeEventHandler<HTMLInputElement> = (
349-
evt: React.ChangeEvent<HTMLInputElement>
350+
evt: React.ChangeEvent<HTMLInputElement>,
350351
): void => {
351352
if (onUploadingStart) {
352353
return;
@@ -360,7 +361,7 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
360361
const output: FileValidated[] = fileListvalidator(
361362
fileList,
362363
behaviour === "replace" ? maxFiles || Infinity : remainingValids,
363-
localValidator
364+
localValidator,
364365
);
365366
// Clean input element to trigger onChange event on input
366367
let element: HTMLInputElement | null = inputRef.current;
@@ -375,7 +376,7 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
375376
const fileListvalidator = (
376377
preValidatedFiles: FileList,
377378
remainingValids: number,
378-
localValidator: FileValidator
379+
localValidator: FileValidator,
379380
): FileValidated[] => {
380381
const output: FileValidated[] = [];
381382
let countdown: number = remainingValids;
@@ -412,23 +413,23 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
412413
}
413414
};
414415
const handleDragEnter: React.DragEventHandler<HTMLDivElement> = (
415-
evt: React.DragEvent<HTMLDivElement>
416+
evt: React.DragEvent<HTMLDivElement>,
416417
): void => {
417418
evt.stopPropagation();
418419
evt.preventDefault();
419420
evt.dataTransfer.dropEffect = "link";
420421
setIsDragging(true);
421422
};
422423
const handleDragLeave: React.DragEventHandler<HTMLDivElement> = (
423-
evt: React.DragEvent<HTMLDivElement>
424+
evt: React.DragEvent<HTMLDivElement>,
424425
): void => {
425426
evt.stopPropagation();
426427
evt.preventDefault();
427428
evt.dataTransfer.dropEffect = "link";
428429
setIsDragging(false);
429430
};
430431
function handleClick<T extends HTMLDivElement>(
431-
e: React.MouseEvent<T, MouseEvent>
432+
e: React.MouseEvent<T, MouseEvent>,
432433
): void {
433434
let referenceInput = inputRef.current;
434435
referenceInput?.click();
@@ -460,6 +461,7 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
460461
<div className="dropzone-ui-ripple" ref={dz_ui_ripple_ref}></div>
461462
{header && (
462463
<DropzoneHeader
464+
headerClassName={headerClassName}
463465
maxFileSize={maxFileSize}
464466
numberOfValidFiles={files.filter((x) => x.valid).length}
465467
onReset={!onUploadingStart ? handleReset : undefined}
@@ -503,6 +505,7 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
503505

504506
{footer && (
505507
<DropzoneFooter
508+
footerClassName={footerClassName}
506509
accept={accept}
507510
message={onUploadingStart ? localMessage : undefined}
508511
localization={localization}

0 commit comments

Comments
 (0)