From 36944f2a128b87eb488a7ae3aa3bba9c4f8feb67 Mon Sep 17 00:00:00 2001 From: "skillens.ai" Date: Fri, 31 Oct 2025 00:01:32 +0530 Subject: [PATCH] report fix --- .firebase/hosting.YnVpbGQ.cache | 110 +++++++++--------- package-lock.json | 94 +++++++-------- package.json | 2 +- .../Student/Exams/AttemptExam/AttemptExam.js | 23 +++- src/component/Student/Exams/Report/Report.js | 90 +++++++------- src/services/selectorService.js | 2 +- 6 files changed, 161 insertions(+), 160 deletions(-) diff --git a/.firebase/hosting.YnVpbGQ.cache b/.firebase/hosting.YnVpbGQ.cache index 886e829..9009d60 100644 --- a/.firebase/hosting.YnVpbGQ.cache +++ b/.firebase/hosting.YnVpbGQ.cache @@ -1,12 +1,12 @@ robots.txt,1761396900570,bfe106a3fb878dc83461c86818bf74fc1bdc7f28538ba613cd3e775516ce8b49 manifest.json,1761396900568,a9350a49aaac9fe94d3dd77b8270cc998c04ab97944a606189675022431faa51 favicon.svg,1761396900561,a2a4880301751061a600b0bfc5c26fc413aed41e581516c4fa976bcb7fff6663 -service-worker.js,1761764783124,a4416108bc325f844ff2591db3c12fd9443bb2a3b4dedd09cee90e333e41bb51 -precache-manifest.f827a120dee6582417cfe4b1979f19d5.js,1761764783123,a4ff8d6cbb691d416e802893cc984f2135008b6167e99ee019b88d026a476a1f -static/media/tru-fals-icon.d0b962d8.svg,1761764783104,a1deab7e5db8e8a94a9c5812dcde5f8cbfbe5da790da8500bf106980b9c79c33 -asset-manifest.json,1761764783148,995b77288d91dfaddb18b8753357c286829de77928b93c12f5111f35a76670b8 -index.html,1761764783123,19c7a6e51b117070c55ac4aae347ca3434878b774a65a4a185b0914d2965a1c0 -static/media/translate.610ad011.svg,1761764783106,c06f8a3d0c976b02429ce805d8a4944571ab0128ed2ce49c2d3ca134511ed120 +service-worker.js,1761849017438,7b0d3a5edd95abc3201cb549087f6daf2296a7d55788a5ebde5d1d57e12185eb +index.html,1761849017438,476073569d8a367c4afff6117fd23bee26c445a576cfee07e8868db873b67595 +asset-manifest.json,1761849017438,9ac197fbc1f11a559b9576e9d5c05c376859ee6b38dc8b63abeab60c3d21b53a +precache-manifest.f1f2ae673655f50d61322f39ea4aa0e1.js,1761849017438,46fc2f89bc81e77f85b1a18ceb0fcd9c0d0c472a8b81d87a5173367c61bd5c0f +static/media/tru-fals-icon.d0b962d8.svg,1761849017299,a1deab7e5db8e8a94a9c5812dcde5f8cbfbe5da790da8500bf106980b9c79c33 +static/media/sub-ques-icon.366b4f1e.svg,1761849017305,8e397611007ec5db7581a4c1bcca006950390ddf652cae209bb3973a645af425 assets/images/locale-icon.svg,1761396900579,610498c7ca3b5800d268b1654473f0b1d79de2c6493a7c6982bef90456d35179 assets/images/icons/icon-96x96.png,1761396900602,43a8ac4df8945d7a44e3e4911032214f01eaea92267baa31a93e77942b424c73 assets/images/icons/icon-72x72.png,1761396900600,a42f1df8ab0a8fe921573976d49158e1a2c52fe430460c869947f221aba30a94 @@ -16,52 +16,52 @@ assets/images/icons/icon-192x192.png,1761396900592,ac9fe46fbeb4c54fb3c838b645380 assets/images/icons/icon-152x152.png,1761396900590,95a5a117fbd5640f1f1f13c9923398545e3f5b66734ff6c8ce67c942319a8b67 assets/images/icons/icon-144x144.png,1761396900588,e42168e0e1abb5bd7811ebe1b5a2183d0ce287bf266c2efd8d97a23d23ca8d00 assets/images/icons/icon-128x128.png,1761396900585,45b577c86e7c03fef868bfa3f96810c5b36f31156c32c0d85620d2e6fe1fc85b -static/media/student-engaged.53fb7b0b.svg,1761764783104,5f8e01d1a5efcbdf3aa00ed07de843ab84404a28b672ca91f4d70d89fa8b37cf -static/media/quizexam.5545802e.svg,1761764783100,dfc1278bfcd264264a4d0e0e0247c229335abf0573439c5e9829c8607aacd569 -static/media/sub-ques-icon.366b4f1e.svg,1761764783106,8e397611007ec5db7581a4c1bcca006950390ddf652cae209bb3973a645af425 -static/media/questions-icon.3d3c1aaf.svg,1761764783104,197f459a359b00c1c44b6ddd71cbc9160f593d1fe08534e3711e9d72a2956ef1 -static/media/PracticeKiaLogo.a8336af5.svg,1761764783097,1a592518bcfabb2f86669d06ae2fb7b2948bbdbfaf5a80d138ab30f4e482a0f8 -static/media/practice.f05e6f00.svg,1761764783099,13b094bcbbb8c50906b1ee0ce68305059e99319464dd4147b4c2194dbb460475 -static/media/performance.88855f12.svg,1761764783101,03fc1b19005084049382091745d3f1f29a447763091ad4a9bc5d097c338671c9 -static/media/perf-icon.1597a235.svg,1761764783104,7183482b785de425506f49deb27bba02e906132ac7ce5af01f7da8452ef64f28 -static/media/mul-res-icon.8ef3b097.svg,1761764783104,1f0a79350cb5546361ef02af1657ad36efeff833fd7bb61db88a20e127a290b4 -static/media/OdiSVGlogo.f0834bb1.svg,1761764783097,3ec1cab31a32db378894d796afedaee7c35f8ff99dfb1039b0bb757225a47235 -static/media/practice-icon.bf603115.svg,1761764783104,27b6a729d91914d899f4b3c1f817e26ac58d2ec0be54dc9b93c01f28adcdd00c -static/media/question.0c505ed9.svg,1761764783097,29938066f93476c487414bb7a5dd5227d891c8ab8e115a74a7e7ffccd8d87b36 -static/media/mul-cho-icon.b3dc9ea9.svg,1761764783104,e8edbceb0eb49f7629cf0b8edf599f9347acbf0c6d1df2fa6145cbed03f37e1f -static/media/locale-icon.b3596424.svg,1761764783104,68618c76952aa4c5f2623bb010514871688960bb3b9edbcda0eab7eb75442054 -static/media/GrayscalePKLogo.6bb74404.svg,1761764783097,576b38300e49eda6407adce420001e7ad0333cca317eb668aff457c3258dcca2 -static/media/getFetch.2b2b7da4.cjs,1761764783097,b2d82abee5b8af22b81d67fc20b3feef1eaaf04585dbc24ec755e3304c469096 -static/media/exam-icon.10f48851.svg,1761764783104,b766e9975582af716870a844f8deabd4d80e33a47c400d36cee6bc4840062693 -static/media/feature-2.36f8d7e2.webp,1761764783097,fc1c038517abf3b731ff3a4675cbaf1a6aa1150ca970762dd0ffc4199b92b75c -static/media/delete-icon.da38c0f4.svg,1761764783107,8078772ee88a0588989eec477da1ca949430f3f06efaa9c2db860b74c65f6722 -static/media/dashboard.8ec7624b.svg,1761764783097,5a5b5d4bf416d414842bd5eac30432b592342a392450e52943f067db4077bec1 -static/media/classes.3b73dba0.svg,1761764783100,2abfbb7015d5bccb8640fd0614d3782c048672c9543fe17d127db63287ac141d -static/media/class-icon.6afd34b5.svg,1761764783103,a2f492c6c9c7b5201773062dfe90c238c12bc00bec097dc06141201f02b9588e -static/media/Checkmark.1356376c.svg,1761764783113,aa56f27c8198bcae3236a881a7134cd3b7d3dbb048ec75654e8ce2d4710ce027 -static/media/batch.3fcff66e.svg,1761764783097,f29038480286f091e3805a43f90ca5a70a13bbcef3076831e0b29b1fcb61d862 -static/media/auth-BG.2835584f.svg,1761764783094,238d3a2ff1aead1c4aaed0e07d23d2c1164f8be0ef2d5fced5c5ade370f3c5bf -static/media/batch-icon.bf664771.svg,1761764783104,7519e2a92f436a2f46ef7420d721e24df2837d7fce7fe8c30f4bc12980b3d1a0 -static/media/add-circle.0011f2bc.svg,1761764783104,d9e5d90e8de1ce16df5720b43ca79543036fcf1a6cd6439a9b15c5a97d269f17 -static/js/runtime-main.2bdeab81.js,1761764783115,5c04066aee33f757af11aff4783499664f995e641476c3c1552c373bf87171bb -static/js/4.568469c1.chunk.js.map,1761764783148,f626752d2d2cffe76387c84c314248f1ab02d9c6a79a16442a98e124c8f7d5fa -static/js/runtime-main.2bdeab81.js.map,1761764783148,a6cd518ca4773cf5562057dad7acb281edac1b802572abcdc6ee19c33f02b744 -static/js/4.568469c1.chunk.js,1761764783115,7f998d124bddb5cb8e916a7bb559ddd2f5c133920e79651382bbabf25affc9c4 -static/js/3.d75ced33.chunk.js.map,1761764783148,a12fbfb03ced36f6a8c055bf8b3961a9170b3676c8e4f545921152b23e9bc4dd -static/js/3.d75ced33.chunk.js,1761764783115,c68f66b973c4099ec168a05edb6212303bf31b91c57a2adc0a46595d31262355 -static/js/2.ac9f0d75.chunk.js.LICENSE.txt,1761764783115,9c84bc4d2f8584d32d75e01e0317e22af1e39f5ac5ded3e2e4e34984704c172b -static/media/logo.0dd03933.png,1761764783097,b9716ed1f565a052edc1154a207334de81856339e8ca43d5d8f51041f3785085 -static/media/feature-1.ea5c34ea.svg,1761764783097,d802659785b69508e521d5543fca40a58cb9076521ffc3e6b006f4786b8079f8 -static/media/feature-3.3d5d81e9.svg,1761764783097,ba23393d89776cb78f7a559903baff48be76665abd99bdd4e5ea103c5e5ed88b -static/js/main.962d5966.chunk.js,1761764783108,79a04f8bcc7d0c6dc396754ba1e4010597781782bc2743b2074a2c5a4107412b -static/css/main.b90ebd71.chunk.css,1761764783107,47c0c4a15920e9cea3ceba32d4bc59829a376a7f4347c15b82d7e8878d59008d -static/css/2.561a8df6.chunk.css,1761764783113,c87247fc5cf38902aee0ee29244f6ab0c4bc14e5a0a1d6860cd771410dc826f8 -static/css/4.629184c9.chunk.css,1761764783115,dfeba86da1256521df7a877a265d56d314f65016837f30878338c2b7fc62a6ab -static/css/3.6c5a3051.chunk.css,1761764783113,1ae150a22b1d42322775be9055605f93c75188e7081cfbdb206a59fc2f5ab8f1 -static/js/main.962d5966.chunk.js.map,1761764783148,c15e557e07ac2c5dd288726a7e260295a75111bcdd614be16ec21bb71dcb9e8c -static/css/4.629184c9.chunk.css.map,1761764783148,b82aa57e6e357dbb20067334e544e9b30d20ed0d928c13e6c61e1747e6f5a205 -static/css/3.6c5a3051.chunk.css.map,1761764783124,bcc301c3b3b46c96afc0fc028a6aa3cd299ccda538d7c6cb9ebc87f8de535796 -static/css/main.b90ebd71.chunk.css.map,1761764783116,bff960067cfb59c88b8ec495e5b5334532e05ae898ad3f3a78ee293f74fb7855 -static/css/2.561a8df6.chunk.css.map,1761764783122,ed9f46fc5b36bd835967cfd533fb33fd9ceec9c3aadcbe6c12bfb90b3ad1bc83 -static/js/2.ac9f0d75.chunk.js,1761764783116,a2f10af26647312232ac4cb0601a77496d561a7494b9db1206e2f8632813d0b6 -static/js/2.ac9f0d75.chunk.js.map,1761764783158,093171b5c14d2415bee5b4dbbf9caa643ee948acbb18398fbc5293ec5e9009aa +static/media/translate.610ad011.svg,1761849017302,c06f8a3d0c976b02429ce805d8a4944571ab0128ed2ce49c2d3ca134511ed120 +static/media/student-engaged.53fb7b0b.svg,1761849017297,5f8e01d1a5efcbdf3aa00ed07de843ab84404a28b672ca91f4d70d89fa8b37cf +static/media/quizexam.5545802e.svg,1761849017287,dfc1278bfcd264264a4d0e0e0247c229335abf0573439c5e9829c8607aacd569 +static/media/questions-icon.3d3c1aaf.svg,1761849017297,197f459a359b00c1c44b6ddd71cbc9160f593d1fe08534e3711e9d72a2956ef1 +static/media/question.0c505ed9.svg,1761849017288,29938066f93476c487414bb7a5dd5227d891c8ab8e115a74a7e7ffccd8d87b36 +static/media/PracticeKiaLogo.a8336af5.svg,1761849017279,1a592518bcfabb2f86669d06ae2fb7b2948bbdbfaf5a80d138ab30f4e482a0f8 +static/media/practice.f05e6f00.svg,1761849017288,13b094bcbbb8c50906b1ee0ce68305059e99319464dd4147b4c2194dbb460475 +static/media/practice-icon.bf603115.svg,1761849017298,27b6a729d91914d899f4b3c1f817e26ac58d2ec0be54dc9b93c01f28adcdd00c +static/media/performance.88855f12.svg,1761849017290,03fc1b19005084049382091745d3f1f29a447763091ad4a9bc5d097c338671c9 +static/media/perf-icon.1597a235.svg,1761849017299,7183482b785de425506f49deb27bba02e906132ac7ce5af01f7da8452ef64f28 +static/media/mul-res-icon.8ef3b097.svg,1761849017299,1f0a79350cb5546361ef02af1657ad36efeff833fd7bb61db88a20e127a290b4 +static/media/mul-cho-icon.b3dc9ea9.svg,1761849017299,e8edbceb0eb49f7629cf0b8edf599f9347acbf0c6d1df2fa6145cbed03f37e1f +static/media/locale-icon.b3596424.svg,1761849017296,68618c76952aa4c5f2623bb010514871688960bb3b9edbcda0eab7eb75442054 +static/media/OdiSVGlogo.f0834bb1.svg,1761849017287,3ec1cab31a32db378894d796afedaee7c35f8ff99dfb1039b0bb757225a47235 +static/media/GrayscalePKLogo.6bb74404.svg,1761849017287,576b38300e49eda6407adce420001e7ad0333cca317eb668aff457c3258dcca2 +static/media/getFetch.2b2b7da4.cjs,1761849017286,b2d82abee5b8af22b81d67fc20b3feef1eaaf04585dbc24ec755e3304c469096 +static/media/dashboard.8ec7624b.svg,1761849017287,5a5b5d4bf416d414842bd5eac30432b592342a392450e52943f067db4077bec1 +static/media/feature-2.36f8d7e2.webp,1761849017287,fc1c038517abf3b731ff3a4675cbaf1a6aa1150ca970762dd0ffc4199b92b75c +static/media/exam-icon.10f48851.svg,1761849017297,b766e9975582af716870a844f8deabd4d80e33a47c400d36cee6bc4840062693 +static/media/delete-icon.da38c0f4.svg,1761849017307,8078772ee88a0588989eec477da1ca949430f3f06efaa9c2db860b74c65f6722 +static/media/classes.3b73dba0.svg,1761849017288,2abfbb7015d5bccb8640fd0614d3782c048672c9543fe17d127db63287ac141d +static/media/Checkmark.1356376c.svg,1761849017312,aa56f27c8198bcae3236a881a7134cd3b7d3dbb048ec75654e8ce2d4710ce027 +static/media/class-icon.6afd34b5.svg,1761849017296,a2f492c6c9c7b5201773062dfe90c238c12bc00bec097dc06141201f02b9588e +static/media/batch.3fcff66e.svg,1761849017288,f29038480286f091e3805a43f90ca5a70a13bbcef3076831e0b29b1fcb61d862 +static/media/add-circle.0011f2bc.svg,1761849017297,d9e5d90e8de1ce16df5720b43ca79543036fcf1a6cd6439a9b15c5a97d269f17 +static/media/batch-icon.bf664771.svg,1761849017299,7519e2a92f436a2f46ef7420d721e24df2837d7fce7fe8c30f4bc12980b3d1a0 +static/js/runtime-main.2bdeab81.js,1761849017323,5c04066aee33f757af11aff4783499664f995e641476c3c1552c373bf87171bb +static/js/runtime-main.2bdeab81.js.map,1761849017439,a6cd518ca4773cf5562057dad7acb281edac1b802572abcdc6ee19c33f02b744 +static/js/4.568469c1.chunk.js.map,1761849017441,f626752d2d2cffe76387c84c314248f1ab02d9c6a79a16442a98e124c8f7d5fa +static/media/auth-BG.2835584f.svg,1761849017286,238d3a2ff1aead1c4aaed0e07d23d2c1164f8be0ef2d5fced5c5ade370f3c5bf +static/js/4.568469c1.chunk.js,1761849017330,7f998d124bddb5cb8e916a7bb559ddd2f5c133920e79651382bbabf25affc9c4 +static/js/3.d75ced33.chunk.js.map,1761849017441,a12fbfb03ced36f6a8c055bf8b3961a9170b3676c8e4f545921152b23e9bc4dd +static/js/2.62337eda.chunk.js.LICENSE.txt,1761849017336,9c84bc4d2f8584d32d75e01e0317e22af1e39f5ac5ded3e2e4e34984704c172b +static/js/3.d75ced33.chunk.js,1761849017330,c68f66b973c4099ec168a05edb6212303bf31b91c57a2adc0a46595d31262355 +static/media/logo.0dd03933.png,1761849017287,b9716ed1f565a052edc1154a207334de81856339e8ca43d5d8f51041f3785085 +static/media/feature-1.ea5c34ea.svg,1761849017287,d802659785b69508e521d5543fca40a58cb9076521ffc3e6b006f4786b8079f8 +static/media/feature-3.3d5d81e9.svg,1761849017287,ba23393d89776cb78f7a559903baff48be76665abd99bdd4e5ea103c5e5ed88b +static/js/main.21fe2de6.chunk.js,1761849017312,29f23a2722a37f60354e3f5cccd9ec2b813f3a33dd5432f23feb6a9126058247 +static/css/main.b90ebd71.chunk.css,1761849017308,47c0c4a15920e9cea3ceba32d4bc59829a376a7f4347c15b82d7e8878d59008d +static/css/4.629184c9.chunk.css,1761849017330,dfeba86da1256521df7a877a265d56d314f65016837f30878338c2b7fc62a6ab +static/css/2.561a8df6.chunk.css,1761849017329,c87247fc5cf38902aee0ee29244f6ab0c4bc14e5a0a1d6860cd771410dc826f8 +static/css/3.6c5a3051.chunk.css,1761849017330,1ae150a22b1d42322775be9055605f93c75188e7081cfbdb206a59fc2f5ab8f1 +static/js/main.21fe2de6.chunk.js.map,1761849017440,369512ab4f033f136ac3507aaaca944f5974993775a629cb918a438221c65ce2 +static/css/4.629184c9.chunk.css.map,1761849017441,b82aa57e6e357dbb20067334e544e9b30d20ed0d928c13e6c61e1747e6f5a205 +static/css/3.6c5a3051.chunk.css.map,1761849017426,bcc301c3b3b46c96afc0fc028a6aa3cd299ccda538d7c6cb9ebc87f8de535796 +static/css/main.b90ebd71.chunk.css.map,1761849017331,bff960067cfb59c88b8ec495e5b5334532e05ae898ad3f3a78ee293f74fb7855 +static/css/2.561a8df6.chunk.css.map,1761849017352,ed9f46fc5b36bd835967cfd533fb33fd9ceec9c3aadcbe6c12bfb90b3ad1bc83 +static/js/2.62337eda.chunk.js,1761849017334,77cf5f150a62f871cd755bda4416b033e3beb160bd839ff268a882922536c428 +static/js/2.62337eda.chunk.js.map,1761849017458,b9d5a81200c981136931f3bc4b5e66963f392de9e4de8bd1e6f9821749e0164b diff --git a/package-lock.json b/package-lock.json index 09e03b4..53bad67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47,7 +47,7 @@ "react-plotly.js": "^2.5.0", "react-quill": "^2.0.0", "react-responsive": "^8.2.0", - "react-router-dom": "^5.2.0", + "react-router-dom": "^5.3.4", "react-scripts": "^3.4.3", "react-simplemde-editor": "^5.0.2", "rxjs": "^6.6.3", @@ -11195,6 +11195,7 @@ "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2", "loose-envify": "^1.2.0", @@ -15202,19 +15203,6 @@ "node": ">=4" } }, - "node_modules/mini-create-react-context": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", - "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", - "dependencies": { - "@babel/runtime": "^7.12.1", - "tiny-warning": "^1.0.3" - }, - "peerDependencies": { - "prop-types": "^15.0.0", - "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, "node_modules/mini-css-extract-plugin": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", @@ -16641,9 +16629,10 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "license": "MIT", "dependencies": { "isarray": "0.0.1" } @@ -16651,7 +16640,8 @@ "node_modules/path-to-regexp/node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" }, "node_modules/path-type": { "version": "3.0.0", @@ -19671,15 +19661,15 @@ } }, "node_modules/react-router": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.1.tgz", - "integrity": "sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", "hoist-non-react-statics": "^3.1.0", "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", "path-to-regexp": "^1.7.0", "prop-types": "^15.6.2", "react-is": "^16.6.0", @@ -19691,15 +19681,16 @@ } }, "node_modules/react-router-dom": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.0.tgz", - "integrity": "sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", "loose-envify": "^1.3.1", "prop-types": "^15.6.2", - "react-router": "5.2.1", + "react-router": "5.3.4", "tiny-invariant": "^1.0.2", "tiny-warning": "^1.0.0" }, @@ -20818,7 +20809,8 @@ "node_modules/resolve-pathname": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", + "license": "MIT" }, "node_modules/resolve-protobuf-schema": { "version": "2.1.0", @@ -23317,9 +23309,10 @@ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" }, "node_modules/tiny-invariant": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz", - "integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==" + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" }, "node_modules/tiny-warning": { "version": "1.0.3", @@ -24142,7 +24135,8 @@ "node_modules/value-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", + "license": "MIT" }, "node_modules/vary": { "version": "1.1.2", @@ -37646,15 +37640,6 @@ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" }, - "mini-create-react-context": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", - "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", - "requires": { - "@babel/runtime": "^7.12.1", - "tiny-warning": "^1.0.3" - } - }, "mini-css-extract-plugin": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", @@ -38856,9 +38841,9 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", "requires": { "isarray": "0.0.1" }, @@ -38866,7 +38851,7 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" } } }, @@ -41272,15 +41257,14 @@ } }, "react-router": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.1.tgz", - "integrity": "sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", "requires": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", "hoist-non-react-statics": "^3.1.0", "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", "path-to-regexp": "^1.7.0", "prop-types": "^15.6.2", "react-is": "^16.6.0", @@ -41289,15 +41273,15 @@ } }, "react-router-dom": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.0.tgz", - "integrity": "sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", "requires": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", "loose-envify": "^1.3.1", "prop-types": "^15.6.2", - "react-router": "5.2.1", + "react-router": "5.3.4", "tiny-invariant": "^1.0.2", "tiny-warning": "^1.0.0" } @@ -44311,9 +44295,9 @@ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" }, "tiny-invariant": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz", - "integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==" + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" }, "tiny-warning": { "version": "1.0.3", diff --git a/package.json b/package.json index e5e25fd..d801dae 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "react-plotly.js": "^2.5.0", "react-quill": "^2.0.0", "react-responsive": "^8.2.0", - "react-router-dom": "^5.2.0", + "react-router-dom": "^5.3.4", "react-scripts": "^3.4.3", "react-simplemde-editor": "^5.0.2", "rxjs": "^6.6.3", diff --git a/src/component/Student/Exams/AttemptExam/AttemptExam.js b/src/component/Student/Exams/AttemptExam/AttemptExam.js index c669eed..0992930 100644 --- a/src/component/Student/Exams/AttemptExam/AttemptExam.js +++ b/src/component/Student/Exams/AttemptExam/AttemptExam.js @@ -1,4 +1,5 @@ import React from "react"; +import { Redirect } from "react-router-dom"; import "./AttemptExam.css"; import { authenticationService } from "../../../../_services"; import { selectorService } from "../../../../services/selectorService"; @@ -97,12 +98,13 @@ class AttemptExam extends React.Component { let questionsArray = this.getExamModelToUpdate(); this.stopExamUpdate(); - selectorService.endExam(this.state.attempt_id, questionsArray) + selectorService + .endExam(this.state.attempt_id, questionsArray) .then((_data) => { console.log("Exam Ended"); - // ✅ Go back to the previous page after exam ends - window.history.back(); + // ✅ Trigger redirect + this.setState({ redirect: true }); }) .catch((error) => { console.error("Error ending exam:", error); @@ -228,7 +230,8 @@ class AttemptExam extends React.Component { const answerObject = { question_id: childData.id, answer_duration: childData.answer_duration || 10, - is_reviewed: childData.is_reviewed || false, + is_reviewed: childData.isReviewMarked || false, + is_visited: true, answers: selectedAnswers }; @@ -247,6 +250,18 @@ class AttemptExam extends React.Component { } render() { + + if (this.state.redirect) { + return ( + + ); + } + let listItems = ""; let accordions = ""; let activeQuestion = ""; diff --git a/src/component/Student/Exams/Report/Report.js b/src/component/Student/Exams/Report/Report.js index e9ff7d7..12b8e6b 100644 --- a/src/component/Student/Exams/Report/Report.js +++ b/src/component/Student/Exams/Report/Report.js @@ -33,6 +33,7 @@ import { selectorService } from "../../../../services/selectorService"; import Plot from "react-plotly.js"; import { DashboardOutlined, PieChartOutlined } from "@ant-design/icons"; import "./Report.css"; +import { useLocation } from "react-router-dom/cjs/react-router-dom.min"; const { Content } = Layout; const { TabPane } = Tabs; @@ -49,6 +50,7 @@ class Report extends React.Component { visible: false, typeDropdown: [], typeDifficulty: [], + attempt_id: this.props.location.state?.attempt_id || null, }; componentDidMount() { @@ -68,7 +70,7 @@ class Report extends React.Component { handleLoadReportForExam() { selectorService - .loadReport(this.props.location.state.examId) + .loadReport(this.state.attempt_id) .then((data) => { console.log(data); const result = data.result; @@ -648,9 +650,9 @@ class Report extends React.Component { ) ? 0 : ( - item.total_MCQ_correct / - item.total_MCQ_attempt - ).toFixed(2) * 100} + item.total_MCQ_correct / + item.total_MCQ_attempt + ).toFixed(2) * 100} % @@ -663,7 +665,7 @@ class Report extends React.Component { y: [ item.total_MCQ_correct, item.total_MCQ_attempt - - item.total_MCQ_correct, + item.total_MCQ_correct, item.total_MCQ - item.total_MCQ_attempt, ], orientation: "v", @@ -678,7 +680,7 @@ class Report extends React.Component { 1, item.total_MCQ_correct, item.total_MCQ_attempt - - item.total_MCQ_correct, + item.total_MCQ_correct, item.total_MCQ - item.total_MCQ_attempt ), ], @@ -740,9 +742,9 @@ class Report extends React.Component { ) ? 0 : ( - item.total_MRQ_correct / - item.total_MRQ_attempt - ).toFixed(2) * 100} + item.total_MRQ_correct / + item.total_MRQ_attempt + ).toFixed(2) * 100} % @@ -755,7 +757,7 @@ class Report extends React.Component { y: [ item.total_MRQ_correct, item.total_MRQ_attempt - - item.total_MRQ_correct, + item.total_MRQ_correct, item.total_MRQ - item.total_MRQ_attempt, ], orientation: "v", @@ -770,7 +772,7 @@ class Report extends React.Component { 1, item.total_MRQ_correct, item.total_MRQ_attempt - - item.total_MRQ_correct, + item.total_MRQ_correct, item.total_MRQ - item.total_MRQ_attempt ), ], @@ -831,9 +833,9 @@ class Report extends React.Component { ) ? 0 : ( - item.total_TF_correct / - item.total_TF_attempt - ).toFixed(2) * 100} + item.total_TF_correct / + item.total_TF_attempt + ).toFixed(2) * 100} % @@ -846,7 +848,7 @@ class Report extends React.Component { y: [ item.total_TF_correct, item.total_TF_attempt - - item.total_TF_correct, + item.total_TF_correct, item.total_TF - item.total_TF_attempt, ], orientation: "v", @@ -862,7 +864,7 @@ class Report extends React.Component { 0, item.total_TF_correct, item.total_TF_attempt - - item.total_TF_correct, + item.total_TF_correct, item.total_TF - item.total_TF_attempt ), ], @@ -1028,8 +1030,8 @@ class Report extends React.Component { (x.isCorrect ? "green" : x.isAttempted - ? "red" - : "grey"), + ? "red" + : "grey"), position: "relative", cursor: "pointer", }} @@ -1044,15 +1046,15 @@ class Report extends React.Component { color: x.isCorrect ? "green" : x.isAttempted - ? "red" - : "grey", + ? "red" + : "grey", }} > {x.isCorrect ? "Correct" : x.isAttempted - ? "Incorrect" - : "Not Answered"} + ? "Incorrect" + : "Not Answered"} {parse(x.question_text)} @@ -1123,8 +1125,8 @@ class Report extends React.Component { backgroundColor: x.isCorrect ? "green" : item.isAttempted - ? "red" - : "rgb(162, 164, 169)", + ? "red" + : "rgb(162, 164, 169)", cursor: "pointer", }} > @@ -1141,24 +1143,24 @@ class Report extends React.Component { closable={false} onClose={this.handleCancel} visible={this.state.visible} - // footer={ - //
- // - // - //
- // } + // footer={ + //
+ // + // + //
+ // } >

@@ -1209,8 +1211,8 @@ class Report extends React.Component { color: x.isCorrect ? "green" : x.isAttempted - ? "red" - : "grey", + ? "red" + : "grey", }} > {" "} diff --git a/src/services/selectorService.js b/src/services/selectorService.js index 456cc1c..72eca65 100644 --- a/src/services/selectorService.js +++ b/src/services/selectorService.js @@ -146,7 +146,7 @@ function loadReport(examId) { currentUser.language_name = "English"; } return fetch( - "https://api.odiprojects.com/api-institute/v1/" + + "https://api.odiprojects.com/api-student/v1/" + currentUser.language_code + "/ExamAttempts/" + examId +