Skip to content

Commit 4290c3a

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
1 parent 39d0e36 commit 4290c3a

File tree

5 files changed

+44
-14
lines changed

5 files changed

+44
-14
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ const Dropzone: React.FC<DropzoneProps> = (props: DropzoneProps) => {
7070
fakeUploading,
7171
localization,
7272
disableScroll,
73+
footerClassName,
74+
headerClassName
7375
} = mergeProps(props, DropzonePropsDefault);
7476
//ref for ripple
7577
const dz_ui_ripple_ref = React.useRef<HTMLDivElement>(null);

src/components/dropzone/components/Dropzone/DropzoneProps.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,16 @@ export interface DropzoneProps extends OverridableProps {
202202
* and sets the Dropzone in a grid view
203203
*/
204204
disableScroll?: boolean;
205+
/**
206+
* The classname to override the header css styles
207+
* on .css or .sass files
208+
*/
209+
headerClassName?: string;
210+
/**
211+
* The classname to override the footer css styles
212+
* on .css or .sass files
213+
*/
214+
footerClassName?: string;
205215
}
206216

207217
export const DropzonePropsDefault: DropzoneProps = {
@@ -231,7 +241,7 @@ export const DropzonePropsDefault: DropzoneProps = {
231241
behaviour: "add",
232242
label: undefined,
233243
localization: "EN-en",
234-
disableScroll:undefined
244+
disableScroll: undefined
235245
};
236246

237247

src/components/dropzone/components/DropzoneFooter.tsx/DropzoneFooter.tsx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,22 @@ import {
77
import { DropzoneFooterProps } from "./DropzoneFooterProps";
88

99
const DropzoneFooter: React.FC<DropzoneFooterProps> = (
10-
props: DropzoneFooterProps
10+
props: DropzoneFooterProps,
1111
) => {
12-
const { accept, message, localization } = props;
12+
const { accept, message, localization, footerClassName } = props;
1313

1414
const DropzoneFooterLocalizer: LocalLabels = DropzoneLocalizerSelector(
15-
localization
15+
localization,
1616
).footer as LocalLabels;
1717
const accepCustomMessenger: FunctionLabel =
1818
DropzoneFooterLocalizer.acceptCustom as FunctionLabel;
1919
return (
20-
<div className="dz-ui-footer" onClick={undefined}>
20+
<div
21+
className={
22+
footerClassName ? `dz-ui-footer ${footerClassName}` : "dz-ui-footer"
23+
}
24+
onClick={undefined}
25+
>
2126
<>
2227
{message
2328
? message

src/components/dropzone/components/DropzoneFooter.tsx/DropzoneFooterProps.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,9 @@ export interface DropzoneFooterProps {
99
* only English and Spanish is supported
1010
*/
1111
localization?: Localization;
12+
/**
13+
* The classname to override the footer css styles
14+
* on .css or .sass files
15+
*/
16+
footerClassName?: string;
1217
}

src/components/dropzone/components/DropzoneHeader/DropzoneHeader.tsx

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,15 @@ export interface DropzoneHeaderProps {
3333
*/
3434
localization?: Localization;
3535
hideViewIcon?: boolean;
36+
/**
37+
* The classname to override the header css styles
38+
* on .css or .sass files
39+
*/
40+
headerClassName?: string;
3641
}
3742

3843
const DropzoneHeader: FC<DropzoneHeaderProps> = (
39-
props: DropzoneHeaderProps
44+
props: DropzoneHeaderProps,
4045
) => {
4146
const {
4247
maxFileSize,
@@ -51,10 +56,11 @@ const DropzoneHeader: FC<DropzoneHeaderProps> = (
5156
urlPresent,
5257
localization,
5358
hideViewIcon,
59+
headerClassName,
5460
} = props;
5561

5662
const DropzoneHeaderLocalizer: LocalLabels = DropzoneLocalizerSelector(
57-
localization
63+
localization,
5864
).header as LocalLabels;
5965

6066
const handleClean = () => {
@@ -77,7 +83,7 @@ const DropzoneHeader: FC<DropzoneHeaderProps> = (
7783

7884
<Upload color="#646c7f" onClick={handleStartUploading} />
7985
</>
80-
</Fragment>
86+
</Fragment>,
8187
);
8288
}
8389

@@ -88,7 +94,7 @@ const DropzoneHeader: FC<DropzoneHeaderProps> = (
8894
DropzoneHeaderLocalizer.maxSizeMessage as FunctionLabel;
8995
if (maxFileSize) {
9096
result.push(
91-
maxFileSizeMessenger(fileSizeFormater(maxFileSize))
97+
maxFileSizeMessenger(fileSizeFormater(maxFileSize)),
9298

9399
/* localization === "ES-es"
94100
? `Tam. máximo de archivo ${fileSizeFormater(maxFileSize)} | `
@@ -101,7 +107,7 @@ const DropzoneHeader: FC<DropzoneHeaderProps> = (
101107

102108
if (maxFiles) {
103109
result.push(
104-
validFileSizeMessenger(numberOfValidFiles as number, maxFiles)
110+
validFileSizeMessenger(numberOfValidFiles as number, maxFiles),
105111
/* localization === "ES-es"
106112
? `Archivos ${numberOfValidFiles}/${maxFiles} | Válidos: ${numberOfValidFiles} | `
107113
: `Files ${numberOfValidFiles}/${maxFiles} | Valid: ${numberOfValidFiles} | `, */
@@ -111,7 +117,7 @@ const DropzoneHeader: FC<DropzoneHeaderProps> = (
111117
//clean not valid files on click
112118
if (onClean) {
113119
result.push(
114-
<Clean color="#646c7f" onClick={handleClean} size="semi-medium" />
120+
<Clean color="#646c7f" onClick={handleClean} size="semi-medium" />,
115121
);
116122
}
117123

@@ -133,7 +139,7 @@ const DropzoneHeader: FC<DropzoneHeaderProps> = (
133139
color="#646c7f"
134140
/>
135141
)}
136-
</>
142+
</>,
137143
);
138144
}
139145

@@ -144,14 +150,16 @@ const DropzoneHeader: FC<DropzoneHeaderProps> = (
144150
//color="rgba(255,255,255,0.8)"
145151
onClick={() => onReset?.()}
146152
colorFill="rgba(255,255,255,0.8)"
147-
/>
153+
/>,
148154
);
149155
}
150156
return result;
151157
};
152158
return (
153159
<div
154-
className="dz-ui-header"
160+
className={
161+
headerClassName ? `dz-ui-header ${headerClassName}` : "dz-ui-header"
162+
}
155163
onClick={(e) => {
156164
e.stopPropagation();
157165
}}

0 commit comments

Comments
 (0)