Skip to content

Commit 1cd9320

Browse files
committed
Making modals close on ESC and click outside the modal.
1 parent 754b4bb commit 1cd9320

File tree

28 files changed

+1210
-1001
lines changed

28 files changed

+1210
-1001
lines changed

config/webpack.config-dev.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ export default {
2828
// switch the source map generation when debugging
2929
// note, we used 'eval-source-map' before, but since webpack 5.100, it breaks the build
3030
// (causes 'SyntaxError: redeclaration of function normalize')
31-
// devtool: 'inline-source-map',
32-
devtool: false, // turn it off completely
31+
devtool: 'inline-source-map',
32+
//devtool: false, // turn it off completely
3333

3434
entry: path.join(__dirname, '..', 'src/client.js'),
3535
output: {

package.json

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
},
2929
"dependencies": {
3030
"@babel/plugin-transform-react-inline-elements": "^7.27.1",
31-
"@babel/runtime": "^7.28.4",
32-
"@formatjs/intl-pluralrules": "^6.0.4",
33-
"@formatjs/intl-relativetimeformat": "^12.0.5",
31+
"@babel/runtime": "^7.28.6",
32+
"@formatjs/intl-pluralrules": "^6.2.1",
33+
"@formatjs/intl-relativetimeformat": "^12.2.1",
3434
"@fortawesome/fontawesome-free": "^7.1.0",
3535
"@fortawesome/fontawesome-svg-core": "^7.1.0",
3636
"@fortawesome/free-brands-svg-icons": "^7.1.0",
@@ -40,14 +40,14 @@
4040
"@iktakahiro/markdown-it-katex": "^4.0.1",
4141
"@reduxjs/toolkit": "^2.11.2",
4242
"admin-lte": "4.0.0-rc6",
43-
"babel-plugin-formatjs": "^11.0.4",
43+
"babel-plugin-formatjs": "^11.2.1",
4444
"browser-cookies": "^1.2.0",
4545
"buffer": "^6.0.3",
4646
"classnames": "^2.5.1",
4747
"cookie-parser": "^1.4.7",
4848
"cross-fetch": "^4.1.0",
4949
"css-loader": "^7.1.2",
50-
"ejs": "^3.1.10",
50+
"ejs": "^4.0.1",
5151
"express": "^5.2.1",
5252
"file-saver": "^2.0.5",
5353
"flat": "^6.0.1",
@@ -72,11 +72,11 @@
7272
"react-dropzone": "^14.3.8",
7373
"react-helmet": "^6.1.0",
7474
"react-immutable-proptypes": "^2.2.0",
75-
"react-intl": "8.0.6",
75+
"react-intl": "8.1.1",
7676
"react-qr-code": "^2.0.18",
7777
"react-redux": "^9.2.0",
78-
"react-router": "^7.12.0",
79-
"react-router-dom": "^7.11.0",
78+
"react-router": "^7.13.0",
79+
"react-router-dom": "^7.13.0",
8080
"react-syntax-highlighter": "^16.1.0",
8181
"react-toggle": "4.1.3",
8282
"redux": "^5.0.1",
@@ -93,20 +93,20 @@
9393
"viz.js": "^2.1.2"
9494
},
9595
"devDependencies": {
96-
"@babel/cli": "^7.28.3",
97-
"@babel/core": "^7.28.5",
98-
"@babel/eslint-parser": "^7.28.5",
96+
"@babel/cli": "^7.28.6",
97+
"@babel/core": "^7.28.6",
98+
"@babel/eslint-parser": "^7.28.6",
9999
"@babel/eslint-plugin": "^7.27.1",
100-
"@babel/node": "^7.28.0",
100+
"@babel/node": "^7.28.6",
101101
"@babel/plugin-proposal-class-properties": "^7.18.6",
102102
"@babel/plugin-transform-runtime": "^7.28.5",
103-
"@babel/preset-env": "^7.28.5",
103+
"@babel/preset-env": "^7.28.6",
104104
"@babel/preset-react": "^7.28.5",
105-
"@babel/register": "^7.28.3",
106-
"@eslint/compat": "^2.0.0",
105+
"@babel/register": "^7.28.6",
106+
"@eslint/compat": "^2.0.1",
107107
"@eslint/eslintrc": "^3.3.3",
108108
"@eslint/js": "^9.39.2",
109-
"@formatjs/cli-lib": "^8.0.4",
109+
"@formatjs/cli-lib": "^8.2.1",
110110
"babel-loader": "^10.0.0",
111111
"babel-plugin-prismjs": "^2.1.0",
112112
"babel-plugin-transform-flow-strip-types": "^6.22.0",
@@ -115,7 +115,7 @@
115115
"babel-preset-react": "^6.24.1",
116116
"babel-preset-stage-1": "^6.24.1",
117117
"babel-regenerator-runtime": "^6.5.0",
118-
"chai": "^6.2.1",
118+
"chai": "^6.2.2",
119119
"chai-immutable": "^2.1.0",
120120
"chai-spies": "^1.1.0",
121121
"colors": "^1.4.0",
@@ -128,35 +128,35 @@
128128
"eslint-config-standard-react": "13.0.0",
129129
"eslint-import-resolver-node": "^0.3.9",
130130
"eslint-plugin-import": "^2.32.0",
131-
"eslint-plugin-n": "^17.23.1",
131+
"eslint-plugin-n": "^17.23.2",
132132
"eslint-plugin-node": "11.1.0",
133133
"eslint-plugin-promise": "^7.2.1",
134134
"eslint-plugin-react": "^7.37.5",
135135
"eslint-plugin-standard": "^5.0.0",
136136
"fetch-mock": "12.6.0",
137137
"file-loader": "^6.2.0",
138138
"git-revision-webpack-plugin": "^5.0.0",
139-
"globals": "^16.5.0",
139+
"globals": "^17.1.0",
140140
"image-webpack-loader": "^8.1.0",
141141
"isomorphic-style-loader": "^5.4.0",
142-
"jsdom": "^27.3.0",
142+
"jsdom": "^27.4.0",
143143
"json-loader": "^0.5.7",
144144
"less": "^4.5.1",
145145
"less-loader": "^12.3.0",
146-
"mini-css-extract-plugin": "^2.9.4",
146+
"mini-css-extract-plugin": "^2.10.0",
147147
"mocha": "^11.7.5",
148148
"mocha-lcov-reporter": "^1.3.0",
149149
"mock-local-storage": "^1.1.24",
150150
"postcss-loader": "^8.2.0",
151-
"prettier": "^3.7.4",
151+
"prettier": "^3.8.1",
152152
"react-intl-translations-manager": "^5.0.3",
153153
"strip-loader": "^0.1.2",
154154
"style-loader": "^4.0.0",
155155
"terser-webpack-plugin": "^5.3.16",
156156
"webpack": "5.104.1",
157157
"webpack-cli": "^6.0.1",
158158
"webpack-dev-middleware": "^7.4.5",
159-
"webpack-dev-server": "^5.2.2",
159+
"webpack-dev-server": "^5.2.3",
160160
"webpack-isomorphic-tools": "^4.0.0"
161161
},
162162
"packageManager": "[email protected]"

src/components/Assignments/Assignment/AssignmentDetails/AssignmentDetails.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ const AssignmentDetails = ({
334334
</Table>
335335

336336
{(maxPointsBeforeFirstDeadline !== 0 || (allowSecondDeadline && maxPointsBeforeSecondDeadline !== 0)) && (
337-
<Modal show={open} backdrop="static" onHide={() => setOpen(false)} size="xl">
337+
<Modal show={open} onHide={() => setOpen(false)} onEscapeKeyDown={() => setOpen(false)} size="xl">
338338
<Modal.Header closeButton>
339339
<Modal.Title>
340340
<FormattedMessage

src/components/Assignments/Assignment/AssignmentsTable/AssignmentsTable.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,11 @@ class AssignmentsTable extends Component {
452452
</UserUIDataContext.Consumer>
453453

454454
{!noDiscussion && (
455-
<Modal show={this.state.dialogAssignment !== null} backdrop="static" onHide={this.closeDialog} size="xl">
455+
<Modal
456+
show={this.state.dialogAssignment !== null}
457+
onHide={this.closeDialog}
458+
onEscapeKeyDown={this.closeDialog}
459+
size="xl">
456460
{this.state.dialogAssignment && (
457461
<CommentThreadContainer
458462
threadId={this.state.dialogAssignment.id}

src/components/Assignments/ShadowAssignmentPointsTable/ShadowAssignmentPointsTable.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ class ShadowAssignmentPointsTable extends Component {
247247
</tbody>
248248
</Table>
249249

250-
<Modal show={this.state.dialogOpen} backdrop="static" onHide={this.closeDialog} size="xl">
250+
<Modal show={this.state.dialogOpen} onHide={this.closeDialog} onEscapeKeyDown={this.closeDialog} size="xl">
251251
<Modal.Header closeButton>
252252
<Modal.Title>
253253
<FormattedMessage

src/components/Exercises/ExerciseButtons/ExerciseButtons.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ const ExerciseButtons = ({ id, archivedAt = null, permissionHints = null, sendNo
7474
</Col>
7575
</Row>
7676

77-
<Modal show={message !== null} backdrop="static" onHide={() => setMessage(null)} size="xl">
77+
<Modal show={message !== null} onHide={() => setMessage(null)} onEscapeKeyDown={() => setMessage(null)} size="xl">
7878
<Modal.Header closeButton>
7979
<Modal.Title>
8080
<FormattedMessage

src/components/Exercises/ExerciseGroups/ExerciseGroups.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ class ExerciseGroups extends Component {
9595
</Table>
9696

9797
{showButtons && (
98-
<Modal show={this.state.dialogOpen} backdrop="static" onHide={this.closeDialog} size="xl">
98+
<Modal show={this.state.dialogOpen} onHide={this.closeDialog} onEscapeKeyDown={this.closeDialog} size="xl">
9999
<Modal.Header closeButton>
100100
<Modal.Title>
101101
<FormattedMessage

src/components/Exercises/FilesTable/FilesLinksTable.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ const FilesLinksTable = ({
272272
</TheButtonGroup>
273273
</div>
274274

275-
<Modal show={filesOpen} backdrop="static" size="xl" onHide={() => setFilesOpen(false)}>
275+
<Modal show={filesOpen} size="xl" onHide={() => setFilesOpen(false)} onEscapeKeyDown={() => setFilesOpen(false)}>
276276
<Modal.Header closeButton>
277277
<Modal.Title>
278278
<FormattedMessage id="app.filesLinksTable.manageExerciseFiles" defaultMessage="Manage Exercise Files" />
@@ -283,7 +283,11 @@ const FilesLinksTable = ({
283283
</Modal.Body>
284284
</Modal>
285285

286-
<Modal show={formOpen && Boolean(files)} backdrop="static" size="xl" onHide={() => setFormOpen(false)}>
286+
<Modal
287+
show={formOpen && Boolean(files)}
288+
size="xl"
289+
onHide={() => setFormOpen(false)}
290+
onEscapeKeyDown={() => setFormOpen(false)}>
287291
<Modal.Header closeButton>
288292
<Modal.Title>
289293
{editLink ? (

src/components/Groups/AddStudent/AddStudent.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,11 @@ const AddStudent = ({ groups, groupsAccessor, groupId, instanceId, canSearch = f
117117
</Row>
118118
</InsetPanel>
119119

120-
<Modal show={dialogOpen} backdrop="static" onHide={() => setDialogOpen(false)} size="xl">
120+
<Modal
121+
show={dialogOpen}
122+
onHide={() => setDialogOpen(false)}
123+
onEscapeKeyDown={() => setDialogOpen(false)}
124+
size="xl">
121125
<Modal.Header closeButton>
122126
<Modal.Title>
123127
<FormattedMessage id="app.addStudent.inviteDialog.title" defaultMessage="Send invitation to ReCodEx" />

src/components/Groups/GroupExamStatus/GroupExamStatus.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,11 @@ class GroupExamStatus extends Component {
350350
</Callout>
351351

352352
{hasPermissions(group, 'setExamPeriod') && (
353-
<Modal size="xl" show={this.state.examModal} onHide={this.examModalClose}>
353+
<Modal
354+
size="xl"
355+
show={this.state.examModal}
356+
onHide={this.examModalClose}
357+
onEscapeKeyDown={this.examModalClose}>
354358
<Modal.Header closeButton>
355359
<Modal.Title>
356360
{this.state.hasExam ? (

0 commit comments

Comments
 (0)