fix: 重复监听

This commit is contained in:
song_xiao_lin
2024-05-15 14:43:04 +08:00
committed by go0p
parent e150379c7f
commit a4840c9c5e
5 changed files with 195 additions and 144 deletions
+120 -82
View File
@@ -14,7 +14,7 @@
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"ahooks": "^3.7.10",
"antd": "^5.15.3",
"antd": "^5.17.0",
"babel-jest": "^27.4.2",
"babel-plugin-named-asset-import": "^0.3.8",
"babel-preset-react-app": "^10.0.1",
@@ -63,6 +63,7 @@
"@babel/core": "^7.24.1",
"@babel/preset-env": "^7.24.1",
"@babel/preset-react": "^7.24.1",
"@types/chrome": "^0.0.268",
"babel-loader": "^9.1.3",
"copy-webpack-plugin": "^12.0.2",
"cross-env": "^7.0.3",
@@ -120,9 +121,9 @@
}
},
"node_modules/@ant-design/cssinjs": {
"version": "1.18.4",
"resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.18.4.tgz",
"integrity": "sha512-IrUAOj5TYuMG556C9gdbFuOrigyhzhU5ZYpWb3gYTxAwymVqRbvLzFCZg6OsjLBR6GhzcxYF3AhxKmjB+rA2xA==",
"version": "1.20.0",
"resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.20.0.tgz",
"integrity": "sha512-uG3iWzJxgNkADdZmc6W0Ci3iQAUOvLMcM8SnnmWq3r6JeocACft4ChnY/YWvI2Y+rG/68QBla/O+udke1yH3vg==",
"dependencies": {
"@babel/runtime": "^7.11.1",
"@emotion/hash": "^0.8.0",
@@ -138,9 +139,9 @@
}
},
"node_modules/@ant-design/icons": {
"version": "5.3.4",
"resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.3.4.tgz",
"integrity": "sha512-U5eTSeSFr2V9SeJzYOo5mybAZfsoNuiIA8bvFoZUe+h9LBLs8UwrVaVwcMQC4AhBuojXkLMlmtnIlvUczXXHaQ==",
"version": "5.3.7",
"resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.3.7.tgz",
"integrity": "sha512-bCPXTAg66f5bdccM4TT21SQBDO1Ek2gho9h3nO9DAKXJP4sq+5VBjrQMSxMVXSB3HyEz+cUbHQ5+6ogxCOpaew==",
"dependencies": {
"@ant-design/colors": "^7.0.0",
"@ant-design/icons-svg": "^4.4.0",
@@ -162,9 +163,9 @@
"integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA=="
},
"node_modules/@ant-design/react-slick": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.0.2.tgz",
"integrity": "sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz",
"integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==",
"dependencies": {
"@babel/runtime": "^7.10.4",
"classnames": "^2.2.5",
@@ -2075,9 +2076,9 @@
"integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
},
"node_modules/@babel/runtime": {
"version": "7.24.1",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz",
"integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==",
"version": "7.24.5",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz",
"integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -3502,6 +3503,17 @@
}
}
},
"node_modules/@rc-component/async-validator": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.3.tgz",
"integrity": "sha512-eN5chKrc0ANerXjLJuoqh/YJpor0u4T1bgaph5BPh42cJ2afDihaHJ2Mh3Up3XIFk05EfKG4nIQxbqC6y2eM4Q==",
"dependencies": {
"@babel/runtime": "^7.24.4"
},
"engines": {
"node": ">=14.x"
}
},
"node_modules/@rc-component/color-picker": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-1.5.3.tgz",
@@ -3595,9 +3607,9 @@
}
},
"node_modules/@rc-component/trigger": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.0.0.tgz",
"integrity": "sha512-niwKADPdY5dhdIblV6uwSayVivwo2uUISfJqri+/ovYQcH/omxDYBJKo755QKeoIIsWptxnRpgr7reEnNEZGFg==",
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.1.1.tgz",
"integrity": "sha512-UjHkedkgtEcgQu87w1VuWug1idoDJV7VUt0swxHXRcmei2uu1AuUzGBPEUlmOmXGJ+YtTgZfVLi7kuAUKoZTMA==",
"dependencies": {
"@babel/runtime": "^7.23.2",
"@rc-component/portal": "^1.1.0",
@@ -4450,6 +4462,16 @@
"@types/node": "*"
}
},
"node_modules/@types/chrome": {
"version": "0.0.268",
"resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.268.tgz",
"integrity": "sha512-7N1QH9buudSJ7sI8Pe4mBHJr5oZ48s0hcanI9w3wgijAlv1OZNUZve9JR4x42dn5lJ5Sm87V1JNfnoh10EnQlA==",
"dev": true,
"dependencies": {
"@types/filesystem": "*",
"@types/har-format": "*"
}
},
"node_modules/@types/connect": {
"version": "3.4.38",
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
@@ -4512,6 +4534,21 @@
"@types/send": "*"
}
},
"node_modules/@types/filesystem": {
"version": "0.0.36",
"resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.36.tgz",
"integrity": "sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==",
"dev": true,
"dependencies": {
"@types/filewriter": "*"
}
},
"node_modules/@types/filewriter": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.33.tgz",
"integrity": "sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==",
"dev": true
},
"node_modules/@types/graceful-fs": {
"version": "4.1.9",
"resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
@@ -4520,6 +4557,12 @@
"@types/node": "*"
}
},
"node_modules/@types/har-format": {
"version": "1.2.15",
"resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.15.tgz",
"integrity": "sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==",
"dev": true
},
"node_modules/@types/html-minifier-terser": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
@@ -5604,54 +5647,54 @@
}
},
"node_modules/antd": {
"version": "5.15.3",
"resolved": "https://registry.npmjs.org/antd/-/antd-5.15.3.tgz",
"integrity": "sha512-53dpdGbfwipHVbqITmppp8N16i+BscMzz8NUNwaJgxwSvO9VQh/NfC/90lqGq3I2oBmxQ8TzRIxzFVKD/9OhlQ==",
"version": "5.17.0",
"resolved": "https://registry.npmjs.org/antd/-/antd-5.17.0.tgz",
"integrity": "sha512-jrzMIcaTJIy12/GJ2PfgchgZGuAlDodlaOKd05/TxEtFilRHnv8oaf0qfqNGG3slvvuy4J/57xn21jM4cLl7Hw==",
"dependencies": {
"@ant-design/colors": "^7.0.2",
"@ant-design/cssinjs": "^1.18.4",
"@ant-design/icons": "^5.3.3",
"@ant-design/react-slick": "~1.0.2",
"@babel/runtime": "^7.24.0",
"@ant-design/cssinjs": "^1.19.1",
"@ant-design/icons": "^5.3.6",
"@ant-design/react-slick": "~1.1.2",
"@babel/runtime": "^7.24.5",
"@ctrl/tinycolor": "^3.6.1",
"@rc-component/color-picker": "~1.5.3",
"@rc-component/mutate-observer": "^1.1.0",
"@rc-component/tour": "~1.14.2",
"@rc-component/trigger": "^2.0.0",
"@rc-component/trigger": "^2.1.1",
"classnames": "^2.5.1",
"copy-to-clipboard": "^3.3.3",
"dayjs": "^1.11.10",
"qrcode.react": "^3.1.0",
"rc-cascader": "~3.24.0",
"rc-cascader": "~3.25.0",
"rc-checkbox": "~3.2.0",
"rc-collapse": "~3.7.2",
"rc-collapse": "~3.7.3",
"rc-dialog": "~9.4.0",
"rc-drawer": "~7.1.0",
"rc-dropdown": "~4.2.0",
"rc-field-form": "~1.42.1",
"rc-field-form": "~2.0.0",
"rc-image": "~7.6.0",
"rc-input": "~1.4.5",
"rc-input-number": "~9.0.0",
"rc-mentions": "~2.11.1",
"rc-menu": "~9.13.0",
"rc-motion": "^2.9.0",
"rc-notification": "~5.3.0",
"rc-notification": "~5.4.0",
"rc-pagination": "~4.0.4",
"rc-picker": "~4.3.0",
"rc-progress": "~3.5.1",
"rc-picker": "~4.5.0",
"rc-progress": "~4.0.0",
"rc-rate": "~2.12.0",
"rc-resize-observer": "^1.4.0",
"rc-segmented": "~2.3.0",
"rc-select": "~14.13.0",
"rc-slider": "~10.5.0",
"rc-select": "~14.13.1",
"rc-slider": "~10.6.2",
"rc-steps": "~6.0.1",
"rc-switch": "~4.1.0",
"rc-table": "~7.42.0",
"rc-tabs": "~14.1.1",
"rc-table": "~7.45.5",
"rc-tabs": "~15.0.0 ",
"rc-textarea": "~1.6.3",
"rc-tooltip": "~6.2.0",
"rc-tree": "~5.8.5",
"rc-tree-select": "~5.19.0",
"rc-tree-select": "~5.20.0",
"rc-upload": "~4.5.2",
"rc-util": "^5.39.1",
"scroll-into-view-if-needed": "^3.1.0",
@@ -5886,11 +5929,6 @@
"resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
"integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg=="
},
"node_modules/async-validator": {
"version": "4.2.5",
"resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz",
"integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -15743,9 +15781,9 @@
}
},
"node_modules/rc-cascader": {
"version": "3.24.0",
"resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.24.0.tgz",
"integrity": "sha512-NwkYsVULA61S085jbOYbq8Z7leyIxVmLwf+71mWLjA3kCfUf/rAKC0WfjQbqBDaLGlU9d4z1EzyPaHBKLYWv6A==",
"version": "3.25.0",
"resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.25.0.tgz",
"integrity": "sha512-mBY6/CykOvzAYnIye0rpt5JkMAXJaX8zZawOwSndbKuFakYE+leqBQWIZoN9HIgAptPpTi2Aty3RvbaBmk8SKQ==",
"dependencies": {
"@babel/runtime": "^7.12.5",
"array-tree-filter": "^2.1.0",
@@ -15836,12 +15874,12 @@
}
},
"node_modules/rc-field-form": {
"version": "1.42.1",
"resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.42.1.tgz",
"integrity": "sha512-SqiEmWNP+I61Lt80+ofPvT+3l8Ij6vb35IS+x14gheVnCJN0SRnOwEgsqCEB5FslT7xqjUqDnU845hRZ1jzlAA==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.0.1.tgz",
"integrity": "sha512-3WK/POHBcfMFKrzScrkmgMIXqoVQ0KgVwcVnej/ukwuQG4ZHCJaTi2KhM+tWTK4WODBXbmjKg5pKHj2IVmSg4A==",
"dependencies": {
"@babel/runtime": "^7.18.0",
"async-validator": "^4.1.0",
"@rc-component/async-validator": "^5.0.3",
"rc-util": "^5.32.2"
},
"engines": {
@@ -15949,9 +15987,9 @@
}
},
"node_modules/rc-notification": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.3.0.tgz",
"integrity": "sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==",
"version": "5.4.0",
"resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.4.0.tgz",
"integrity": "sha512-li19y9RoYJciF3WRFvD+DvWS70jdL8Fr+Gfb/OshK+iY6iTkwzoigmSIp76/kWh5tF5i/i9im12X3nsF85GYdA==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"classnames": "2.x",
@@ -15996,9 +16034,9 @@
}
},
"node_modules/rc-picker": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.3.0.tgz",
"integrity": "sha512-bQNB/+NdW55jlQ5lPnNqF5J90Tq4SihLbAF7tzPBvGDJyoYmDgwLm4FN0ZB3Ot9i1v6vJY/1mgqZZTT9jbYc5w==",
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.5.0.tgz",
"integrity": "sha512-suqz9bzuhBQlf7u+bZd1bJLPzhXpk12w6AjQ9BTPTiFwexVZgUKViG1KNLyfFvW6tCUZZK0HmCCX7JAyM+JnCg==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"@rc-component/trigger": "^2.0.0",
@@ -16034,9 +16072,9 @@
}
},
"node_modules/rc-progress": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-3.5.1.tgz",
"integrity": "sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==",
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz",
"integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"classnames": "^2.2.6",
@@ -16095,12 +16133,12 @@
}
},
"node_modules/rc-select": {
"version": "14.13.0",
"resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.13.0.tgz",
"integrity": "sha512-ew34FsaqHokK4dxVrcIxSYrgWJ2XJYlkk32eiOIiEo3GkHUExdCzmozMYaUc2P67c5QJRUvvY0uqCs3QG67h5A==",
"version": "14.13.3",
"resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.13.3.tgz",
"integrity": "sha512-AMEfdE40RhlqahMGN3Q7OKVd1txNph0zIn2Xpvn0ZJiUYafCsqoGv+Rj6v1umgm8ZOEAJ3LefnkznAYNMMzACg==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"@rc-component/trigger": "^2.0.0",
"@rc-component/trigger": "^2.1.1",
"classnames": "2.x",
"rc-motion": "^2.0.1",
"rc-overflow": "^1.3.1",
@@ -16116,13 +16154,13 @@
}
},
"node_modules/rc-slider": {
"version": "10.5.0",
"resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.5.0.tgz",
"integrity": "sha512-xiYght50cvoODZYI43v3Ylsqiw14+D7ELsgzR40boDZaya1HFa1Etnv9MDkQE8X/UrXAffwv2AcNAhslgYuDTw==",
"version": "10.6.2",
"resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.6.2.tgz",
"integrity": "sha512-FjkoFjyvUQWcBo1F3RgSglky3ar0+qHLM41PlFVYB4Bj3RD8E/Mv7kqMouLFBU+3aFglMzzctAIWRwajEuueSw==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"classnames": "^2.2.5",
"rc-util": "^5.27.0"
"rc-util": "^5.36.0"
},
"engines": {
"node": ">=8.x"
@@ -16164,9 +16202,9 @@
}
},
"node_modules/rc-table": {
"version": "7.42.0",
"resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.42.0.tgz",
"integrity": "sha512-GwHV9Zs3HvWxBkoXatO/IeKoElzy3Ojf3dcyw1Rj3cyQVb+ZHtexslKdyzsrKRPJ0mUa62BoX+ZAg3zgTEql8w==",
"version": "7.45.5",
"resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.45.5.tgz",
"integrity": "sha512-R5sOfToOk7CalSkebZpqM8lkKWOJR7uXPGEhjjTSoj5egyHBwMxaACoPj2oI+6qLSll9yZrG5K+8HTN57b2Ahg==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"@rc-component/context": "^1.4.0",
@@ -16184,9 +16222,9 @@
}
},
"node_modules/rc-tabs": {
"version": "14.1.1",
"resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-14.1.1.tgz",
"integrity": "sha512-5nOr9PVpJy2SWHTLgv1+kESDOb0tFzl0cYU9r9d8LfL0Wg9i/n1B558rmkxdQHgBwMqxmwoyPSAbQROxMQe8nw==",
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.0.0.tgz",
"integrity": "sha512-7m541VcEiJSpHZmosMZNMIhemxtIN+f0WDhZNyXQ1/cZ40aaWsknlbj0FH6HryLoKEQvBnCI89hgQuT7MBSOBA==",
"dependencies": {
"@babel/runtime": "^7.11.2",
"classnames": "2.x",
@@ -16235,9 +16273,9 @@
}
},
"node_modules/rc-tree": {
"version": "5.8.5",
"resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.8.5.tgz",
"integrity": "sha512-PRfcZtVDNkR7oh26RuNe1hpw11c1wfgzwmPFL0lnxGnYefe9lDAO6cg5wJKIAwyXFVt5zHgpjYmaz0CPy1ZtKg==",
"version": "5.8.7",
"resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.8.7.tgz",
"integrity": "sha512-cpsIQZ4nNYwpj6cqPRt52e/69URuNdgQF9wZ10InmEf8W3+i0A41OVmZWwHuX9gegQSqj+DPmaDkZFKQZ+ZV1w==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"classnames": "2.x",
@@ -16254,9 +16292,9 @@
}
},
"node_modules/rc-tree-select": {
"version": "5.19.0",
"resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.19.0.tgz",
"integrity": "sha512-f4l5EsmSGF3ggj76YTzKNPY9SnXfFaer7ZccTSGb3urUf54L+cCqyT+UsPr+S5TAr8mZSxJ7g3CgkCe+cVQ6sw==",
"version": "5.20.0",
"resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.20.0.tgz",
"integrity": "sha512-zFtkHx5/6PnXSi3oSbBSFbIPiJJQdpSU3qz/joLe75URgvxmTHi989O8MtMgpwyZwrCMOJpGi6L1uy+13uzZPw==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"classnames": "2.x",
@@ -16302,9 +16340,9 @@
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
},
"node_modules/rc-virtual-list": {
"version": "3.11.4",
"resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.11.4.tgz",
"integrity": "sha512-NbBi0fvyIu26gP69nQBiWgUMTPX3mr4FcuBQiVqagU0BnuX8WQkiivnMs105JROeuUIFczLrlgUhLQwTWV1XDA==",
"version": "3.12.0",
"resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.12.0.tgz",
"integrity": "sha512-43+/lr7bImpvEwTFw1FTYwSg42VHzRgO5PiCEEUROj8D2+M2SCvANqGIa9QyhoFLVQtc+2QXvgTB7VPGG7oOoQ==",
"dependencies": {
"@babel/runtime": "^7.20.0",
"classnames": "^2.2.6",
@@ -17862,9 +17900,9 @@
}
},
"node_modules/stylis": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz",
"integrity": "sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ=="
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz",
"integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg=="
},
"node_modules/sucrase": {
"version": "3.35.0",
+10 -9
View File
@@ -83,13 +83,14 @@ const pageFunction = (code) => {
chrome.runtime.onConnect.addListener(function (port) {
console.assert(port.name === "content-to-ex");
port.onMessage.addListener(function (msg) {
console.log("[content-to-ex]", msg)
});
port.onDisconnect.addListener(function () {
console.error("[content-to-ex] Disconnected from port.");
});
// port.postMessage({action: "TEST POST MESSAGE"});
if (!port.hasListener) {
port.onMessage.addListener(function (msg) {
console.log("[content-to-ex]", msg)
});
port.onDisconnect.addListener(function () {
console.error("[content-to-ex] Disconnected from port.");
});
// port.postMessage({action: "TEST POST MESSAGE"});
port.hasListener = true;
}
});
+15 -12
View File
@@ -1,15 +1,18 @@
console.log("Loaded content.js")
window.addEventListener("message", (event) => {
console.log(event)
if (event.data.yakitex.msg && (event.data.yakitex.msg.type === "TEST")) {
const name = event.data.yakitex.msg.fn_name
const args = event.data.yakitex.msg.args
const a = (fn, args) => {
return window[fn](args)
if (!window.hasAddedMessageListener) {
window.addEventListener("message", (event) => {
if (event.data?.yakitex?.msg && (event.data.yakitex.msg.type === "TEST")) {
const name = event.data.yakitex.msg.fn_name;
const args = event.data.yakitex.msg.args;
const a = (fn, args) => {
return window[fn](args);
}
const zz = a(name, args);
console.log("res ", zz);
window.postMessage({type: "FROM_PAGE", text: zz}, "*");
return
}
const zz = a(name, args)
console.log("res ", zz)
window.postMessage({type: "FROM_PAGE", text: zz}, "*")
}
},);
});
window.hasAddedMessageListener = true;
}
+31 -23
View File
@@ -4,7 +4,7 @@ function injectScript(src, id, message) {
const script = document.createElement('script')
script.onload = () => {
const onMessage = ({data}) => {
const onMessage = ({ data }) => {
console.log(data)
if (!data.yakitex || !data.yakitex.msg) {
return
@@ -12,7 +12,7 @@ function injectScript(src, id, message) {
window.removeEventListener('message', onMessage)
resolve(data.yakitex.msg)
// resolve(data.yakitex.msg)
script.remove()
}
@@ -30,26 +30,34 @@ function injectScript(src, id, message) {
})
}
chrome.runtime.onConnect.addListener(function (port) {
if (!window.hasAddedMessageListener2) {
window.addEventListener("message", (event) => {
if (event.data.type && (event.data.type === "FROM_PAGE")) {
const port = chrome.runtime.connect({ name: "content-to-ex" });
port.postMessage(event.data.text);
port.disconnect();
return
}
})
window.hasAddedMessageListener2 = true;
}
function connectAddListenerFun(port) {
console.assert(port.name === "ex-to-content");
port.onMessage.addListener(function (msg) {
injectScript('content.js', 'sender', {yakitex: "123", id: "yakit", msg: msg}).then((res) => {
window.addEventListener("message", (event) => {
// if (event.source !== window) {
// return;
// }
if (event.data.type && (event.data.type === "FROM_PAGE")) {
console.log(event)
const port2 = chrome.runtime.connect({name: "content-to-ex"});
port2.postMessage(event.data.text);
port2.disconnect();
}
},);
if (!port.hasListener) {
port.onMessage.addListener(function (msg) {
console.log(111111111111111);
injectScript('content.js', 'sender', { yakitex: "123", id: "yakit", msg: msg })
});
port.onDisconnect.addListener(function () {
console.error("[ex-to-content] Disconnected from port.");
});
port.hasListener = true
}
}
})
});
port.onDisconnect.addListener(function () {
console.error("[ex-to-content] Disconnected from port.");
});
});
if (!chrome.runtime.onConnect.hasListener(connectAddListenerFun)) {
chrome.runtime.onConnect.addListener(connectAddListenerFun);
}
+19 -18
View File
@@ -8,7 +8,7 @@ interface EvalInTabProps {
export const EvalInTab: React.FC<EvalInTabProps> = () => {
const [inputData, setInputData] = useState("");
const [isScriptInjected, setIsScriptInjected] = useState(false);
const [port, setPort] = useState<chrome.runtime.Port>()
// useEffect(() => {
// // const onConnectListener = (port: chrome.runtime.Port) => {
@@ -29,29 +29,30 @@ export const EvalInTab: React.FC<EvalInTabProps> = () => {
// // };
// }, [inputData]);
const handleClick = async () => {
const tabId = await wsc.getTabId();
if (!isScriptInjected) {
useEffect(() => {
const injectFun = async () => {
const tabId = await wsc.getTabId();
chrome.scripting.executeScript({
target: {tabId: await wsc.getTabId()},
target: {tabId: tabId},
files: ['inject.js'],
}).then(injectResults => {
console.log(injectResults)
setIsScriptInjected(true);
const port = chrome.tabs.connect(tabId, {name: "ex-to-content"})
port.postMessage({type: "TEST", fn_name: "Encrypt", args: inputData});
port.onMessage.addListener(function (msg) {
}).then(() => {
const newPort = chrome.tabs.connect(tabId, {name: "ex-to-content"})
setPort(newPort)
newPort.onMessage.addListener(function (msg) {
console.log(msg)
})
});
})
}
console.log("injected script")
const port = chrome.tabs.connect(tabId, {name: "ex-to-content"})
injectFun()
return () => {
if (port) {
port.disconnect()
}
}
}, [])
const handleClick = async () => {
port.postMessage({type: "TEST", fn_name: "Encrypt", args: inputData});
port.onMessage.addListener(function (msg) {
console.log(msg)
})
};
const handleInputChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {