Skip to content

Commit 2438afd

Browse files
committed
feat: upgrade canvg to v4
1 parent c4f976b commit 2438afd

File tree

2 files changed

+34
-16
lines changed

2 files changed

+34
-16
lines changed

packages/neuron-ui/src/widgets/QRCode/index.tsx

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-disable no-bitwise */
22
import React, { forwardRef, useEffect, useMemo, useRef } from 'react'
33
import { clipboard, nativeImage } from 'electron'
4-
import canvg from 'canvg'
4+
import { Canvg } from 'canvg'
55
import styles from './qrcode.module.scss'
66

77
// eslint-disable-next-line @typescript-eslint/no-var-requires
@@ -115,17 +115,14 @@ const QRCode = forwardRef(
115115
}, [value, includeMargin, size, scale, bgColor, fgColor, level])
116116

117117
useEffect(() => {
118-
if (canvasRef.current !== null) {
119-
canvg(canvasRef.current, svgStr, {
120-
enableRedraw: false,
121-
ignoreMouse: true,
122-
renderCallback: () => {
123-
if (canvasRef.current) {
124-
canvasRef.current.setAttribute(`style`, `width:${size}px;height:${size}px`)
125-
}
126-
},
127-
})
118+
if (!(canvasRef.current instanceof HTMLCanvasElement)) {
119+
return
128120
}
121+
const ctx = canvasRef.current.getContext('2d')
122+
if (!ctx) return
123+
canvasRef.current.setAttribute(`style`, `width:${size}px;height:${size}px`)
124+
125+
Canvg.from(ctx, svgStr, { enableRedraw: false, ignoreMouse: true })
129126
}, [svgStr, size])
130127

131128
return (

yarn.lock

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4455,6 +4455,11 @@
44554455
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
44564456
integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
44574457

4458+
"@types/raf@^3.4.0":
4459+
version "3.4.3"
4460+
resolved "https://registry.yarnpkg.com/@types/raf/-/raf-3.4.3.tgz#85f1d1d17569b28b8db45e16e996407a56b0ab04"
4461+
integrity sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==
4462+
44584463
"@types/react-dom@18.2.18":
44594464
version "18.2.18"
44604465
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.18.tgz#16946e6cd43971256d874bc3d0a72074bb8571dd"
@@ -6305,13 +6310,19 @@ caniuse-lite@^1.0.30001669:
63056310
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz#27c2e2c637e007cfa864a16f7dfe7cde66b38b5f"
63066311
integrity sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==
63076312

6308-
canvg@2.0.0:
6309-
version "2.0.0"
6310-
resolved "https://registry.yarnpkg.com/canvg/-/canvg-2.0.0.tgz#9ff77bf8837106e358a12fb3d2bf11aeb60e5b46"
6311-
integrity sha512-PiKa+sjzzAv8HONsBaJZRhZ3eCM5uJkpFgF0rSzcamOrdXdls81ukjNxtz7JYyxucj6WpIkZwk9j7Jku0+ivqQ==
6313+
canvg@3.0.11:
6314+
version "3.0.11"
6315+
resolved "https://registry.yarnpkg.com/canvg/-/canvg-3.0.11.tgz#4b4290a6c7fa36871fac2b14e432eff33b33cf2b"
6316+
integrity sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==
63126317
dependencies:
6318+
"@babel/runtime" "^7.12.5"
6319+
"@types/raf" "^3.4.0"
6320+
core-js "^3.8.3"
6321+
raf "^3.4.1"
6322+
regenerator-runtime "^0.13.7"
63136323
rgbcolor "^1.0.1"
63146324
stackblur-canvas "^2.0.0"
6325+
svg-pathdata "^6.0.3"
63156326

63166327
capture-exit@^2.0.0:
63176328
version "2.0.0"
@@ -6881,6 +6892,11 @@ core-js-compat@^3.40.0:
68816892
dependencies:
68826893
browserslist "^4.24.4"
68836894

6895+
core-js@^3.8.3:
6896+
version "3.41.0"
6897+
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.41.0.tgz#57714dafb8c751a6095d028a7428f1fb5834a776"
6898+
integrity sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==
6899+
68846900
core-util-is@1.0.2:
68856901
version "1.0.2"
68866902
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -14174,7 +14190,7 @@ regenerate@^1.4.2:
1417414190
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
1417514191
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
1417614192

14177-
regenerator-runtime@^0.13.11:
14193+
regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.7:
1417814194
version "0.13.11"
1417914195
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
1418014196
integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
@@ -15450,6 +15466,11 @@ svg-parser@^2.0.4:
1545015466
resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5"
1545115467
integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==
1545215468

15469+
svg-pathdata@^6.0.3:
15470+
version "6.0.3"
15471+
resolved "https://registry.yarnpkg.com/svg-pathdata/-/svg-pathdata-6.0.3.tgz#80b0e0283b652ccbafb69ad4f8f73e8d3fbf2cac"
15472+
integrity sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==
15473+
1545315474
symbol-tree@^3.2.4:
1545415475
version "3.2.4"
1545515476
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"

0 commit comments

Comments
 (0)