Files
pole-book/server/node_modules/@strapi/upload/dist/admin/hooks/useCropImg.mjs.map

1 line
5.1 KiB
Plaintext

{"version":3,"file":"useCropImg.mjs","sources":["../../../admin/src/hooks/useCropImg.ts"],"sourcesContent":["import * as React from 'react';\n\nimport Cropper from 'cropperjs';\n\nconst QUALITY = 1;\n\ntype Size = {\n width?: number;\n height?: number;\n};\n\ntype Resize = {\n detail: {\n height: number;\n width: number;\n };\n};\n\nexport const useCropImg = () => {\n const cropperRef = React.useRef<Cropper>();\n const [isCropping, setIsCropping] = React.useState(false);\n const [size, setSize] = React.useState<Size>({ width: undefined, height: undefined });\n\n React.useEffect(() => {\n return () => {\n if (cropperRef.current) {\n cropperRef.current.destroy();\n }\n };\n }, []);\n\n const handleResize = ({ detail: { height, width } }: Resize) => {\n const roundedDataWidth = Math.round(width);\n const roundedDataHeight = Math.round(height);\n\n setSize({ width: roundedDataWidth, height: roundedDataHeight });\n };\n\n const crop = (image: HTMLImageElement) => {\n if (!cropperRef.current) {\n cropperRef.current = new Cropper(image, {\n modal: true,\n initialAspectRatio: 16 / 9,\n movable: true,\n zoomable: false,\n cropBoxResizable: true,\n background: false,\n checkCrossOrigin: false,\n crop: handleResize,\n });\n\n setIsCropping(true);\n }\n };\n\n const stopCropping = () => {\n if (cropperRef.current) {\n cropperRef.current.destroy();\n cropperRef.current = undefined;\n setIsCropping(false);\n }\n };\n\n const produceFile = (name: string, mimeType: string, lastModifiedDate: string) =>\n new Promise((resolve, reject) => {\n if (!cropperRef.current) {\n reject(\n new Error(\n 'The cropper has not been instantiated: make sure to call the crop() function before calling produceFile().'\n )\n );\n } else {\n const canvas = cropperRef.current.getCroppedCanvas();\n\n canvas.toBlob(\n (blob) => {\n resolve(\n new File([blob!], name, {\n type: mimeType,\n lastModified: new Date(lastModifiedDate).getTime(),\n })\n );\n },\n mimeType,\n QUALITY\n );\n }\n });\n\n return {\n crop,\n produceFile,\n stopCropping,\n isCropping,\n isCropperReady: Boolean(cropperRef.current),\n ...size,\n };\n};\n"],"names":["QUALITY","useCropImg","cropperRef","React","useRef","isCropping","setIsCropping","useState","size","setSize","width","undefined","height","useEffect","current","destroy","handleResize","detail","roundedDataWidth","Math","round","roundedDataHeight","crop","image","Cropper","modal","initialAspectRatio","movable","zoomable","cropBoxResizable","background","checkCrossOrigin","stopCropping","produceFile","name","mimeType","lastModifiedDate","Promise","resolve","reject","Error","canvas","getCroppedCanvas","toBlob","blob","File","type","lastModified","Date","getTime","isCropperReady","Boolean"],"mappings":"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"}