fix: Properly prevent shortcut events, update dependencies

Closes #1440
This commit is contained in:
Maksim Eltyshev
2025-11-24 19:21:07 +01:00
parent 7e41a0167d
commit 5c787d65a9
7 changed files with 390 additions and 368 deletions

550
client/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -80,10 +80,10 @@
"dependencies": {
"@ballerina/highlightjs-ballerina": "^1.0.1",
"@diplodoc/cut-extension": "^0.7.4",
"@diplodoc/transform": "^4.61.0",
"@gravity-ui/components": "^4.12.0",
"@gravity-ui/markdown-editor": "^15.19.1",
"@gravity-ui/uikit": "^7.20.0",
"@diplodoc/transform": "^4.64.1",
"@gravity-ui/components": "^4.16.0",
"@gravity-ui/markdown-editor": "^15.25.0",
"@gravity-ui/uikit": "^7.26.1",
"@juggle/resize-observer": "^3.4.0",
"@vitejs/plugin-react": "^4.7.0",
"browserslist-to-esbuild": "^2.1.1",
@@ -114,10 +114,10 @@
"highlightjs-zenscript": "^2.0.0",
"hightlightjs-papyrus": "^0.0.4",
"history": "^5.3.0",
"i18next": "^25.4.2",
"i18next": "^25.6.3",
"i18next-browser-languagedetector": "^8.2.0",
"initials": "^3.1.2",
"javascript-time-ago": "^2.5.11",
"javascript-time-ago": "^2.5.12",
"js-cookie": "^3.0.5",
"jwt-decode": "^4.0.0",
"linkify-react": "^4.3.2",
@@ -125,7 +125,7 @@
"lodash": "^4.17.21",
"lowlight": "^3.3.0",
"markdown-it": "^13.0.2",
"nanoid": "^5.1.5",
"nanoid": "^5.1.6",
"papaparse": "^5.5.3",
"patch-package": "^8.0.1",
"photoswipe": "^5.4.4",
@@ -137,25 +137,25 @@
"react-dropzone": "^14.3.8",
"react-frame-component": "^5.2.7",
"react-hot-toast": "^2.6.0",
"react-i18next": "^15.7.3",
"react-i18next": "^15.7.4",
"react-input-mask": "^2.0.4",
"react-intersection-observer": "^9.16.0",
"react-mentions": "^4.4.10",
"react-photoswipe-gallery": "^2.2.7",
"react-redux": "^8.1.3",
"react-router-dom": "^6.30.1",
"react-router-dom": "^6.30.2",
"react-textarea-autosize": "^8.5.9",
"react-time-ago": "^7.3.3",
"react-time-ago": "^7.3.5",
"redux": "^4.2.1",
"redux-logger": "^3.0.6",
"redux-orm": "^0.16.2",
"redux-saga": "^1.3.0",
"redux-saga": "^1.4.2",
"reselect": "^4.1.8",
"sails.io.js": "^1.2.1",
"sass-embedded": "^1.91.0",
"sass-embedded": "^1.93.3",
"semantic-ui-react": "^2.1.5",
"socket.io-client": "^2.5.0",
"validator": "^13.15.20",
"validator": "^13.15.23",
"vite": "^6.4.1",
"vite-plugin-commonjs": "^0.10.4",
"vite-plugin-node-polyfills": "^0.23.0",
@@ -163,8 +163,8 @@
"zxcvbn": "^4.4.2"
},
"devDependencies": {
"@babel/eslint-parser": "^7.28.0",
"@babel/preset-env": "^7.28.3",
"@babel/eslint-parser": "^7.28.5",
"@babel/preset-env": "^7.28.5",
"@cucumber/cucumber": "^11.3.0",
"@cucumber/pretty-formatter": "^1.0.1",
"@playwright/test": "^1.56.1",

View File

@@ -1,5 +1,5 @@
diff --git a/node_modules/@gravity-ui/markdown-editor/build/esm/bundle/wysiwyg-preset.js b/node_modules/@gravity-ui/markdown-editor/build/esm/bundle/wysiwyg-preset.js
index 0e615c4..383338d 100644
index 84c7781..3b2f51c 100644
--- a/node_modules/@gravity-ui/markdown-editor/build/esm/bundle/wysiwyg-preset.js
+++ b/node_modules/@gravity-ui/markdown-editor/build/esm/bundle/wysiwyg-preset.js
@@ -101,7 +101,6 @@ export const BundlePreset = (builder, opts) => {
@@ -10,10 +10,10 @@ index 0e615c4..383338d 100644
deflist: {
deflistTermPlaceholder: () => i18nPlaceholder('deflist_term'),
deflistDescPlaceholder: () => i18nPlaceholder('deflist_desc'),
@@ -118,11 +117,6 @@ export const BundlePreset = (builder, opts) => {
...opts.yfmNote,
@@ -122,11 +121,6 @@ export const BundlePreset = (builder, opts) => {
...opts.yfmTable,
controls: opts.mobile ? false : opts.yfmTable?.controls,
},
yfmTable: { yfmTableCellPlaceholder: () => i18nPlaceholder('table_cell'), ...opts.yfmTable },
- yfmFile: {
- fileUploadHandler: opts.fileUploadHandler,
- needToSetDimensionsForUploadedImages: opts.needToSetDimensionsForUploadedImages,

View File

@@ -96,7 +96,7 @@ const ShortcutsProvider = React.memo(({ children }) => {
dispatch(push(Paths.CARDS.replace(':id', card.id)));
};
const handleCardNameEdit = () => {
const handleCardNameEdit = (event) => {
if (!selectedCardRef.current) {
return;
}
@@ -115,6 +115,7 @@ const ShortcutsProvider = React.memo(({ children }) => {
return;
}
event.preventDefault();
selectedCardRef.current.editName();
};
@@ -140,7 +141,7 @@ const ShortcutsProvider = React.memo(({ children }) => {
selectedCardRef.current.openActions(CardActionsStep.StepTypes.ARCHIVE);
};
const handleCardMembers = () => {
const handleCardMembers = (event) => {
if (!selectedCardRef.current) {
return;
}
@@ -159,10 +160,11 @@ const ShortcutsProvider = React.memo(({ children }) => {
return;
}
event.preventDefault();
selectedCardRef.current.openActions(CardActionsStep.StepTypes.MEMBERS);
};
const handleCardLabels = () => {
const handleCardLabels = (event) => {
if (!selectedCardRef.current) {
return;
}
@@ -181,6 +183,7 @@ const ShortcutsProvider = React.memo(({ children }) => {
return;
}
event.preventDefault();
selectedCardRef.current.openActions(CardActionsStep.StepTypes.LABELS);
};
@@ -234,18 +237,15 @@ const ShortcutsProvider = React.memo(({ children }) => {
break;
case 'KeyL':
event.preventDefault();
handleCardLabels();
handleCardLabels(event);
break;
case 'KeyM':
event.preventDefault();
handleCardMembers();
handleCardMembers(event);
break;
case 'KeyT':
event.preventDefault();
handleCardNameEdit();
handleCardNameEdit(event);
break;
case 'KeyV':

View File

@@ -6,5 +6,6 @@
:global(#app) {
.wrapper {
cursor: auto;
outline: none;
}
}

141
server/package-lock.json generated
View File

@@ -15,7 +15,7 @@
"dotenv-cli": "^7.4.4",
"escape-html": "^1.0.3",
"escape-markdown": "^1.0.4",
"fs-extra": "^11.3.1",
"fs-extra": "^11.3.2",
"ico-to-png": "^0.2.2",
"istextorbinary": "^9.5.0",
"jsonwebtoken": "^9.0.2",
@@ -23,7 +23,7 @@
"lodash": "^4.17.21",
"mime": "^3.0.0",
"moment": "^2.30.1",
"nodemailer": "^7.0.7",
"nodemailer": "^7.0.10",
"openid-client": "^5.7.1",
"patch-package": "^8.0.1",
"pg": "^8.16.3",
@@ -36,8 +36,8 @@
"serve-static": "^1.16.2",
"sharp": "^0.33.5",
"uuid": "^9.0.1",
"validator": "^13.15.20",
"winston": "^3.17.0",
"validator": "^13.15.23",
"winston": "^3.18.3",
"zxcvbn": "^4.4.2"
},
"devDependencies": {
@@ -48,7 +48,7 @@
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-prettier": "^5.5.4",
"mocha": "^10.8.2",
"nodemon": "^3.1.10",
"nodemon": "^3.1.11",
"prettier": "3.3.3",
"supertest": "^7.1.4"
},
@@ -985,12 +985,12 @@
}
},
"node_modules/@dabh/diagnostics": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
"integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==",
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.8.tgz",
"integrity": "sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==",
"license": "MIT",
"dependencies": {
"colorspace": "1.1.x",
"@so-ric/colorspace": "^1.1.6",
"enabled": "2.0.x",
"kuler": "^2.0.0"
}
@@ -2534,6 +2534,62 @@
"node": ">=18.0.0"
}
},
"node_modules/@so-ric/colorspace": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@so-ric/colorspace/-/colorspace-1.1.6.tgz",
"integrity": "sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==",
"license": "MIT",
"dependencies": {
"color": "^5.0.2",
"text-hex": "1.0.x"
}
},
"node_modules/@so-ric/colorspace/node_modules/color": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/color/-/color-5.0.3.tgz",
"integrity": "sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==",
"license": "MIT",
"dependencies": {
"color-convert": "^3.1.3",
"color-string": "^2.1.3"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@so-ric/colorspace/node_modules/color-convert": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-3.1.3.tgz",
"integrity": "sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==",
"license": "MIT",
"dependencies": {
"color-name": "^2.0.0"
},
"engines": {
"node": ">=14.6"
}
},
"node_modules/@so-ric/colorspace/node_modules/color-name": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-2.1.0.tgz",
"integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==",
"license": "MIT",
"engines": {
"node": ">=12.20"
}
},
"node_modules/@so-ric/colorspace/node_modules/color-string": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-2.1.4.tgz",
"integrity": "sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==",
"license": "MIT",
"dependencies": {
"color-name": "^2.0.0"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@socket.io/component-emitter": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
@@ -3490,41 +3546,6 @@
"node": ">=0.1.90"
}
},
"node_modules/colorspace": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
"integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
"license": "MIT",
"dependencies": {
"color": "^3.1.3",
"text-hex": "1.0.x"
}
},
"node_modules/colorspace/node_modules/color": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
"integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
"license": "MIT",
"dependencies": {
"color-convert": "^1.9.3",
"color-string": "^1.6.0"
}
},
"node_modules/colorspace/node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"license": "MIT",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/colorspace/node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"license": "MIT"
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -5386,9 +5407,9 @@
}
},
"node_modules/fs-extra": {
"version": "11.3.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz",
"integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==",
"version": "11.3.2",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz",
"integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==",
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -7576,18 +7597,18 @@
}
},
"node_modules/nodemailer": {
"version": "7.0.7",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.7.tgz",
"integrity": "sha512-jGOaRznodf62TVzdyhKt/f1Q/c3kYynk8629sgJHpRzGZj01ezbgMMWJSAjHADcwTKxco3B68/R+KHJY2T5BaA==",
"version": "7.0.10",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.10.tgz",
"integrity": "sha512-Us/Se1WtT0ylXgNFfyFSx4LElllVLJXQjWi2Xz17xWw7amDKO2MLtFnVp1WACy7GkVGs+oBlRopVNUzlrGSw1w==",
"license": "MIT-0",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/nodemon": {
"version": "3.1.10",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.10.tgz",
"integrity": "sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==",
"version": "3.1.11",
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.11.tgz",
"integrity": "sha512-is96t8F/1//UHAjNPHpbsNY46ELPpftGUoSVNXwUfMk/qdjSylYrWSu1XavVTBOn526kFiOR733ATgNBCQyH0g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10912,9 +10933,9 @@
}
},
"node_modules/validator": {
"version": "13.15.20",
"resolved": "https://registry.npmjs.org/validator/-/validator-13.15.20.tgz",
"integrity": "sha512-KxPOq3V2LmfQPP4eqf3Mq/zrT0Dqp2Vmx2Bn285LwVahLc+CsxOM0crBHczm8ijlcjZ0Q5Xd6LW3z3odTPnlrw==",
"version": "13.15.23",
"resolved": "https://registry.npmjs.org/validator/-/validator-13.15.23.tgz",
"integrity": "sha512-4yoz1kEWqUjzi5zsPbAS/903QXSYp0UOtHsPpp7p9rHAw/W+dkInskAE386Fat3oKRROwO98d9ZB0G4cObgUyw==",
"license": "MIT",
"engines": {
"node": ">= 0.10"
@@ -11435,13 +11456,13 @@
}
},
"node_modules/winston": {
"version": "3.17.0",
"resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz",
"integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==",
"version": "3.18.3",
"resolved": "https://registry.npmjs.org/winston/-/winston-3.18.3.tgz",
"integrity": "sha512-NoBZauFNNWENgsnC9YpgyYwOVrl2m58PpQ8lNHjV3kosGs7KJ7Npk9pCUE+WJlawVSe8mykWDKWFSVfs3QO9ww==",
"license": "MIT",
"dependencies": {
"@colors/colors": "^1.6.0",
"@dabh/diagnostics": "^2.0.2",
"@dabh/diagnostics": "^2.0.8",
"async": "^3.2.3",
"is-stream": "^2.0.0",
"logform": "^2.7.0",

View File

@@ -50,7 +50,7 @@
"dotenv-cli": "^7.4.4",
"escape-html": "^1.0.3",
"escape-markdown": "^1.0.4",
"fs-extra": "^11.3.1",
"fs-extra": "^11.3.2",
"ico-to-png": "^0.2.2",
"istextorbinary": "^9.5.0",
"jsonwebtoken": "^9.0.2",
@@ -58,7 +58,7 @@
"lodash": "^4.17.21",
"mime": "^3.0.0",
"moment": "^2.30.1",
"nodemailer": "^7.0.7",
"nodemailer": "^7.0.10",
"openid-client": "^5.7.1",
"patch-package": "^8.0.1",
"pg": "^8.16.3",
@@ -71,8 +71,8 @@
"serve-static": "^1.16.2",
"sharp": "^0.33.5",
"uuid": "^9.0.1",
"validator": "^13.15.20",
"winston": "^3.17.0",
"validator": "^13.15.23",
"winston": "^3.18.3",
"zxcvbn": "^4.4.2"
},
"devDependencies": {
@@ -83,7 +83,7 @@
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-prettier": "^5.5.4",
"mocha": "^10.8.2",
"nodemon": "^3.1.10",
"nodemon": "^3.1.11",
"prettier": "3.3.3",
"supertest": "^7.1.4"
},