@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,3 +1,4 @@
1
+ import "react-cropper/node_modules/cropperjs/dist/cropper.css";
1
2
  interface Props {
2
3
  title?: string;
3
4
  photoUrl: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ImageEditor.d.ts","sourceRoot":"","sources":["../../src/components/ImageEditor.tsx"],"names":[],"mappings":"AASA,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,2CAwHvC"}
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(url);
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":"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"}
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.20",
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(url);
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>