From ae360b91841102df116a7a4dca8d0b6b075357d5 Mon Sep 17 00:00:00 2001 From: "skillens.ai" Date: Mon, 3 Nov 2025 21:30:53 +0530 Subject: [PATCH] live exam changes --- .firebase/hosting.YnVpbGQ.cache | 170 ++++++++++++------ package-lock.json | 66 +++++++ package.json | 1 + src/App.js | 1 - .../Student/Exams/AttemptExam/AttemptExam.css | 47 +++-- .../Student/Exams/AttemptExam/AttemptExam.js | 138 ++++++++------ .../Exams/AttemptExam/QuestionDetail.js | 52 +++--- .../Student/Exams/LiveExams/LiveExams.js | 2 +- 8 files changed, 322 insertions(+), 155 deletions(-) diff --git a/.firebase/hosting.YnVpbGQ.cache b/.firebase/hosting.YnVpbGQ.cache index d680f9a..009abe7 100644 --- a/.firebase/hosting.YnVpbGQ.cache +++ b/.firebase/hosting.YnVpbGQ.cache @@ -1,12 +1,72 @@ robots.txt,1761396900570,bfe106a3fb878dc83461c86818bf74fc1bdc7f28538ba613cd3e775516ce8b49 manifest.json,1761396900568,a9350a49aaac9fe94d3dd77b8270cc998c04ab97944a606189675022431faa51 favicon.svg,1761396900561,a2a4880301751061a600b0bfc5c26fc413aed41e581516c4fa976bcb7fff6663 -service-worker.js,1762008702040,a2abab7acf1300ad85eef61ef6c7d661128c243cda0101a23720484c5ffc849d -precache-manifest.e24f7d8cb814a4ad35948f841cb14aeb.js,1762008702039,a30d4da0b56949ddfdd19623bb0d91f89672375f67930b9682d636dd2261488a -asset-manifest.json,1762008702040,32012ef3ae36fa076ed8bf5a21d65fe5d7b3b438950ba52ffe504796dd94c53a -index.html,1762008702039,30d577992c5d76398025ffe172958305a228bb89cacd3db1be0e847e5a3e7f75 -static/media/sub-ques-icon.366b4f1e.svg,1762008701928,8e397611007ec5db7581a4c1bcca006950390ddf652cae209bb3973a645af425 -static/media/tru-fals-icon.d0b962d8.svg,1762008701928,a1deab7e5db8e8a94a9c5812dcde5f8cbfbe5da790da8500bf106980b9c79c33 +service-worker.js,1762033576010,cfb0ce475baa94cc60e1869832c0fe2939e1c4a58299d87c831802921cf671ba +precache-manifest.e792bfc4213ddd52029a478d6027fc99.js,1762033576009,76ded865b62480a7f3e65736db15833c6baa240b7471fb78664c1b8fc48d3a11 +static/media/sub-ques-icon.366b4f1e.svg,1762033575914,8e397611007ec5db7581a4c1bcca006950390ddf652cae209bb3973a645af425 +index.html,1762033575945,da5fdeefcd2690e56b536507d9ec1ad38b5224edbdbbfa9bc496cd74a277782b +asset-manifest.json,1762033576010,16aaa20a6971f047d30fbaaccca3dafda9e2f25d77fc37bf42c11976ead91d1e +static/media/tru-fals-icon.d0b962d8.svg,1762033575911,a1deab7e5db8e8a94a9c5812dcde5f8cbfbe5da790da8500bf106980b9c79c33 +static/media/student-engaged.53fb7b0b.svg,1762033575909,5f8e01d1a5efcbdf3aa00ed07de843ab84404a28b672ca91f4d70d89fa8b37cf +static/media/translate.610ad011.svg,1762033575915,c06f8a3d0c976b02429ce805d8a4944571ab0128ed2ce49c2d3ca134511ed120 +static/media/quizexam.5545802e.svg,1762033575902,dfc1278bfcd264264a4d0e0e0247c229335abf0573439c5e9829c8607aacd569 +static/media/question.0c505ed9.svg,1762033575901,29938066f93476c487414bb7a5dd5227d891c8ab8e115a74a7e7ffccd8d87b36 +static/media/questions-icon.3d3c1aaf.svg,1762033575909,197f459a359b00c1c44b6ddd71cbc9160f593d1fe08534e3711e9d72a2956ef1 +static/media/PracticeKiaLogo.a8336af5.svg,1762033575843,1a592518bcfabb2f86669d06ae2fb7b2948bbdbfaf5a80d138ab30f4e482a0f8 +static/media/practice.f05e6f00.svg,1762033575902,13b094bcbbb8c50906b1ee0ce68305059e99319464dd4147b4c2194dbb460475 +static/media/practice-icon.bf603115.svg,1762033575909,27b6a729d91914d899f4b3c1f817e26ac58d2ec0be54dc9b93c01f28adcdd00c +static/media/performance.88855f12.svg,1762033575907,03fc1b19005084049382091745d3f1f29a447763091ad4a9bc5d097c338671c9 +static/media/OdiSVGlogo.f0834bb1.svg,1762033575853,3ec1cab31a32db378894d796afedaee7c35f8ff99dfb1039b0bb757225a47235 +static/media/perf-icon.1597a235.svg,1762033575910,7183482b785de425506f49deb27bba02e906132ac7ce5af01f7da8452ef64f28 +static/media/mul-res-icon.8ef3b097.svg,1762033575911,1f0a79350cb5546361ef02af1657ad36efeff833fd7bb61db88a20e127a290b4 +static/media/mul-cho-icon.b3dc9ea9.svg,1762033575910,e8edbceb0eb49f7629cf0b8edf599f9347acbf0c6d1df2fa6145cbed03f37e1f +static/media/locale-icon.b3596424.svg,1762033575907,68618c76952aa4c5f2623bb010514871688960bb3b9edbcda0eab7eb75442054 +static/media/KaTeX_Size4-Regular.61522cd3.woff2,1762033575899,65378bc44e4f908ff3e7d3b5a36f1351cd29dbed446fcf86ebe0655afefe9ea8 +static/media/KaTeX_Size4-Regular.3045a61f.woff,1762033575898,c397a0db368b7313fdae7297ab0efb8f25f1bc12afc4ce691dabf8e0918017fa +static/media/KaTeX_Typewriter-Regular.b8b8393d.woff2,1762033575899,54a0126379ac9b84c5745f17cd0ac9bf11532ea04c39d387d165a71caf77f8d2 +static/media/KaTeX_Size3-Regular.9108a400.woff2,1762033575891,01dd9815f099722e1f7958ab976d9c0ee81615fa39699daf775fdd8a953ff8b1 +static/media/KaTeX_Size3-Regular.963af864.ttf,1762033575900,f94a1dddcfc1df9beb0ecfaf0a73c3df96009a8d7e8a098ada1aa3a39e9ca678 +static/media/KaTeX_Size4-Regular.27a23ee6.ttf,1762033575899,df3392005f1d7a6f9bd8cbc0d1e0f06c147944fdd86e3316fd38d4f55f8e4a9f +static/media/KaTeX_Size3-Regular.4de844d4.woff,1762033575893,4398fd91cc5e6b45e4293262c5361ada3a54a24aff0d7a38bc70d3a242f0ef27 +static/media/KaTeX_Size2-Regular.b0628bfd.woff,1762033575893,e23e150fad1a0531631c97f0170716a09b51211d3ad23c84794647ef603a19de +static/media/KaTeX_Size2-Regular.95a1da91.woff2,1762033575891,47c15e4348ddda442adae347550b466a6325266ccf8d7a4793481682b5bdf4f2 +static/media/KaTeX_Size1-Regular.82ef26dc.woff2,1762033575889,353eb899698a648194c4bfabf250818092ebfdee0f3078346c3acb4194797f48 +static/media/KaTeX_Typewriter-Regular.0e046058.woff,1762033575900,82cff08904dbae816ffe38a914d56622c9b677680bba6a629e584a19ffb6e873 +static/media/KaTeX_Script-Regular.a82fa2a7.woff,1762033575889,84a67d2df883ac10ca688757491e777b64ef90f94ca712cc23b64a8c97de68af +static/media/KaTeX_Size1-Regular.4788ba5b.woff,1762033575888,8e8412c0abbcb89ea321e50ec95b55bfe9d77486c84664fbca5b9b101bab7f3d +static/media/KaTeX_Size2-Regular.1fdda0e5.ttf,1762033575889,1685351b16075c0e5c880bbb9c6a3b4c5161ac3c852cc8a67963a37d7311b2b9 +static/media/KaTeX_Size1-Regular.0d8d9204.ttf,1762033575889,535e05d118e935a5a1ce5be35dc03a4b20a69ccc5f25210206deaed676c16a64 +static/media/KaTeX_SansSerif-Regular.5f8637ee.woff,1762033575880,d0d8050720c1b4cedb8cfe1feb22dc45fc0382ff62b5504c7fc09e1c24652544 +static/media/KaTeX_Script-Regular.1b3161eb.woff2,1762033575887,a5bfd2c095c085b45d10126c94e5cc116a0ea8fd7946a49b54a95da414535890 +static/media/KaTeX_Script-Regular.a189c37d.ttf,1762033575889,ec985a3df1d229119c660bfaa16e4be32ec7391f09d9c1e220cef2b149745a1a +static/media/KaTeX_SansSerif-Regular.3243452e.ttf,1762033575888,89e5632b7b1d0a3b94bcb71efd36838bb407d575f0212a8d3499b3c3c0fcb12c +static/media/KaTeX_SansSerif-Regular.1ac3ed6e.woff2,1762033575881,2836d2dafad00dd468d7e2b8f305eeb3af4f434980bc7efb3c696e6968cec09b +static/media/KaTeX_SansSerif-Italic.f60b4a34.ttf,1762033575881,cf5a68a17d022639016a9da976bb6a4ab05e06ccd74ce712db3009adcf34fd32 +static/media/KaTeX_SansSerif-Italic.ef725de5.woff,1762033575900,9476b240a74b872f7cbe8517997d68df0c375e3d52a58e165f893a7191f54e86 +static/media/KaTeX_SansSerif-Italic.e934cbc8.woff2,1762033575880,2a474c036e86d3fcabb4f8d68318ccce7e5e103f27f804e1fd74a1646ed15cae +static/media/KaTeX_SansSerif-Bold.ad546b47.woff2,1762033575878,9a2e88c7f50de44ea6842c0dc687cd0fc54cff06a47bf6408cf1eba76e25bb81 +static/media/KaTeX_SansSerif-Bold.f2ac7312.ttf,1762033575887,a248317ab48e3dc924f1c87b13a27cc5e6d887272d02b1c1cab72795de2c9591 +static/media/KaTeX_SansSerif-Bold.0e897d27.woff,1762033575879,06df349cd9f09f229c964190cea7b3487aefe84f055207793ddf3e83a3db281a +static/media/logo.0dd03933.png,1762033575852,b9716ed1f565a052edc1154a207334de81856339e8ca43d5d8f51041f3785085 +static/media/KaTeX_Typewriter-Regular.6bf42875.ttf,1762033575900,3f8e9a7e1c8f9835a5fdbf303b775991de8d868a7b8ee8eb1f32b0b01ed1b90b +static/media/KaTeX_Math-Italic.ed7aea12.woff,1762033575879,7f65f9be10f45caa82382689fe21bf358899ac28002cbd44d3696eea1d6affee +static/media/KaTeX_Math-Italic.fe5ed587.ttf,1762033575881,1cf503e99eee1d6931a59f03a2718c879571c4bc878d8c5bb310c057e15fcffa +static/media/KaTeX_Fraktur-Regular.f9e6a99f.woff2,1762033575864,30c5ebf8d693d9a6db88068bd72eca6aaab2313d91682e147db6ae4d43efc013 +static/media/KaTeX_Fraktur-Regular.e435cda5.woff,1762033575865,1ed825d761d10b653432e13606827af1a1621353e75a2bb10c9fdc3f9568cbf2 +static/media/KaTeX_Fraktur-Regular.97a699d8.ttf,1762033575865,c84e9b333b1c3dfd0edf947b0166c4436bded08309d47955b99fa4e43177bdaf +static/media/KaTeX_Fraktur-Bold.796f3797.woff2,1762033575854,440fe396e2bc189c86a666bed548bed61a5482c3afaa04eb41e5b4e977f9accd +static/media/KaTeX_Fraktur-Bold.40934fc0.woff,1762033575864,8a9c9bd2084df9282df1c63c593dda4c662d2a8111d09956d5bf2c92e6213f4a +static/media/KaTeX_Fraktur-Bold.b9d7c449.ttf,1762033575865,05ef840382f3b9a91d6a08c707c5288ed173a0623b5f986c92d03afd59d2972e +static/media/KaTeX_Caligraphic-Regular.08d95d99.woff2,1762033575864,d4574df1e20cd3519662aff34dcdfa42339c48bfd9dd675d804723794949a8c8 +static/media/KaTeX_Caligraphic-Regular.e6fb499f.ttf,1762033575864,7d6aca5b5f7d749a0fd1f9e4e7449b1b79a347fd08696f5cadc303ea5e3f3f1c +static/media/KaTeX_Caligraphic-Bold.a9e9b095.woff2,1762033575852,80906c4f0be4d8dccfbb0d3b8cafe79b6ba8bc3200c3c9f060b5616a4d8dec39 +static/media/KaTeX_Caligraphic-Regular.a25140fb.woff,1762033575852,41d8909c711af0e11e9df1fa5bbd8c14071e22130fbac9b6518e920386152038 +static/media/KaTeX_Caligraphic-Bold.de2ba279.woff,1762033575853,4e80ee5909ce3b5b965be5b11b75919d58dc6633d372869dbbbbd13f93dbd662 +static/media/KaTeX_Caligraphic-Bold.497bf407.ttf,1762033575858,50b8dd982d91b531aaf3009e30dc42e72635d476bd0e3d6fe9ba2bdb5c7a036f +static/media/getFetch.2b2b7da4.cjs,1762033575852,b2d82abee5b8af22b81d67fc20b3feef1eaaf04585dbc24ec755e3304c469096 +static/media/GrayscalePKLogo.6bb74404.svg,1762033575852,576b38300e49eda6407adce420001e7ad0333cca317eb668aff457c3258dcca2 +static/media/feature-2.36f8d7e2.webp,1762033575852,fc1c038517abf3b731ff3a4675cbaf1a6aa1150ca970762dd0ffc4199b92b75c +static/media/delete-icon.da38c0f4.svg,1762033575923,8078772ee88a0588989eec477da1ca949430f3f06efaa9c2db860b74c65f6722 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 +76,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/translate.610ad011.svg,1762008701933,c06f8a3d0c976b02429ce805d8a4944571ab0128ed2ce49c2d3ca134511ed120 -static/media/student-engaged.53fb7b0b.svg,1762008701925,5f8e01d1a5efcbdf3aa00ed07de843ab84404a28b672ca91f4d70d89fa8b37cf -static/media/quizexam.5545802e.svg,1762008701907,dfc1278bfcd264264a4d0e0e0247c229335abf0573439c5e9829c8607aacd569 -static/media/questions-icon.3d3c1aaf.svg,1762008701925,197f459a359b00c1c44b6ddd71cbc9160f593d1fe08534e3711e9d72a2956ef1 -static/media/PracticeKiaLogo.a8336af5.svg,1762008701893,1a592518bcfabb2f86669d06ae2fb7b2948bbdbfaf5a80d138ab30f4e482a0f8 -static/media/question.0c505ed9.svg,1762008701902,29938066f93476c487414bb7a5dd5227d891c8ab8e115a74a7e7ffccd8d87b36 -static/media/practice-icon.bf603115.svg,1762008701926,27b6a729d91914d899f4b3c1f817e26ac58d2ec0be54dc9b93c01f28adcdd00c -static/media/perf-icon.1597a235.svg,1762008701926,7183482b785de425506f49deb27bba02e906132ac7ce5af01f7da8452ef64f28 -static/media/practice.f05e6f00.svg,1762008701910,13b094bcbbb8c50906b1ee0ce68305059e99319464dd4147b4c2194dbb460475 -static/media/OdiSVGlogo.f0834bb1.svg,1762008701902,3ec1cab31a32db378894d796afedaee7c35f8ff99dfb1039b0bb757225a47235 -static/media/mul-res-icon.8ef3b097.svg,1762008701927,1f0a79350cb5546361ef02af1657ad36efeff833fd7bb61db88a20e127a290b4 -static/media/performance.88855f12.svg,1762008701915,03fc1b19005084049382091745d3f1f29a447763091ad4a9bc5d097c338671c9 -static/media/mul-cho-icon.b3dc9ea9.svg,1762008701928,e8edbceb0eb49f7629cf0b8edf599f9347acbf0c6d1df2fa6145cbed03f37e1f -static/media/locale-icon.b3596424.svg,1762008701924,68618c76952aa4c5f2623bb010514871688960bb3b9edbcda0eab7eb75442054 -static/media/GrayscalePKLogo.6bb74404.svg,1762008701902,576b38300e49eda6407adce420001e7ad0333cca317eb668aff457c3258dcca2 -static/media/getFetch.2b2b7da4.cjs,1762008701902,b2d82abee5b8af22b81d67fc20b3feef1eaaf04585dbc24ec755e3304c469096 -static/media/feature-2.36f8d7e2.webp,1762008701902,fc1c038517abf3b731ff3a4675cbaf1a6aa1150ca970762dd0ffc4199b92b75c -static/media/exam-icon.10f48851.svg,1762008701925,b766e9975582af716870a844f8deabd4d80e33a47c400d36cee6bc4840062693 -static/media/delete-icon.da38c0f4.svg,1762008701941,8078772ee88a0588989eec477da1ca949430f3f06efaa9c2db860b74c65f6722 -static/media/dashboard.8ec7624b.svg,1762008701904,5a5b5d4bf416d414842bd5eac30432b592342a392450e52943f067db4077bec1 -static/media/classes.3b73dba0.svg,1762008701907,2abfbb7015d5bccb8640fd0614d3782c048672c9543fe17d127db63287ac141d -static/media/Checkmark.1356376c.svg,1762008701963,aa56f27c8198bcae3236a881a7134cd3b7d3dbb048ec75654e8ce2d4710ce027 -static/media/batch.3fcff66e.svg,1762008701910,f29038480286f091e3805a43f90ca5a70a13bbcef3076831e0b29b1fcb61d862 -static/media/auth-BG.2835584f.svg,1762008701899,238d3a2ff1aead1c4aaed0e07d23d2c1164f8be0ef2d5fced5c5ade370f3c5bf -static/media/class-icon.6afd34b5.svg,1762008701924,a2f492c6c9c7b5201773062dfe90c238c12bc00bec097dc06141201f02b9588e -static/media/batch-icon.bf664771.svg,1762008701926,7519e2a92f436a2f46ef7420d721e24df2837d7fce7fe8c30f4bc12980b3d1a0 -static/media/add-circle.0011f2bc.svg,1762008701927,d9e5d90e8de1ce16df5720b43ca79543036fcf1a6cd6439a9b15c5a97d269f17 -static/js/runtime-main.2bdeab81.js,1762008701965,5c04066aee33f757af11aff4783499664f995e641476c3c1552c373bf87171bb -static/js/runtime-main.2bdeab81.js.map,1762008702040,a6cd518ca4773cf5562057dad7acb281edac1b802572abcdc6ee19c33f02b744 -static/js/4.568469c1.chunk.js.map,1762008702398,f626752d2d2cffe76387c84c314248f1ab02d9c6a79a16442a98e124c8f7d5fa -static/js/4.568469c1.chunk.js,1762008701978,7f998d124bddb5cb8e916a7bb559ddd2f5c133920e79651382bbabf25affc9c4 -static/js/3.d75ced33.chunk.js.map,1762008702398,a12fbfb03ced36f6a8c055bf8b3961a9170b3676c8e4f545921152b23e9bc4dd -static/js/3.d75ced33.chunk.js,1762008701975,c68f66b973c4099ec168a05edb6212303bf31b91c57a2adc0a46595d31262355 -static/js/2.a43d95bf.chunk.js.LICENSE.txt,1762008701979,9c84bc4d2f8584d32d75e01e0317e22af1e39f5ac5ded3e2e4e34984704c172b -static/media/logo.0dd03933.png,1762008701902,b9716ed1f565a052edc1154a207334de81856339e8ca43d5d8f51041f3785085 -static/media/feature-1.ea5c34ea.svg,1762008701899,d802659785b69508e521d5543fca40a58cb9076521ffc3e6b006f4786b8079f8 -static/media/feature-3.3d5d81e9.svg,1762008701901,ba23393d89776cb78f7a559903baff48be76665abd99bdd4e5ea103c5e5ed88b -static/js/main.8ff1a521.chunk.js,1762008701955,d26ec0fa3004f79313bee1eef7ae5c387092d9d85e74040358e1d6fef1f3345f -static/css/main.bc6737c7.chunk.css,1762008701945,76e80fb65abfd974532458046d6fad237c3ce9360fc1f06058c9a5497c2cb2ab -static/css/4.629184c9.chunk.css,1762008701975,dfeba86da1256521df7a877a265d56d314f65016837f30878338c2b7fc62a6ab -static/css/2.561a8df6.chunk.css,1762008701966,c87247fc5cf38902aee0ee29244f6ab0c4bc14e5a0a1d6860cd771410dc826f8 -static/css/3.6c5a3051.chunk.css,1762008701972,1ae150a22b1d42322775be9055605f93c75188e7081cfbdb206a59fc2f5ab8f1 -static/css/4.629184c9.chunk.css.map,1762008701995,b82aa57e6e357dbb20067334e544e9b30d20ed0d928c13e6c61e1747e6f5a205 -static/js/main.8ff1a521.chunk.js.map,1762008702041,6165ce4addd97c1db3468075950c1febf7c6bb67dd712a42c3a3af585dbe0546 -static/css/3.6c5a3051.chunk.css.map,1762008701984,bcc301c3b3b46c96afc0fc028a6aa3cd299ccda538d7c6cb9ebc87f8de535796 -static/css/2.561a8df6.chunk.css.map,1762008701982,ed9f46fc5b36bd835967cfd533fb33fd9ceec9c3aadcbe6c12bfb90b3ad1bc83 -static/css/main.bc6737c7.chunk.css.map,1762008701980,9e488d986552c43427a0a668fd428eb0cf64772473d95e905de639079896eeda -static/js/2.a43d95bf.chunk.js,1762008701969,e4a75b184cbb51bd95baa7cb97581e00e72d83a37f15540e9d8f845c7d90eb6a -static/js/2.a43d95bf.chunk.js.map,1762008702412,154c414780aa8752ddddd74528ff704d5ae7243dcdebea39ea84400667c889c1 +static/media/exam-icon.10f48851.svg,1762033575909,b766e9975582af716870a844f8deabd4d80e33a47c400d36cee6bc4840062693 +static/media/dashboard.8ec7624b.svg,1762033575901,5a5b5d4bf416d414842bd5eac30432b592342a392450e52943f067db4077bec1 +static/media/classes.3b73dba0.svg,1762033575905,2abfbb7015d5bccb8640fd0614d3782c048672c9543fe17d127db63287ac141d +static/media/Checkmark.1356376c.svg,1762033575923,aa56f27c8198bcae3236a881a7134cd3b7d3dbb048ec75654e8ce2d4710ce027 +static/media/class-icon.6afd34b5.svg,1762033575909,a2f492c6c9c7b5201773062dfe90c238c12bc00bec097dc06141201f02b9588e +static/media/batch.3fcff66e.svg,1762033575904,f29038480286f091e3805a43f90ca5a70a13bbcef3076831e0b29b1fcb61d862 +static/media/batch-icon.bf664771.svg,1762033575910,7519e2a92f436a2f46ef7420d721e24df2837d7fce7fe8c30f4bc12980b3d1a0 +static/media/auth-BG.2835584f.svg,1762033575852,238d3a2ff1aead1c4aaed0e07d23d2c1164f8be0ef2d5fced5c5ade370f3c5bf +static/media/add-circle.0011f2bc.svg,1762033575909,d9e5d90e8de1ce16df5720b43ca79543036fcf1a6cd6439a9b15c5a97d269f17 +static/media/KaTeX_Math-Italic.d8b7a801.woff2,1762033575879,463c7b305e898eff5291b63c93cc5cb344035692b6913c1c79073ecbb6243bd4 +static/media/KaTeX_Math-BoldItalic.1320454d.woff2,1762033575887,6845d5004e7c212c58d4760856f246a648906e552b0fe06cc1602598c12451c2 +static/media/KaTeX_Math-BoldItalic.48155e43.woff,1762033575878,85cd1b757a1e147fa60d9a33c097ac463cd361d7d29278acb6f9fa12b1ab1807 +static/media/KaTeX_Main-Italic.65297062.woff2,1762033575865,d85767f0359678f357e48c84e9872f47b139674a79b7b71db0fdbb1317c26d12 +static/media/KaTeX_Math-BoldItalic.6589c4f1.ttf,1762033575878,7015e678d3236d50b3fefa9ba69b1473ed3f8e75adee5cace69614afcfc2f5bf +static/media/KaTeX_Main-Regular.f8a7f19f.woff2,1762033575867,d9e0bfb38531e96891681155d118070f8026358d2951cb8470c394b91809288d +static/media/KaTeX_Main-BoldItalic.d8737343.woff2,1762033575865,c626855b7d035c168c7d791991df8d939103de514bfb4451d79d386573284c72 +static/media/KaTeX_Main-Italic.8ffd28f6.woff,1762033575871,96448f48ed2241c86e68c8461f1640b4420784ddafae0187411614145e1b86b7 +static/media/KaTeX_Main-Regular.f1cdb692.woff,1762033575878,17452652a1119d3bcd8a71406fc8698a686f53c3923cb96e790e6a5d36d08ab1 +static/media/KaTeX_Main-Italic.39349e0a.ttf,1762033575878,1d8cb78615c1bf0e6382d19209ab3b545f62297a75006719c9fe6a82f4b3b282 +static/media/KaTeX_Main-BoldItalic.5f875f98.woff,1762033575867,70abceb4229394d854d0f09cb4c174bb3044efcb0c914765da73cef487dff695 +static/media/KaTeX_Main-Bold.a9382e25.woff2,1762033575865,5a85aa329e280b7ebe07d42616135b81a43b3e7699beb03e4f85cb85cc1c42a0 +static/media/KaTeX_Main-BoldItalic.52fb39b0.ttf,1762033575878,2c270214096b727d963e376c50c9372e0696e3807ab3593c99721e98a2350d9a +static/media/KaTeX_Main-Bold.4cdba646.woff,1762033575865,0a80f97f42c420ce18f49adadd979581ee6c7b2fea155197d564eab7d4a33b94 +static/js/runtime-main.27caaa44.js.map,1762033576009,3e879e38038e68cf871d7b4279b1462769cde43557fc9f9d43b6b2637de2a260 +static/media/KaTeX_Main-Regular.818582da.ttf,1762033575878,303bad6cffa808e8161bca30051b6116e39cd128fad1565f4cfe87d57e54f715 +static/js/runtime-main.27caaa44.js,1762033575915,4e3d05857c79855a7e920016b818defe70440121809e87b3f135be225ec7e3b3 +static/media/KaTeX_Main-Bold.8e431f7e.ttf,1762033575865,05a2a07c87d1436ec1339788f266910afda2ef11c2c159b5f9da217e5862678b +static/media/KaTeX_AMS-Regular.66c67820.woff2,1762033575853,d3c3fdcc36a8dd47d2361854708db75facde86716ac4aff340c27a53edb91fa3 +static/media/feature-1.ea5c34ea.svg,1762033575852,d802659785b69508e521d5543fca40a58cb9076521ffc3e6b006f4786b8079f8 +static/media/KaTeX_AMS-Regular.10824af7.woff,1762033575853,6c46aa92e4310f9c70a445e7a423691f1704dce1cdc29fdd2e0c83d195fcee10 +static/media/KaTeX_AMS-Regular.56573229.ttf,1762033575899,c2f8c0a308e057708caa69b82f187cbff35ecda40162ceed7cf66bb958032bba +static/media/feature-3.3d5d81e9.svg,1762033575852,ba23393d89776cb78f7a559903baff48be76665abd99bdd4e5ea103c5e5ed88b +static/js/4.d2a9338f.chunk.js.map,1762033576010,a5a722bf8db9cf0993b417f66bd3422dea3490040f4dd79cb5215fccba3a4484 +static/js/4.d2a9338f.chunk.js,1762033575933,b2c24d1c151dd22afe16c8b659c41997a73711332c80c677b26cf17eb169d18b +static/js/3.6099e5fb.chunk.js.map,1762033576010,ca2dde76e10854eb0dc3f7dc050a6a5ae82575f83a207f9b0bc8658c1dd577ab +static/js/3.6099e5fb.chunk.js,1762033575925,d8ab7de01ca728821c8d5ba785256db83815cb152fbb8072459796057ee12c09 +static/js/2.528544a1.chunk.js.LICENSE.txt,1762033575933,73e179810607ee243bc579404bb639366a35a513c110f956327178f85a8ec4ca +static/js/main.0436c6bb.chunk.js,1762033575924,2f316815289bb09026fcf5d3e8e0d53a8400e0b937958c039f19c1d019278239 +static/css/4.629184c9.chunk.css,1762033575927,dfeba86da1256521df7a877a265d56d314f65016837f30878338c2b7fc62a6ab +static/css/2.9f1a6119.chunk.css,1762033575923,5b08fdb85c1aaa0cf9acf7c4c35148cabc67c4897f21b89b8734390f584ad0a2 +static/css/3.6c5a3051.chunk.css,1762033575924,1ae150a22b1d42322775be9055605f93c75188e7081cfbdb206a59fc2f5ab8f1 +static/css/main.7d296f3d.chunk.css,1762033575915,8ac95acd624c795fc1e9d9d802ed76463b7fc234fc1fa91ee66ce2dba402ae85 +static/js/main.0436c6bb.chunk.js.map,1762033576010,a0ce92d9fed67afdd565a4503ad53e1de37e06de9694e45f2ecf91399f993f76 +static/css/4.629184c9.chunk.css.map,1762033576010,b82aa57e6e357dbb20067334e544e9b30d20ed0d928c13e6c61e1747e6f5a205 +static/css/3.6c5a3051.chunk.css.map,1762033575946,bcc301c3b3b46c96afc0fc028a6aa3cd299ccda538d7c6cb9ebc87f8de535796 +static/css/main.7d296f3d.chunk.css.map,1762033575935,5be5e90a97bc9a5e33bd3778a47be8ef41322cfe3daeffc8e0b6637db3f31488 +static/css/2.9f1a6119.chunk.css.map,1762033575944,65fe44874775e5d32c6076f91b40fc5d120cecbf5da0d211d9303dbb56b2e6ec +static/js/2.528544a1.chunk.js,1762033575927,29dab7a742a766d0a7049868eabaa7080ffc99c8094f6462f1d98eba8c22c89d +static/js/2.528544a1.chunk.js.map,1762033576026,5a3a44e5a9c7d2ee29219a23fde8788967e178b2a078cfc04e6939384cfe226e diff --git a/package-lock.json b/package-lock.json index 083a101..b658b25 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,6 +42,7 @@ "react-i18next": "^11.18.6", "react-katex": "^2.0.2", "react-latex": "^2.0.0", + "react-latex-next": "^3.0.0", "react-markdown": "^6.0.3", "react-masonry-css": "^1.0.16", "react-mathquill": "^1.0.1", @@ -19915,6 +19916,48 @@ "katex": "^0.10.2" } }, + "node_modules/react-latex-next": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-latex-next/-/react-latex-next-3.0.0.tgz", + "integrity": "sha512-x70f1b1G7TronVigsRgKHKYYVUNfZk/3bciFyYX1lYLQH2y3/TXku3+5Vap8MDbJhtopePSYBsYWS6jhzIdz+g==", + "license": "MIT", + "dependencies": { + "katex": "^0.16.0" + }, + "engines": { + "node": ">=12", + "npm": ">=5" + }, + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-latex-next/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/react-latex-next/node_modules/katex": { + "version": "0.16.25", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.25.tgz", + "integrity": "sha512-woHRUZ/iF23GBP1dkDQMh1QBad9dmr8/PAwNA54VrSOVYgI12MAcE14TqnDdQOdzyEonGzMepYnqBMYdsoAr8Q==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, "node_modules/react-latex/node_modules/katex": { "version": "0.10.2", "resolved": "https://registry.npmjs.org/katex/-/katex-0.10.2.tgz", @@ -42106,6 +42149,29 @@ } } }, + "react-latex-next": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-latex-next/-/react-latex-next-3.0.0.tgz", + "integrity": "sha512-x70f1b1G7TronVigsRgKHKYYVUNfZk/3bciFyYX1lYLQH2y3/TXku3+5Vap8MDbJhtopePSYBsYWS6jhzIdz+g==", + "requires": { + "katex": "^0.16.0" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + }, + "katex": { + "version": "0.16.25", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.25.tgz", + "integrity": "sha512-woHRUZ/iF23GBP1dkDQMh1QBad9dmr8/PAwNA54VrSOVYgI12MAcE14TqnDdQOdzyEonGzMepYnqBMYdsoAr8Q==", + "requires": { + "commander": "^8.3.0" + } + } + } + }, "react-lifecycles-compat": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", diff --git a/package.json b/package.json index 69741a4..806c15e 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "react-i18next": "^11.18.6", "react-katex": "^2.0.2", "react-latex": "^2.0.0", + "react-latex-next": "^3.0.0", "react-markdown": "^6.0.3", "react-masonry-css": "^1.0.16", "react-mathquill": "^1.0.1", diff --git a/src/App.js b/src/App.js index 68bae48..e5077d6 100644 --- a/src/App.js +++ b/src/App.js @@ -15,7 +15,6 @@ import FirebaseAction from './component/Login/FirebaseAction'; // import 'antd/dist/antd.less'; // imported inside App.less import './App.less'; -import 'katex/dist/katex.min.css'; // import AllQuestions from './component/Questions/AllQuestions'; // import MyQuestions from './component/Questions/MyQuestions'; diff --git a/src/component/Student/Exams/AttemptExam/AttemptExam.css b/src/component/Student/Exams/AttemptExam/AttemptExam.css index a5c63a7..0e517a9 100644 --- a/src/component/Student/Exams/AttemptExam/AttemptExam.css +++ b/src/component/Student/Exams/AttemptExam/AttemptExam.css @@ -3,7 +3,7 @@ align-items: center; justify-content: space-between; background: #ffffff; - border-bottom: 1px solid #f0f0f0; + border-bottom: 1px solid #e0e0e0; padding: 0 24px; height: 64px; box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); @@ -41,20 +41,6 @@ border-radius: 6px; } -/* Card container */ -.create-exam-card { - background: #ffffff; - border-radius: 12px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); - padding: 24px; - margin: 24px; - transition: box-shadow 0.3s ease; -} - -.create-exam-card:hover { - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); -} - /* Tabs styling */ .create-exam-tabs { font-size: 16px; @@ -62,9 +48,14 @@ .create-exam-tabs .ant-tabs-nav { margin-bottom: 20px; - border-bottom: 2px solid #f0f0f0; + border-bottom: none; } +.create-exam-tabs .ant-tabs-nav::before { + border-bottom: none !important; +} + + .create-exam-tabs .ant-tabs-tab { font-weight: 500; color: #555; @@ -172,7 +163,7 @@ } .exam-accordion .ant-collapse-item { - border-bottom: 1px solid #f0f0f0; + border-bottom: 1px solid #e0e0e0; } .exam-accordion .ant-collapse-header { @@ -312,3 +303,25 @@ border-color: #3b89ff; } +/* Remove border line between and after Collapse items */ +.custom-accordion .ant-collapse-item { + border-bottom: none !important; +} + +/* Optional: Add spacing between items instead of divider line */ +.custom-accordion .ant-collapse-item + .ant-collapse-item { + margin-top: 10px; /* space between items */ +} + +/* Optional: Keep rounded corners visible */ +.custom-accordion .ant-collapse-item:first-child { + border-top-left-radius: 10px; + border-top-right-radius: 10px; +} + +.custom-accordion .ant-collapse-item:last-child { + border-bottom-left-radius: 10px; + border-bottom-right-radius: 10px; + margin-bottom: 0; +} + diff --git a/src/component/Student/Exams/AttemptExam/AttemptExam.js b/src/component/Student/Exams/AttemptExam/AttemptExam.js index 2b65165..8ae30ea 100644 --- a/src/component/Student/Exams/AttemptExam/AttemptExam.js +++ b/src/component/Student/Exams/AttemptExam/AttemptExam.js @@ -140,11 +140,11 @@ class AttemptExam extends React.Component { showDetailQuestion(question) { // Mark the question as visited question.isVisited = true; - + // Update the question in both section and allQuestions arrays this.state.sections[question.sectionIndx].questions[question.secQIndex] = question; this.state.allQuestions[question.index - 1] = question; - + // Save the current section index for returning to the same tab this.setState({ showQuestion: true, @@ -164,6 +164,8 @@ class AttemptExam extends React.Component { onTabPaneClick() { // Only handle the back navigation if we're in question detail view if (this.state.showQuestion) { + this.updateAnswersForQuestion(this.state.activeDetailQuestion); + this.setState({ showQuestion: false, activeDetailQuestion: {}, @@ -226,29 +228,35 @@ class AttemptExam extends React.Component { }); }; - callbackFunctionNext = (childData) => { + updateAnswersForQuestion = (question) => { // ✅ Extract selected answer IDs (just numbers) - const selectedAnswers = childData.options + const selectedAnswers = question.options .filter(option => option.isSelected) - .map(option => option.id); // <-- plain IDs, not objects + .map(option => option.id); // ✅ Build the JSON object like your Kotlin version const answerObject = { - question_id: childData.id, - answer_duration: childData.answer_duration || 10, - is_reviewed: childData.isReviewMarked || false, + question_id: question.id, + answer_duration: question.answer_duration || 0, + is_reviewed: question.isReviewMarked || false, is_visited: true, answers: selectedAnswers }; // ✅ Send it (stringify the full object) selectorService.updateExamStatus(this.state.attempt_id, JSON.stringify(answerObject)); + } + + callbackFunctionNext = (childData) => { + this.updateAnswersForQuestion(childData); // ✅ Load next question const q = childData; const indx = q.index; const nxtQuestion = this.state.allQuestions[indx]; this.showDetailQuestion(nxtQuestion); + + this.updateAnswersForQuestion(nxtQuestion); }; callbackFunctionUpdateAnswer = (question) => { @@ -256,7 +264,6 @@ class AttemptExam extends React.Component { } render() { - if (this.state.redirect) { return ( this.showDetailQuestion(question)} - style={{ - height: '150px', + style={{ + height: '150px', position: 'relative', margin: '4px' // small margin for the card itself }} @@ -369,11 +376,11 @@ class AttemptExam extends React.Component { justifyContent: 'space-between', alignItems: 'center', }}> -
- @@ -402,10 +409,10 @@ class AttemptExam extends React.Component { right: '12px', left: '12px', paddingTop: '8px', - borderTop: '1px solid #f0f0f0', + borderTop: '1px solid #e0e0e0', textAlign: 'right' }}> - @@ -471,7 +478,7 @@ class AttemptExam extends React.Component { display: "flex", alignItems: "center", justifyContent: "center", - border: "1px solid #d9d9d9", + border: "1px solid #e0e0e0", }} onClick={() => this.onQuestionClick(question.index)} > @@ -489,7 +496,7 @@ class AttemptExam extends React.Component { <> -
+
{this.state.exam_name}
@@ -511,50 +518,69 @@ class AttemptExam extends React.Component {
- - + -
-
-
- {total_notVisited} - Not Visited -
-
- {total_notAnswered} - Not Answered -
-
- {total_Answered} - Answered -
-
- {total_Reviwed} - To Review -
-
- {total_AnsweredReviwed} - Answered & To Review -
+ {/* Exam Stats Section */} +
+
+ {total_notVisited} + Not Visited +
+
+ {total_notAnswered} + Not Answered +
+
+ {total_Answered} + Answered +
+
+ {total_Reviwed} + To Review +
+
+ {total_AnsweredReviwed} + Answered & To Review
-
- {accordions} + + {/* Accordion Section */} +
+ + {accordions} + +
- { this.state.question.isReviewMarked = val; this.sendData(this.state.question); @@ -90,9 +84,9 @@ class QuestionDetail extends React.Component { return ( {/* Question Number and Text */} - @@ -113,15 +107,22 @@ class QuestionDetail extends React.Component { {question.index}
- - }} - > - {question.question_text} - +{/* + {` +This is inline math: $E = mc^2$ + +And this is a block: + +$$ +x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a} +$$ +`} + */} + {question.question_text} +
@@ -134,10 +135,10 @@ class QuestionDetail extends React.Component { onChange={this.onAnswerChange} value={answer} className="radio-group" - style={{ - display: 'flex', - flexDirection: 'column', - gap: '16px' + style={{ + display: 'flex', + flexDirection: 'column', + gap: '16px' }} > {answerOptions} @@ -146,8 +147,9 @@ class QuestionDetail extends React.Component { {/* Review Switch and Actions */} -