sprint-asia-custom-component 0.1.99 → 0.1.101
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +15 -8
- package/package.json +1 -1
- package/src/components/dropzone/uploadphoto/index.js +69 -69
- package/src/templates/index.js +15 -6
package/dist/index.js
CHANGED
|
@@ -26046,7 +26046,9 @@
|
|
|
26046
26046
|
onDrop,
|
|
26047
26047
|
maxFiles = 1,
|
|
26048
26048
|
selectedFile,
|
|
26049
|
-
error = ""
|
|
26049
|
+
error = "",
|
|
26050
|
+
disabled,
|
|
26051
|
+
layout = "box"
|
|
26050
26052
|
}) => {
|
|
26051
26053
|
const [errorMessage, setErrorMessage] = React.useState("");
|
|
26052
26054
|
const onDropRejected = rejectedFiles => {
|
|
@@ -26066,7 +26068,8 @@
|
|
|
26066
26068
|
},
|
|
26067
26069
|
noKeyboard: true,
|
|
26068
26070
|
maxSize: 5242881,
|
|
26069
|
-
onDropRejected
|
|
26071
|
+
onDropRejected,
|
|
26072
|
+
disabled
|
|
26070
26073
|
});
|
|
26071
26074
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
26072
26075
|
className: "w-full"
|
|
@@ -26077,16 +26080,20 @@
|
|
|
26077
26080
|
}, title), required && /*#__PURE__*/React__default["default"].createElement("p", {
|
|
26078
26081
|
className: "text-sm font-normal text-danger500 ml-1"
|
|
26079
26082
|
}, "*")), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
26080
|
-
className: "cursor-pointer"
|
|
26083
|
+
className: `${disabled ? "cursor-default" : "cursor-pointer"} w-fit`
|
|
26081
26084
|
}, /*#__PURE__*/React__default["default"].createElement("div", _extends$2({}, getRootProps({
|
|
26082
26085
|
className: "dropzone"
|
|
26083
26086
|
}), {
|
|
26084
|
-
|
|
26087
|
+
style: {
|
|
26088
|
+
width: layout === "box" ? "208px" : "347px",
|
|
26089
|
+
height: layout === "box" ? "208px" : "192px"
|
|
26090
|
+
},
|
|
26091
|
+
className: `bg-neutral20 rounded-lg ${disabled ? "border-0" : "border-2"} ${error ? "border-danger500" : "border-neutral50"} border-dashed`
|
|
26085
26092
|
}), /*#__PURE__*/React__default["default"].createElement("input", _extends$2({}, getInputProps(), {
|
|
26086
26093
|
required: required
|
|
26087
26094
|
})), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
26088
26095
|
className: "flex w-full h-full justify-center items-center text-center"
|
|
26089
|
-
},
|
|
26096
|
+
}, !selectedFile ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
26090
26097
|
className: "flex justify-center"
|
|
26091
26098
|
}, /*#__PURE__*/React__default["default"].createElement(PiPlus, {
|
|
26092
26099
|
size: 16,
|
|
@@ -26098,12 +26105,12 @@
|
|
|
26098
26105
|
}, errorMessage)) : typeof selectedFile === "string" ? /*#__PURE__*/React__default["default"].createElement("img", {
|
|
26099
26106
|
src: selectedFile,
|
|
26100
26107
|
alt: "Selected",
|
|
26101
|
-
className: "
|
|
26108
|
+
className: "object-contain rounded-lg w-full h-full"
|
|
26102
26109
|
}) : /*#__PURE__*/React__default["default"].createElement("img", {
|
|
26103
26110
|
src: URL.createObjectURL(selectedFile),
|
|
26104
26111
|
alt: "Selected",
|
|
26105
|
-
className: "
|
|
26106
|
-
}))))
|
|
26112
|
+
className: "object-contain rounded-lg w-full h-full"
|
|
26113
|
+
})))), error && /*#__PURE__*/React__default["default"].createElement("p", {
|
|
26107
26114
|
className: "text-danger500 text-xs mt-1"
|
|
26108
26115
|
}, error), /*#__PURE__*/React__default["default"].createElement("p", {
|
|
26109
26116
|
className: "text-xs text-neutral300 mt-1"
|
package/package.json
CHANGED
|
@@ -3,80 +3,80 @@ import { useDropzone } from "react-dropzone";
|
|
|
3
3
|
import { PiPlus } from "react-icons/pi";
|
|
4
4
|
|
|
5
5
|
const DropzoneUploadPhoto = ({
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
title = "Title Dropzone",
|
|
7
|
+
subtitle = "Format File PNG, JPEG, or JPG, Maximal File 5 MB",
|
|
8
|
+
required = false,
|
|
9
|
+
onDrop,
|
|
10
|
+
maxFiles = 1,
|
|
11
|
+
selectedFile,
|
|
12
|
+
error = "",
|
|
13
|
+
disabled,
|
|
14
|
+
layout = "box",
|
|
13
15
|
}) => {
|
|
14
|
-
|
|
16
|
+
const [errorMessage, setErrorMessage] = useState("");
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
const onDropRejected = (rejectedFiles) => {
|
|
19
|
+
const file = rejectedFiles[0];
|
|
20
|
+
if (file.errors[0]?.code === "file-too-large") {
|
|
21
|
+
setErrorMessage("Your file is too large, Max file size is 5 MB");
|
|
22
|
+
}
|
|
23
|
+
};
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
25
|
+
const { getRootProps, getInputProps } = useDropzone({
|
|
26
|
+
onDrop,
|
|
27
|
+
maxFiles,
|
|
28
|
+
accept: {
|
|
29
|
+
"image/*": [".jpeg", ".png", ".jpg"],
|
|
30
|
+
},
|
|
31
|
+
noKeyboard: true,
|
|
32
|
+
maxSize: 5242881,
|
|
33
|
+
onDropRejected,
|
|
34
|
+
disabled,
|
|
35
|
+
});
|
|
33
36
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
</>
|
|
58
|
-
) : (
|
|
59
|
-
typeof selectedFile === "string" ?
|
|
60
|
-
<img
|
|
61
|
-
src={selectedFile}
|
|
62
|
-
alt="Selected"
|
|
63
|
-
className="w-52 h-52 object-contain rounded-lg"
|
|
64
|
-
/>
|
|
65
|
-
:
|
|
66
|
-
<img
|
|
67
|
-
src={URL.createObjectURL(selectedFile)}
|
|
68
|
-
alt="Selected"
|
|
69
|
-
className="w-52 h-52 object-contain rounded-lg"
|
|
70
|
-
/>
|
|
71
|
-
)}
|
|
72
|
-
</div>
|
|
73
|
-
</div>
|
|
37
|
+
return (
|
|
38
|
+
<div className="w-full">
|
|
39
|
+
<div className="flex items-center">
|
|
40
|
+
<p className="text-black text-sm mb-1">{title}</p>
|
|
41
|
+
{required && <p className="text-sm font-normal text-danger500 ml-1">*</p>}
|
|
42
|
+
</div>
|
|
43
|
+
<div className={`${disabled ? "cursor-default" : "cursor-pointer"} w-fit`}>
|
|
44
|
+
<div
|
|
45
|
+
{...getRootProps({ className: "dropzone" })}
|
|
46
|
+
style={{
|
|
47
|
+
width: layout === "box" ? "208px" : "347px",
|
|
48
|
+
height: layout === "box" ? "208px" : "192px",
|
|
49
|
+
}}
|
|
50
|
+
className={`bg-neutral20 rounded-lg ${disabled ? "border-0" : "border-2"} ${
|
|
51
|
+
error ? "border-danger500" : "border-neutral50"
|
|
52
|
+
} border-dashed`}
|
|
53
|
+
>
|
|
54
|
+
<input {...getInputProps()} required={required} />
|
|
55
|
+
<div className="flex w-full h-full justify-center items-center text-center">
|
|
56
|
+
{!selectedFile ? (
|
|
57
|
+
<>
|
|
58
|
+
<div className="flex justify-center">
|
|
59
|
+
<PiPlus size={16} className="text-neutral300" />
|
|
74
60
|
</div>
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
61
|
+
<p className="text-sm text-neutral300 mt-2">Upload Photo</p>
|
|
62
|
+
{errorMessage && <p className="text-xs text-danger500">{errorMessage}</p>}
|
|
63
|
+
</>
|
|
64
|
+
) : typeof selectedFile === "string" ? (
|
|
65
|
+
<img src={selectedFile} alt="Selected" className="object-contain rounded-lg w-full h-full" />
|
|
66
|
+
) : (
|
|
67
|
+
<img
|
|
68
|
+
src={URL.createObjectURL(selectedFile)}
|
|
69
|
+
alt="Selected"
|
|
70
|
+
className="object-contain rounded-lg w-full h-full"
|
|
71
|
+
/>
|
|
72
|
+
)}
|
|
73
|
+
</div>
|
|
78
74
|
</div>
|
|
79
|
-
|
|
75
|
+
</div>
|
|
76
|
+
{error && <p className="text-danger500 text-xs mt-1">{error}</p>}
|
|
77
|
+
<p className="text-xs text-neutral300 mt-1">{subtitle}</p>
|
|
78
|
+
</div>
|
|
79
|
+
);
|
|
80
80
|
};
|
|
81
81
|
|
|
82
|
-
export default DropzoneUploadPhoto;
|
|
82
|
+
export default DropzoneUploadPhoto;
|
package/src/templates/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { useCallback } from "react";
|
|
2
2
|
import { useState, useEffect } from "react";
|
|
3
3
|
import Alert from "../components/alert";
|
|
4
4
|
import DangerButton from "../components/button/dangerbutton";
|
|
@@ -101,10 +101,14 @@ const Templates = () => {
|
|
|
101
101
|
|
|
102
102
|
const [currentImage, setCurrentImage] = useState(null);
|
|
103
103
|
|
|
104
|
-
const handleFileChange = (file) => {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
};
|
|
104
|
+
// const handleFileChange = (file) => {
|
|
105
|
+
// console.log(file);
|
|
106
|
+
// setCurrentImage(URL.createObjectURL(file));
|
|
107
|
+
// };
|
|
108
|
+
|
|
109
|
+
const handleFileChange = useCallback((acceptedFiles) => {
|
|
110
|
+
setCurrentImage(acceptedFiles[0]);
|
|
111
|
+
}, []);
|
|
108
112
|
|
|
109
113
|
const [data, setData] = useState([
|
|
110
114
|
{ id: 1, name: "John Doe", email: "john@example.com" },
|
|
@@ -1108,7 +1112,12 @@ const Templates = () => {
|
|
|
1108
1112
|
<DropzoneUploadFile title="Upload Your File" subtitle="Accepts PDF, JPEG, JPG. Max size 5 MB" required={true} />
|
|
1109
1113
|
|
|
1110
1114
|
<div className="m-9"></div>
|
|
1111
|
-
<DropzoneUploadPhoto
|
|
1115
|
+
<DropzoneUploadPhoto
|
|
1116
|
+
onDrop={handleFileChange}
|
|
1117
|
+
// disabled={true}
|
|
1118
|
+
// layout="rectangle"
|
|
1119
|
+
selectedFile={currentImage}
|
|
1120
|
+
/>
|
|
1112
1121
|
|
|
1113
1122
|
<div className="m-9"></div>
|
|
1114
1123
|
<p className="text-black font-bold text-2xl text-center py-2">Empty Data</p>
|