live exam changes

This commit is contained in:
skillens.ai 2025-11-03 21:30:53 +05:30
parent 4346a00435
commit ae360b9184
8 changed files with 322 additions and 155 deletions

View File

@ -1,12 +1,72 @@
robots.txt,1761396900570,bfe106a3fb878dc83461c86818bf74fc1bdc7f28538ba613cd3e775516ce8b49 robots.txt,1761396900570,bfe106a3fb878dc83461c86818bf74fc1bdc7f28538ba613cd3e775516ce8b49
manifest.json,1761396900568,a9350a49aaac9fe94d3dd77b8270cc998c04ab97944a606189675022431faa51 manifest.json,1761396900568,a9350a49aaac9fe94d3dd77b8270cc998c04ab97944a606189675022431faa51
favicon.svg,1761396900561,a2a4880301751061a600b0bfc5c26fc413aed41e581516c4fa976bcb7fff6663 favicon.svg,1761396900561,a2a4880301751061a600b0bfc5c26fc413aed41e581516c4fa976bcb7fff6663
service-worker.js,1762008702040,a2abab7acf1300ad85eef61ef6c7d661128c243cda0101a23720484c5ffc849d service-worker.js,1762033576010,cfb0ce475baa94cc60e1869832c0fe2939e1c4a58299d87c831802921cf671ba
precache-manifest.e24f7d8cb814a4ad35948f841cb14aeb.js,1762008702039,a30d4da0b56949ddfdd19623bb0d91f89672375f67930b9682d636dd2261488a precache-manifest.e792bfc4213ddd52029a478d6027fc99.js,1762033576009,76ded865b62480a7f3e65736db15833c6baa240b7471fb78664c1b8fc48d3a11
asset-manifest.json,1762008702040,32012ef3ae36fa076ed8bf5a21d65fe5d7b3b438950ba52ffe504796dd94c53a static/media/sub-ques-icon.366b4f1e.svg,1762033575914,8e397611007ec5db7581a4c1bcca006950390ddf652cae209bb3973a645af425
index.html,1762008702039,30d577992c5d76398025ffe172958305a228bb89cacd3db1be0e847e5a3e7f75 index.html,1762033575945,da5fdeefcd2690e56b536507d9ec1ad38b5224edbdbbfa9bc496cd74a277782b
static/media/sub-ques-icon.366b4f1e.svg,1762008701928,8e397611007ec5db7581a4c1bcca006950390ddf652cae209bb3973a645af425 asset-manifest.json,1762033576010,16aaa20a6971f047d30fbaaccca3dafda9e2f25d77fc37bf42c11976ead91d1e
static/media/tru-fals-icon.d0b962d8.svg,1762008701928,a1deab7e5db8e8a94a9c5812dcde5f8cbfbe5da790da8500bf106980b9c79c33 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/locale-icon.svg,1761396900579,610498c7ca3b5800d268b1654473f0b1d79de2c6493a7c6982bef90456d35179
assets/images/icons/icon-96x96.png,1761396900602,43a8ac4df8945d7a44e3e4911032214f01eaea92267baa31a93e77942b424c73 assets/images/icons/icon-96x96.png,1761396900602,43a8ac4df8945d7a44e3e4911032214f01eaea92267baa31a93e77942b424c73
assets/images/icons/icon-72x72.png,1761396900600,a42f1df8ab0a8fe921573976d49158e1a2c52fe430460c869947f221aba30a94 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-152x152.png,1761396900590,95a5a117fbd5640f1f1f13c9923398545e3f5b66734ff6c8ce67c942319a8b67
assets/images/icons/icon-144x144.png,1761396900588,e42168e0e1abb5bd7811ebe1b5a2183d0ce287bf266c2efd8d97a23d23ca8d00 assets/images/icons/icon-144x144.png,1761396900588,e42168e0e1abb5bd7811ebe1b5a2183d0ce287bf266c2efd8d97a23d23ca8d00
assets/images/icons/icon-128x128.png,1761396900585,45b577c86e7c03fef868bfa3f96810c5b36f31156c32c0d85620d2e6fe1fc85b assets/images/icons/icon-128x128.png,1761396900585,45b577c86e7c03fef868bfa3f96810c5b36f31156c32c0d85620d2e6fe1fc85b
static/media/translate.610ad011.svg,1762008701933,c06f8a3d0c976b02429ce805d8a4944571ab0128ed2ce49c2d3ca134511ed120 static/media/exam-icon.10f48851.svg,1762033575909,b766e9975582af716870a844f8deabd4d80e33a47c400d36cee6bc4840062693
static/media/student-engaged.53fb7b0b.svg,1762008701925,5f8e01d1a5efcbdf3aa00ed07de843ab84404a28b672ca91f4d70d89fa8b37cf static/media/dashboard.8ec7624b.svg,1762033575901,5a5b5d4bf416d414842bd5eac30432b592342a392450e52943f067db4077bec1
static/media/quizexam.5545802e.svg,1762008701907,dfc1278bfcd264264a4d0e0e0247c229335abf0573439c5e9829c8607aacd569 static/media/classes.3b73dba0.svg,1762033575905,2abfbb7015d5bccb8640fd0614d3782c048672c9543fe17d127db63287ac141d
static/media/questions-icon.3d3c1aaf.svg,1762008701925,197f459a359b00c1c44b6ddd71cbc9160f593d1fe08534e3711e9d72a2956ef1 static/media/Checkmark.1356376c.svg,1762033575923,aa56f27c8198bcae3236a881a7134cd3b7d3dbb048ec75654e8ce2d4710ce027
static/media/PracticeKiaLogo.a8336af5.svg,1762008701893,1a592518bcfabb2f86669d06ae2fb7b2948bbdbfaf5a80d138ab30f4e482a0f8 static/media/class-icon.6afd34b5.svg,1762033575909,a2f492c6c9c7b5201773062dfe90c238c12bc00bec097dc06141201f02b9588e
static/media/question.0c505ed9.svg,1762008701902,29938066f93476c487414bb7a5dd5227d891c8ab8e115a74a7e7ffccd8d87b36 static/media/batch.3fcff66e.svg,1762033575904,f29038480286f091e3805a43f90ca5a70a13bbcef3076831e0b29b1fcb61d862
static/media/practice-icon.bf603115.svg,1762008701926,27b6a729d91914d899f4b3c1f817e26ac58d2ec0be54dc9b93c01f28adcdd00c static/media/batch-icon.bf664771.svg,1762033575910,7519e2a92f436a2f46ef7420d721e24df2837d7fce7fe8c30f4bc12980b3d1a0
static/media/perf-icon.1597a235.svg,1762008701926,7183482b785de425506f49deb27bba02e906132ac7ce5af01f7da8452ef64f28 static/media/auth-BG.2835584f.svg,1762033575852,238d3a2ff1aead1c4aaed0e07d23d2c1164f8be0ef2d5fced5c5ade370f3c5bf
static/media/practice.f05e6f00.svg,1762008701910,13b094bcbbb8c50906b1ee0ce68305059e99319464dd4147b4c2194dbb460475 static/media/add-circle.0011f2bc.svg,1762033575909,d9e5d90e8de1ce16df5720b43ca79543036fcf1a6cd6439a9b15c5a97d269f17
static/media/OdiSVGlogo.f0834bb1.svg,1762008701902,3ec1cab31a32db378894d796afedaee7c35f8ff99dfb1039b0bb757225a47235 static/media/KaTeX_Math-Italic.d8b7a801.woff2,1762033575879,463c7b305e898eff5291b63c93cc5cb344035692b6913c1c79073ecbb6243bd4
static/media/mul-res-icon.8ef3b097.svg,1762008701927,1f0a79350cb5546361ef02af1657ad36efeff833fd7bb61db88a20e127a290b4 static/media/KaTeX_Math-BoldItalic.1320454d.woff2,1762033575887,6845d5004e7c212c58d4760856f246a648906e552b0fe06cc1602598c12451c2
static/media/performance.88855f12.svg,1762008701915,03fc1b19005084049382091745d3f1f29a447763091ad4a9bc5d097c338671c9 static/media/KaTeX_Math-BoldItalic.48155e43.woff,1762033575878,85cd1b757a1e147fa60d9a33c097ac463cd361d7d29278acb6f9fa12b1ab1807
static/media/mul-cho-icon.b3dc9ea9.svg,1762008701928,e8edbceb0eb49f7629cf0b8edf599f9347acbf0c6d1df2fa6145cbed03f37e1f static/media/KaTeX_Main-Italic.65297062.woff2,1762033575865,d85767f0359678f357e48c84e9872f47b139674a79b7b71db0fdbb1317c26d12
static/media/locale-icon.b3596424.svg,1762008701924,68618c76952aa4c5f2623bb010514871688960bb3b9edbcda0eab7eb75442054 static/media/KaTeX_Math-BoldItalic.6589c4f1.ttf,1762033575878,7015e678d3236d50b3fefa9ba69b1473ed3f8e75adee5cace69614afcfc2f5bf
static/media/GrayscalePKLogo.6bb74404.svg,1762008701902,576b38300e49eda6407adce420001e7ad0333cca317eb668aff457c3258dcca2 static/media/KaTeX_Main-Regular.f8a7f19f.woff2,1762033575867,d9e0bfb38531e96891681155d118070f8026358d2951cb8470c394b91809288d
static/media/getFetch.2b2b7da4.cjs,1762008701902,b2d82abee5b8af22b81d67fc20b3feef1eaaf04585dbc24ec755e3304c469096 static/media/KaTeX_Main-BoldItalic.d8737343.woff2,1762033575865,c626855b7d035c168c7d791991df8d939103de514bfb4451d79d386573284c72
static/media/feature-2.36f8d7e2.webp,1762008701902,fc1c038517abf3b731ff3a4675cbaf1a6aa1150ca970762dd0ffc4199b92b75c static/media/KaTeX_Main-Italic.8ffd28f6.woff,1762033575871,96448f48ed2241c86e68c8461f1640b4420784ddafae0187411614145e1b86b7
static/media/exam-icon.10f48851.svg,1762008701925,b766e9975582af716870a844f8deabd4d80e33a47c400d36cee6bc4840062693 static/media/KaTeX_Main-Regular.f1cdb692.woff,1762033575878,17452652a1119d3bcd8a71406fc8698a686f53c3923cb96e790e6a5d36d08ab1
static/media/delete-icon.da38c0f4.svg,1762008701941,8078772ee88a0588989eec477da1ca949430f3f06efaa9c2db860b74c65f6722 static/media/KaTeX_Main-Italic.39349e0a.ttf,1762033575878,1d8cb78615c1bf0e6382d19209ab3b545f62297a75006719c9fe6a82f4b3b282
static/media/dashboard.8ec7624b.svg,1762008701904,5a5b5d4bf416d414842bd5eac30432b592342a392450e52943f067db4077bec1 static/media/KaTeX_Main-BoldItalic.5f875f98.woff,1762033575867,70abceb4229394d854d0f09cb4c174bb3044efcb0c914765da73cef487dff695
static/media/classes.3b73dba0.svg,1762008701907,2abfbb7015d5bccb8640fd0614d3782c048672c9543fe17d127db63287ac141d static/media/KaTeX_Main-Bold.a9382e25.woff2,1762033575865,5a85aa329e280b7ebe07d42616135b81a43b3e7699beb03e4f85cb85cc1c42a0
static/media/Checkmark.1356376c.svg,1762008701963,aa56f27c8198bcae3236a881a7134cd3b7d3dbb048ec75654e8ce2d4710ce027 static/media/KaTeX_Main-BoldItalic.52fb39b0.ttf,1762033575878,2c270214096b727d963e376c50c9372e0696e3807ab3593c99721e98a2350d9a
static/media/batch.3fcff66e.svg,1762008701910,f29038480286f091e3805a43f90ca5a70a13bbcef3076831e0b29b1fcb61d862 static/media/KaTeX_Main-Bold.4cdba646.woff,1762033575865,0a80f97f42c420ce18f49adadd979581ee6c7b2fea155197d564eab7d4a33b94
static/media/auth-BG.2835584f.svg,1762008701899,238d3a2ff1aead1c4aaed0e07d23d2c1164f8be0ef2d5fced5c5ade370f3c5bf static/js/runtime-main.27caaa44.js.map,1762033576009,3e879e38038e68cf871d7b4279b1462769cde43557fc9f9d43b6b2637de2a260
static/media/class-icon.6afd34b5.svg,1762008701924,a2f492c6c9c7b5201773062dfe90c238c12bc00bec097dc06141201f02b9588e static/media/KaTeX_Main-Regular.818582da.ttf,1762033575878,303bad6cffa808e8161bca30051b6116e39cd128fad1565f4cfe87d57e54f715
static/media/batch-icon.bf664771.svg,1762008701926,7519e2a92f436a2f46ef7420d721e24df2837d7fce7fe8c30f4bc12980b3d1a0 static/js/runtime-main.27caaa44.js,1762033575915,4e3d05857c79855a7e920016b818defe70440121809e87b3f135be225ec7e3b3
static/media/add-circle.0011f2bc.svg,1762008701927,d9e5d90e8de1ce16df5720b43ca79543036fcf1a6cd6439a9b15c5a97d269f17 static/media/KaTeX_Main-Bold.8e431f7e.ttf,1762033575865,05a2a07c87d1436ec1339788f266910afda2ef11c2c159b5f9da217e5862678b
static/js/runtime-main.2bdeab81.js,1762008701965,5c04066aee33f757af11aff4783499664f995e641476c3c1552c373bf87171bb static/media/KaTeX_AMS-Regular.66c67820.woff2,1762033575853,d3c3fdcc36a8dd47d2361854708db75facde86716ac4aff340c27a53edb91fa3
static/js/runtime-main.2bdeab81.js.map,1762008702040,a6cd518ca4773cf5562057dad7acb281edac1b802572abcdc6ee19c33f02b744 static/media/feature-1.ea5c34ea.svg,1762033575852,d802659785b69508e521d5543fca40a58cb9076521ffc3e6b006f4786b8079f8
static/js/4.568469c1.chunk.js.map,1762008702398,f626752d2d2cffe76387c84c314248f1ab02d9c6a79a16442a98e124c8f7d5fa static/media/KaTeX_AMS-Regular.10824af7.woff,1762033575853,6c46aa92e4310f9c70a445e7a423691f1704dce1cdc29fdd2e0c83d195fcee10
static/js/4.568469c1.chunk.js,1762008701978,7f998d124bddb5cb8e916a7bb559ddd2f5c133920e79651382bbabf25affc9c4 static/media/KaTeX_AMS-Regular.56573229.ttf,1762033575899,c2f8c0a308e057708caa69b82f187cbff35ecda40162ceed7cf66bb958032bba
static/js/3.d75ced33.chunk.js.map,1762008702398,a12fbfb03ced36f6a8c055bf8b3961a9170b3676c8e4f545921152b23e9bc4dd static/media/feature-3.3d5d81e9.svg,1762033575852,ba23393d89776cb78f7a559903baff48be76665abd99bdd4e5ea103c5e5ed88b
static/js/3.d75ced33.chunk.js,1762008701975,c68f66b973c4099ec168a05edb6212303bf31b91c57a2adc0a46595d31262355 static/js/4.d2a9338f.chunk.js.map,1762033576010,a5a722bf8db9cf0993b417f66bd3422dea3490040f4dd79cb5215fccba3a4484
static/js/2.a43d95bf.chunk.js.LICENSE.txt,1762008701979,9c84bc4d2f8584d32d75e01e0317e22af1e39f5ac5ded3e2e4e34984704c172b static/js/4.d2a9338f.chunk.js,1762033575933,b2c24d1c151dd22afe16c8b659c41997a73711332c80c677b26cf17eb169d18b
static/media/logo.0dd03933.png,1762008701902,b9716ed1f565a052edc1154a207334de81856339e8ca43d5d8f51041f3785085 static/js/3.6099e5fb.chunk.js.map,1762033576010,ca2dde76e10854eb0dc3f7dc050a6a5ae82575f83a207f9b0bc8658c1dd577ab
static/media/feature-1.ea5c34ea.svg,1762008701899,d802659785b69508e521d5543fca40a58cb9076521ffc3e6b006f4786b8079f8 static/js/3.6099e5fb.chunk.js,1762033575925,d8ab7de01ca728821c8d5ba785256db83815cb152fbb8072459796057ee12c09
static/media/feature-3.3d5d81e9.svg,1762008701901,ba23393d89776cb78f7a559903baff48be76665abd99bdd4e5ea103c5e5ed88b static/js/2.528544a1.chunk.js.LICENSE.txt,1762033575933,73e179810607ee243bc579404bb639366a35a513c110f956327178f85a8ec4ca
static/js/main.8ff1a521.chunk.js,1762008701955,d26ec0fa3004f79313bee1eef7ae5c387092d9d85e74040358e1d6fef1f3345f static/js/main.0436c6bb.chunk.js,1762033575924,2f316815289bb09026fcf5d3e8e0d53a8400e0b937958c039f19c1d019278239
static/css/main.bc6737c7.chunk.css,1762008701945,76e80fb65abfd974532458046d6fad237c3ce9360fc1f06058c9a5497c2cb2ab static/css/4.629184c9.chunk.css,1762033575927,dfeba86da1256521df7a877a265d56d314f65016837f30878338c2b7fc62a6ab
static/css/4.629184c9.chunk.css,1762008701975,dfeba86da1256521df7a877a265d56d314f65016837f30878338c2b7fc62a6ab static/css/2.9f1a6119.chunk.css,1762033575923,5b08fdb85c1aaa0cf9acf7c4c35148cabc67c4897f21b89b8734390f584ad0a2
static/css/2.561a8df6.chunk.css,1762008701966,c87247fc5cf38902aee0ee29244f6ab0c4bc14e5a0a1d6860cd771410dc826f8 static/css/3.6c5a3051.chunk.css,1762033575924,1ae150a22b1d42322775be9055605f93c75188e7081cfbdb206a59fc2f5ab8f1
static/css/3.6c5a3051.chunk.css,1762008701972,1ae150a22b1d42322775be9055605f93c75188e7081cfbdb206a59fc2f5ab8f1 static/css/main.7d296f3d.chunk.css,1762033575915,8ac95acd624c795fc1e9d9d802ed76463b7fc234fc1fa91ee66ce2dba402ae85
static/css/4.629184c9.chunk.css.map,1762008701995,b82aa57e6e357dbb20067334e544e9b30d20ed0d928c13e6c61e1747e6f5a205 static/js/main.0436c6bb.chunk.js.map,1762033576010,a0ce92d9fed67afdd565a4503ad53e1de37e06de9694e45f2ecf91399f993f76
static/js/main.8ff1a521.chunk.js.map,1762008702041,6165ce4addd97c1db3468075950c1febf7c6bb67dd712a42c3a3af585dbe0546 static/css/4.629184c9.chunk.css.map,1762033576010,b82aa57e6e357dbb20067334e544e9b30d20ed0d928c13e6c61e1747e6f5a205
static/css/3.6c5a3051.chunk.css.map,1762008701984,bcc301c3b3b46c96afc0fc028a6aa3cd299ccda538d7c6cb9ebc87f8de535796 static/css/3.6c5a3051.chunk.css.map,1762033575946,bcc301c3b3b46c96afc0fc028a6aa3cd299ccda538d7c6cb9ebc87f8de535796
static/css/2.561a8df6.chunk.css.map,1762008701982,ed9f46fc5b36bd835967cfd533fb33fd9ceec9c3aadcbe6c12bfb90b3ad1bc83 static/css/main.7d296f3d.chunk.css.map,1762033575935,5be5e90a97bc9a5e33bd3778a47be8ef41322cfe3daeffc8e0b6637db3f31488
static/css/main.bc6737c7.chunk.css.map,1762008701980,9e488d986552c43427a0a668fd428eb0cf64772473d95e905de639079896eeda static/css/2.9f1a6119.chunk.css.map,1762033575944,65fe44874775e5d32c6076f91b40fc5d120cecbf5da0d211d9303dbb56b2e6ec
static/js/2.a43d95bf.chunk.js,1762008701969,e4a75b184cbb51bd95baa7cb97581e00e72d83a37f15540e9d8f845c7d90eb6a static/js/2.528544a1.chunk.js,1762033575927,29dab7a742a766d0a7049868eabaa7080ffc99c8094f6462f1d98eba8c22c89d
static/js/2.a43d95bf.chunk.js.map,1762008702412,154c414780aa8752ddddd74528ff704d5ae7243dcdebea39ea84400667c889c1 static/js/2.528544a1.chunk.js.map,1762033576026,5a3a44e5a9c7d2ee29219a23fde8788967e178b2a078cfc04e6939384cfe226e

66
package-lock.json generated
View File

@ -42,6 +42,7 @@
"react-i18next": "^11.18.6", "react-i18next": "^11.18.6",
"react-katex": "^2.0.2", "react-katex": "^2.0.2",
"react-latex": "^2.0.0", "react-latex": "^2.0.0",
"react-latex-next": "^3.0.0",
"react-markdown": "^6.0.3", "react-markdown": "^6.0.3",
"react-masonry-css": "^1.0.16", "react-masonry-css": "^1.0.16",
"react-mathquill": "^1.0.1", "react-mathquill": "^1.0.1",
@ -19915,6 +19916,48 @@
"katex": "^0.10.2" "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": { "node_modules/react-latex/node_modules/katex": {
"version": "0.10.2", "version": "0.10.2",
"resolved": "https://registry.npmjs.org/katex/-/katex-0.10.2.tgz", "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": { "react-lifecycles-compat": {
"version": "3.0.4", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",

View File

@ -41,6 +41,7 @@
"react-i18next": "^11.18.6", "react-i18next": "^11.18.6",
"react-katex": "^2.0.2", "react-katex": "^2.0.2",
"react-latex": "^2.0.0", "react-latex": "^2.0.0",
"react-latex-next": "^3.0.0",
"react-markdown": "^6.0.3", "react-markdown": "^6.0.3",
"react-masonry-css": "^1.0.16", "react-masonry-css": "^1.0.16",
"react-mathquill": "^1.0.1", "react-mathquill": "^1.0.1",

View File

@ -15,7 +15,6 @@ import FirebaseAction from './component/Login/FirebaseAction';
// import 'antd/dist/antd.less'; // imported inside App.less // import 'antd/dist/antd.less'; // imported inside App.less
import './App.less'; import './App.less';
import 'katex/dist/katex.min.css';
// import AllQuestions from './component/Questions/AllQuestions'; // import AllQuestions from './component/Questions/AllQuestions';
// import MyQuestions from './component/Questions/MyQuestions'; // import MyQuestions from './component/Questions/MyQuestions';

View File

@ -3,7 +3,7 @@
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
background: #ffffff; background: #ffffff;
border-bottom: 1px solid #f0f0f0; border-bottom: 1px solid #e0e0e0;
padding: 0 24px; padding: 0 24px;
height: 64px; height: 64px;
box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
@ -41,20 +41,6 @@
border-radius: 6px; 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 */ /* Tabs styling */
.create-exam-tabs { .create-exam-tabs {
font-size: 16px; font-size: 16px;
@ -62,9 +48,14 @@
.create-exam-tabs .ant-tabs-nav { .create-exam-tabs .ant-tabs-nav {
margin-bottom: 20px; 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 { .create-exam-tabs .ant-tabs-tab {
font-weight: 500; font-weight: 500;
color: #555; color: #555;
@ -172,7 +163,7 @@
} }
.exam-accordion .ant-collapse-item { .exam-accordion .ant-collapse-item {
border-bottom: 1px solid #f0f0f0; border-bottom: 1px solid #e0e0e0;
} }
.exam-accordion .ant-collapse-header { .exam-accordion .ant-collapse-header {
@ -312,3 +303,25 @@
border-color: #3b89ff; 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;
}

View File

@ -164,6 +164,8 @@ class AttemptExam extends React.Component {
onTabPaneClick() { onTabPaneClick() {
// Only handle the back navigation if we're in question detail view // Only handle the back navigation if we're in question detail view
if (this.state.showQuestion) { if (this.state.showQuestion) {
this.updateAnswersForQuestion(this.state.activeDetailQuestion);
this.setState({ this.setState({
showQuestion: false, showQuestion: false,
activeDetailQuestion: {}, activeDetailQuestion: {},
@ -226,29 +228,35 @@ class AttemptExam extends React.Component {
}); });
}; };
callbackFunctionNext = (childData) => { updateAnswersForQuestion = (question) => {
// ✅ Extract selected answer IDs (just numbers) // ✅ Extract selected answer IDs (just numbers)
const selectedAnswers = childData.options const selectedAnswers = question.options
.filter(option => option.isSelected) .filter(option => option.isSelected)
.map(option => option.id); // <-- plain IDs, not objects .map(option => option.id);
// ✅ Build the JSON object like your Kotlin version // ✅ Build the JSON object like your Kotlin version
const answerObject = { const answerObject = {
question_id: childData.id, question_id: question.id,
answer_duration: childData.answer_duration || 10, answer_duration: question.answer_duration || 0,
is_reviewed: childData.isReviewMarked || false, is_reviewed: question.isReviewMarked || false,
is_visited: true, is_visited: true,
answers: selectedAnswers answers: selectedAnswers
}; };
// ✅ Send it (stringify the full object) // ✅ Send it (stringify the full object)
selectorService.updateExamStatus(this.state.attempt_id, JSON.stringify(answerObject)); selectorService.updateExamStatus(this.state.attempt_id, JSON.stringify(answerObject));
}
callbackFunctionNext = (childData) => {
this.updateAnswersForQuestion(childData);
// ✅ Load next question // ✅ Load next question
const q = childData; const q = childData;
const indx = q.index; const indx = q.index;
const nxtQuestion = this.state.allQuestions[indx]; const nxtQuestion = this.state.allQuestions[indx];
this.showDetailQuestion(nxtQuestion); this.showDetailQuestion(nxtQuestion);
this.updateAnswersForQuestion(nxtQuestion);
}; };
callbackFunctionUpdateAnswer = (question) => { callbackFunctionUpdateAnswer = (question) => {
@ -256,7 +264,6 @@ class AttemptExam extends React.Component {
} }
render() { render() {
if (this.state.redirect) { if (this.state.redirect) {
return ( return (
<Redirect <Redirect
@ -402,7 +409,7 @@ class AttemptExam extends React.Component {
right: '12px', right: '12px',
left: '12px', left: '12px',
paddingTop: '8px', paddingTop: '8px',
borderTop: '1px solid #f0f0f0', borderTop: '1px solid #e0e0e0',
textAlign: 'right' textAlign: 'right'
}}> }}>
<Tag <Tag
@ -471,7 +478,7 @@ class AttemptExam extends React.Component {
display: "flex", display: "flex",
alignItems: "center", alignItems: "center",
justifyContent: "center", justifyContent: "center",
border: "1px solid #d9d9d9", border: "1px solid #e0e0e0",
}} }}
onClick={() => this.onQuestionClick(question.index)} onClick={() => this.onQuestionClick(question.index)}
> >
@ -489,7 +496,7 @@ class AttemptExam extends React.Component {
<> <>
<Layout style={{ background: '#fff' }}> <Layout style={{ background: '#fff' }}>
<Layout style={{ background: '#fff' }}> <Layout style={{ background: '#fff' }}>
<Header className="exam-header" style={{ background: '#fff', borderBottom: '1px solid #f0f0f0' }}> <Header className="exam-header" style={{ background: '#fff', borderBottom: '1px solid #e0e0e0' }}>
<div className="exam-header-left"> <div className="exam-header-left">
<span className="exam-title">{this.state.exam_name}</span> <span className="exam-title">{this.state.exam_name}</span>
</div> </div>
@ -511,50 +518,69 @@ class AttemptExam extends React.Component {
</div> </div>
</Header> </Header>
<Layout style={{ background: '#fff' }}>
<Layout style={{ padding: '24px 0', background: '#fff' }}>
<Layout.Sider <Layout.Sider
width={300} width={300}
style={{ style={{
background: '#fff', background: '#fff',
padding: '0 24px', height: 'calc(100vh - 64px)',
borderRight: '1px solid #f0f0f0', padding: '20px 24px', // ⬅ added top & bottom padding
height: 'calc(100vh - 64px)', // Subtracting header height borderRight: '1px solid #e0e0e0',
position: 'fixed', position: 'fixed',
left: 0, left: 0,
overflowY: 'auto' overflowY: 'auto',
boxSizing: 'border-box'
}} }}
className="exam-status-card"
> >
<div className="exam-status-section" style={{ margin: '16px 0' }}> {/* Exam Stats Section */}
<div className="exam-status-row" style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}> <div style={{ margin: '20px 0' }}>
<div className="status-item" style={{ display: 'flex', alignItems: 'center', gap: '8px' }}> <div style={{ display: 'flex', alignItems: 'center', margin: '10px 0' }}>
<Avatar className="status-avatar not-visited">{total_notVisited}</Avatar> <Avatar className="status-avatar not-visited">{total_notVisited}</Avatar>
<span className="status-label" style={{ fontSize: '14px' }}>Not Visited</span> <span style={{ marginLeft: 10 }}>Not Visited</span>
</div> </div>
<div className="status-item" style={{ display: 'flex', alignItems: 'center', gap: '8px' }}> <div style={{ display: 'flex', alignItems: 'center', margin: '10px 0' }}>
<Avatar className="status-avatar not-answered">{total_notAnswered}</Avatar> <Avatar className="status-avatar not-answered">{total_notAnswered}</Avatar>
<span className="status-label" style={{ fontSize: '14px' }}>Not Answered</span> <span style={{ marginLeft: 10 }}>Not Answered</span>
</div> </div>
<div className="status-item" style={{ display: 'flex', alignItems: 'center', gap: '8px' }}> <div style={{ display: 'flex', alignItems: 'center', margin: '10px 0' }}>
<Avatar className="status-avatar answered">{total_Answered}</Avatar> <Avatar className="status-avatar answered">{total_Answered}</Avatar>
<span className="status-label" style={{ fontSize: '14px' }}>Answered</span> <span style={{ marginLeft: 10 }}>Answered</span>
</div> </div>
<div className="status-item" style={{ display: 'flex', alignItems: 'center', gap: '8px' }}> <div style={{ display: 'flex', alignItems: 'center', margin: '10px 0' }}>
<Avatar className="status-avatar to-review">{total_Reviwed}</Avatar> <Avatar className="status-avatar to-review">{total_Reviwed}</Avatar>
<span className="status-label" style={{ fontSize: '14px' }}>To Review</span> <span style={{ marginLeft: 10 }}>To Review</span>
</div> </div>
<div className="status-item" style={{ display: 'flex', alignItems: 'center', gap: '8px' }}> <div style={{ display: 'flex', alignItems: 'center', margin: '10px 0' }}>
<Avatar className="status-avatar answered-review">{total_AnsweredReviwed}</Avatar> <Avatar className="status-avatar answered-review">{total_AnsweredReviwed}</Avatar>
<span className="status-label" style={{ fontSize: '14px' }}>Answered & To Review</span> <span style={{ marginLeft: 10 }}>Answered & To Review</span>
</div> </div>
</div> </div>
</div>
<div className="exam-accordion"> {/* Accordion Section */}
<Collapse accordion>{accordions}</Collapse> <div
className="exam-accordion"
style={{
background: '#fafafa',
borderRadius: '12px',
padding: '12px',
border: '1px solid #e0e0e0',
boxShadow: '0 2px 6px rgba(0,0,0,0.05)',
}}
>
<Collapse
accordion
bordered={false}
expandIconPosition="end"
style={{
background: 'transparent',
}}
className="custom-accordion"
>
{accordions}
</Collapse>
</div> </div>
</Layout.Sider> </Layout.Sider>
<Layout.Content style={{ marginLeft: '300px', padding: '0 24px', minHeight: 280, background: '#fff' }}> <Layout.Content style={{ marginLeft: '300px', padding: '0 24px', minHeight: 280, background: '#fff' }}>
<Layout className="create-exam-card" style={{ background: '#fff' }}> <Layout className="create-exam-card" style={{ background: '#fff' }}>
<Tabs <Tabs

View File

@ -1,14 +1,9 @@
import React from "react"; import React from "react";
import "./QuestionDetail.css"; import "./QuestionDetail.css";
import { authenticationService } from '../../../../_services'; import { authenticationService } from '../../../../_services';
import { selectorService } from "../../../../services/selectorService";
import { Layout, Avatar, Button, Radio, Switch, Tabs, Card, Collapse, Statistic, Col, Row } from 'antd'; import { Layout, Avatar, Button, Radio, Switch, Tabs, Card, Collapse, Statistic, Col, Row } from 'antd';
import { Link } from 'react-router-dom'; import 'katex/dist/katex.min.css';
import parse from "html-react-parser"; import Latex from 'react-latex-next';
import { ButtonGroup } from "react-bootstrap";
import ReactMarkdown from 'react-markdown';
import remarkMath from 'remark-math';
import rehypeKatex from 'rehype-katex';
class QuestionDetail extends React.Component { class QuestionDetail extends React.Component {
constructor(props) { constructor(props) {
@ -32,7 +27,6 @@ class QuestionDetail extends React.Component {
this.props.parentCallbackNext(this.props.question); this.props.parentCallbackNext(this.props.question);
}; };
onReviewQuestion = (val) => { onReviewQuestion = (val) => {
this.state.question.isReviewMarked = val; this.state.question.isReviewMarked = val;
this.sendData(this.state.question); this.sendData(this.state.question);
@ -92,7 +86,7 @@ class QuestionDetail extends React.Component {
{/* Question Number and Text */} {/* Question Number and Text */}
<Row className="question-header" style={{ <Row className="question-header" style={{
marginBottom: '32px', marginBottom: '32px',
borderBottom: '1px solid #f0f0f0', borderBottom: '1px solid #e0e0e0',
paddingBottom: '20px' paddingBottom: '20px'
}}> }}>
<Col> <Col>
@ -113,15 +107,22 @@ class QuestionDetail extends React.Component {
{question.index} {question.index}
</div> </div>
<div className="question-text" style={{ flex: 1 }}> <div className="question-text" style={{ flex: 1 }}>
<ReactMarkdown {/* <ReactMarkdown
remarkPlugins={[remarkMath]} remarkPlugins={[remarkMath]}
rehypePlugins={[rehypeKatex]} rehypePlugins={[rehypeKatex]}
components={{
p: ({ node, ...props }) => <span {...props} style={{ fontSize: '16px', lineHeight: '1.6' }} />
}}
> >
{question.question_text} {`
</ReactMarkdown> This is inline math: $E = mc^2$
And this is a block:
$$
x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}
$$
`}
</ReactMarkdown> */}
<Latex>{question.question_text}</Latex>
</div> </div>
</div> </div>
</Col> </Col>
@ -147,7 +148,8 @@ class QuestionDetail extends React.Component {
{/* Review Switch and Actions */} {/* Review Switch and Actions */}
<Row style={{ <Row style={{
borderTop: '1px solid #f0f0f0', borderTop: '1px solid #e0e0e0',
background: '#fff',
paddingTop: '20px', paddingTop: '20px',
marginTop: 'auto', marginTop: 'auto',
display: 'flex', display: 'flex',

View File

@ -195,7 +195,7 @@ class LiveExams extends React.Component {
<List.Item.Meta <List.Item.Meta
avatar={ avatar={
<Avatar <Avatar
src="https://cdn.xl.thumbs.canstockphoto.com/exam-written-on-a-chalkboard-books-pencils-and-an-apple-on-foreground-picture_csp2468961.jpg" src={`https://s3bucket-for-oa.s3.ap-south-1.amazonaws.com/${9}/exams/${item.id}.png`}
size="large" size="large"
shape="square" shape="square"
className="MyExamImage" className="MyExamImage"