@churchapps/apphelper 0.4.20 → 0.4.22
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageEditor.d.ts","sourceRoot":"","sources":["../../src/components/ImageEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ImageEditor.d.ts","sourceRoot":"","sources":["../../src/components/ImageEditor.tsx"],"names":[],"mappings":"AAKA,OAAO,uDAAuD,CAAC;AAK/D,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,2CAsIvC"}
|
|
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useState, useEffect, useRef, Suspense, lazy } from "react";
|
|
4
4
|
import { InputBox, SmallButton, Loading } from ".";
|
|
5
5
|
import { Locale } from "../helpers";
|
|
6
|
+
import "react-cropper/node_modules/cropperjs/dist/cropper.css";
|
|
6
7
|
// Lazy load the Cropper component
|
|
7
8
|
const Cropper = lazy(() => import("react-cropper").then(module => ({ default: module.default })));
|
|
8
9
|
export function ImageEditor(props) {
|
|
@@ -18,14 +19,17 @@ export function ImageEditor(props) {
|
|
|
18
19
|
if (e.target) {
|
|
19
20
|
files = e.target.files;
|
|
20
21
|
}
|
|
22
|
+
if (!files || files.length === 0)
|
|
23
|
+
return;
|
|
21
24
|
const reader = new FileReader();
|
|
22
25
|
reader.onload = () => {
|
|
23
26
|
const url = reader.result.toString();
|
|
24
27
|
setPhotoSrc(url);
|
|
25
|
-
setCroppedImageDataUrl(
|
|
26
|
-
setTimeout(selectDefaultCropZone, 500);
|
|
28
|
+
setCroppedImageDataUrl("");
|
|
27
29
|
};
|
|
28
30
|
reader.readAsDataURL(files[0]);
|
|
31
|
+
// Clear the input value to allow re-uploading the same file
|
|
32
|
+
e.target.value = "";
|
|
29
33
|
};
|
|
30
34
|
const selectDefaultCropZone = () => {
|
|
31
35
|
const imageElement = cropperRef?.current;
|
|
@@ -82,6 +86,8 @@ export function ImageEditor(props) {
|
|
|
82
86
|
useEffect(() => { setPhotoSrc(props.photoUrl); }, [props.photoUrl]);
|
|
83
87
|
return (_jsx(InputBox, { id: "cropperBox", headerIcon: "", headerText: props.title, ariaLabelDelete: "deletePhoto", saveText: Locale.label("common.update"), saveFunction: handleSave, cancelFunction: props.onCancel, deleteFunction: (!props.hideDelete) && handleDelete, headerActionContent: _jsxs("div", { children: [_jsx("input", { type: "file", onChange: handleUpload, id: "fileUpload", accept: "image/*", style: { display: "none" } }), _jsx(SmallButton, { icon: "upload", text: "Upload", onClick: () => {
|
|
84
88
|
document.getElementById("fileUpload").click();
|
|
85
|
-
} })] }), children: _jsx(Suspense, { fallback: _jsx(Loading, {}), children: _jsx(Cropper, { ref: cropperRef, src: photoSrc, style: { height: 240, width: "100%" }, aspectRatio: props.aspectRatio, guides: false, crop: handleCrop
|
|
89
|
+
} })] }), children: _jsx(Suspense, { fallback: _jsx(Loading, {}), children: _jsx(Cropper, { ref: cropperRef, src: photoSrc, style: { height: 240, width: "100%" }, aspectRatio: props.aspectRatio, guides: false, crop: handleCrop, autoCropArea: 1, viewMode: 1, responsive: true, restore: false, checkOrientation: false, background: false, ready: () => {
|
|
90
|
+
setTimeout(selectDefaultCropZone, 100);
|
|
91
|
+
} }, photoSrc) }) }));
|
|
86
92
|
}
|
|
87
93
|
//# sourceMappingURL=ImageEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageEditor.js","sourceRoot":"","sources":["../../src/components/ImageEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ImageEditor.js","sourceRoot":"","sources":["../../src/components/ImageEditor.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@churchapps/apphelper",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.22",
|
|
4
4
|
"description": "Library of helper functions for React and NextJS ChurchApps",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
},
|
|
28
28
|
"homepage": "https://github.com/LiveChurchSolutions/AppHelper#readme",
|
|
29
29
|
"peerDependencies": {
|
|
30
|
-
"react": "^18.0.0",
|
|
31
|
-
"react-dom": "^18.0.0",
|
|
30
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
31
|
+
"react-dom": "^18.0.0 || ^19.0.0",
|
|
32
32
|
"react-router-dom": "^7.6.3"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import React, { useState, useEffect, useRef, Suspense, lazy } from "react";
|
|
4
4
|
import { InputBox, SmallButton, Loading } from ".";
|
|
5
5
|
import { Locale } from "../helpers";
|
|
6
|
+
import "react-cropper/node_modules/cropperjs/dist/cropper.css";
|
|
6
7
|
|
|
7
8
|
// Lazy load the Cropper component
|
|
8
9
|
const Cropper = lazy(() => import("react-cropper").then(module => ({ default: module.default })));
|
|
@@ -34,14 +35,18 @@ export function ImageEditor(props: Props) {
|
|
|
34
35
|
if (e.target) {
|
|
35
36
|
files = e.target.files;
|
|
36
37
|
}
|
|
38
|
+
if (!files || files.length === 0) return;
|
|
39
|
+
|
|
37
40
|
const reader = new FileReader();
|
|
38
41
|
reader.onload = () => {
|
|
39
42
|
const url = reader.result.toString();
|
|
40
43
|
setPhotoSrc(url);
|
|
41
|
-
setCroppedImageDataUrl(
|
|
42
|
-
setTimeout(selectDefaultCropZone, 500);
|
|
44
|
+
setCroppedImageDataUrl("");
|
|
43
45
|
};
|
|
44
46
|
reader.readAsDataURL(files[0]);
|
|
47
|
+
|
|
48
|
+
// Clear the input value to allow re-uploading the same file
|
|
49
|
+
e.target.value = "";
|
|
45
50
|
};
|
|
46
51
|
|
|
47
52
|
const selectDefaultCropZone = () => {
|
|
@@ -130,10 +135,20 @@ export function ImageEditor(props: Props) {
|
|
|
130
135
|
<Cropper
|
|
131
136
|
ref={cropperRef}
|
|
132
137
|
src={photoSrc}
|
|
138
|
+
key={photoSrc}
|
|
133
139
|
style={{ height: 240, width: "100%" }}
|
|
134
140
|
aspectRatio={props.aspectRatio}
|
|
135
141
|
guides={false}
|
|
136
142
|
crop={handleCrop}
|
|
143
|
+
autoCropArea={1}
|
|
144
|
+
viewMode={1}
|
|
145
|
+
responsive={true}
|
|
146
|
+
restore={false}
|
|
147
|
+
checkOrientation={false}
|
|
148
|
+
background={false}
|
|
149
|
+
ready={() => {
|
|
150
|
+
setTimeout(selectDefaultCropZone, 100);
|
|
151
|
+
}}
|
|
137
152
|
/>
|
|
138
153
|
</Suspense>
|
|
139
154
|
</InputBox>
|