Skip to content

Commit cd598bf

Browse files
committed
code optimization
1 parent 692fcff commit cd598bf

File tree

1 file changed

+9
-22
lines changed

1 file changed

+9
-22
lines changed

web_src/js/features/comp/Cropper.ts

+9-22
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,30 @@
1-
import Cropper from 'cropperjs';
21
import {showElem} from '../../utils/dom.ts';
32

4-
export function initCompCropper() {
3+
export async function initCompCropper() {
54
const cropperContainer = document.querySelector('#cropper-panel');
65
if (!cropperContainer) {
76
return;
87
}
98

10-
let filename;
11-
let cropper;
9+
const {default: Cropper} = await import(/* webpackChunkName: "cropperjs" */'cropperjs');
10+
1211
const source = document.querySelector('#cropper-source');
1312
const result = document.querySelector('#cropper-result');
1413
const input = document.querySelector('#new-avatar');
1514

16-
const done = function (url: string): void {
15+
const done = function (url: string, filename: string): void {
1716
source.src = url;
1817
result.src = url;
1918

20-
if (cropper) {
21-
cropper.replace(url);
19+
if (input._cropper) {
20+
input._cropper.replace(url);
2221
} else {
23-
cropper = new Cropper(source, {
22+
input._cropper = new Cropper(source, {
2423
aspectRatio: 1,
2524
viewMode: 1,
2625
autoCrop: false,
2726
crop() {
28-
const canvas = cropper.getCroppedCanvas();
27+
const canvas = input._cropper.getCroppedCanvas();
2928
result.src = canvas.toDataURL();
3029
canvas.toBlob((blob) => {
3130
const file = new File([blob], filename, {type: 'image/png', lastModified: Date.now()});
@@ -42,20 +41,8 @@ export function initCompCropper() {
4241
input.addEventListener('change', (e: Event & {target: HTMLInputElement}) => {
4342
const files = e.target.files;
4443

45-
let reader;
46-
let file;
4744
if (files?.length > 0) {
48-
file = files[0];
49-
filename = file.name;
50-
if (URL) {
51-
done(URL.createObjectURL(file));
52-
} else if (FileReader) {
53-
reader = new FileReader();
54-
reader.addEventListener('load', () => {
55-
done(reader.result);
56-
});
57-
reader.readAsDataURL(file);
58-
}
45+
done(URL.createObjectURL(files[0]), files[0].name);
5946
}
6047
});
6148
}

0 commit comments

Comments
 (0)