From 416e250ad1f0d7e72264e8b0017950e2c5d652ce Mon Sep 17 00:00:00 2001 From: Pradeeppon01 Date: Wed, 3 Jul 2024 18:42:11 +0530 Subject: [PATCH] latest --- deploy.sh | 30 +++++ package-lock.json | 171 +++++++++++++++++++++++++---- package.json | 6 +- src/App.jsx | 2 + src/Components/AnomolyPartC.jsx | 19 +++- src/Components/BarcodeScanner.jsx | 51 +++++++++ src/Components/Home.jsx | 5 + src/Components/QueryCardEditor.jsx | 5 + src/redux/actions/actions.jsx | 5 + 9 files changed, 265 insertions(+), 29 deletions(-) create mode 100755 deploy.sh create mode 100644 src/Components/BarcodeScanner.jsx diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..5261965 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,30 @@ +#! /bin/bash + +SOURCE_DIR=/home/neuu/attendence_UI/frontend +BRANCH=AttendenceUI +FRONTEND_DIR=/var/www/exampaper.vidh.ai +SERVER_IP=52.66.73.43 + +cd ~/$SOURCE_DIR +echo "Changed into attendence UI frontend dir ....." + +echo "Pulling $BRANCH ..." + +git pull origin $BRANCH +if [[ $? -eq 0 ]];then + echo "Pulled the latest code ...." + npm run build + if [[ $? -eq 0 ]];then + echo "Build the latest file ....." + scp -r dist/* ubuntu@$SERVER_IP:$FRONTEND_DIR + if [[ $? -eq 0 ]];then + echo "Copying build file to $FRONTEND_DIR successfull ...." + else + echo "Copying build file to $FRONTEND_DIR failed ...." + fi + else + echo "Build file failed ...." + fi +else + echo "Pulling latest code failed ...." +fi diff --git a/package-lock.json b/package-lock.json index b1a72f0..5997d8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,14 +15,16 @@ "antd": "^5.17.3", "bootstrap": "^5.3.3", "dotenv": "^16.4.5", - "react": "^18.2.0", + "react": "^18.3.1", "react-bootstrap": "^2.10.2", - "react-dom": "^18.2.0", + "react-dom": "^18.3.1", "react-lazy-load-image-component": "^1.6.0", "react-medium-image-zoom": "^5.2.4", + "react-qr-barcode-scanner": "^1.0.6", "react-redux": "^9.1.2", "react-router-dom": "^6.23.1", "react-toastify": "^10.0.5", + "react-webcam": "^7.2.0", "react-zoom-pan-pinch": "^3.4.4", "redux": "^5.0.1" }, @@ -1968,6 +1970,11 @@ "@types/react": "*" } }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, "node_modules/@types/use-sync-external-store": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", @@ -2003,6 +2010,26 @@ "vite": "^4.2.0 || ^5.0.0" } }, + "node_modules/@zxing/library": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@zxing/library/-/library-0.17.1.tgz", + "integrity": "sha512-RuiBZuteGaFXCle/b0X+g3peN8UpDc3pGe/J7hZBzKWaMZLbjensR7ja3vy47xWhXU4e8MICGqegPMxc2V2sow==", + "dependencies": { + "ts-custom-error": "^3.0.0" + }, + "engines": { + "node": ">= 10.4.0" + }, + "optionalDependencies": { + "@zxing/text-encoding": "~0.9.0" + } + }, + "node_modules/@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "optional": true + }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", @@ -5227,6 +5254,39 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/react-qr-barcode-scanner": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/react-qr-barcode-scanner/-/react-qr-barcode-scanner-1.0.6.tgz", + "integrity": "sha512-DdalO4oqHyxWPa4cIjiHeMS19HbIvKq+oo/PAglAsxmfhAUGC8sM1mJnzo0zPQM1yw9ZNpjrtqHz+rs86Mu7Ww==", + "dependencies": { + "@types/react": "^16.9.35", + "@zxing/library": "^0.17.0", + "react-webcam": "^5.0.1" + }, + "peerDependencies": { + "react": "^16.13.1", + "react-dom": "^16.13.1" + } + }, + "node_modules/react-qr-barcode-scanner/node_modules/@types/react": { + "version": "16.14.60", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.60.tgz", + "integrity": "sha512-wIFmnczGsTcgwCBeIYOuy2mdXEiKZ5znU/jNOnMZPQyCcIxauMGWlX0TNG4lZ7NxRKj7YUIZRneJQSSdB2jKgg==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "^0.16", + "csstype": "^3.0.2" + } + }, + "node_modules/react-qr-barcode-scanner/node_modules/react-webcam": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/react-webcam/-/react-webcam-5.2.4.tgz", + "integrity": "sha512-Qqj14t68Ke1eoEYjFde+N48HtuIJg0ePIQRpFww9eZt5oBcDpe/l60h+m3VRFJAR5/E3dOhSU5R8EJEcdCq/Eg==", + "peerDependencies": { + "react": ">=15.3.0", + "react-dom": ">=15.3.0" + } + }, "node_modules/react-redux": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.1.2.tgz", @@ -5315,6 +5375,15 @@ "react-dom": ">=16.6.0" } }, + "node_modules/react-webcam": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/react-webcam/-/react-webcam-7.2.0.tgz", + "integrity": "sha512-xkrzYPqa1ag2DP+2Q/kLKBmCIfEx49bVdgCCCcZf88oF+0NPEbkwYk3/s/C7Zy0mhM8k+hpdNkBLzxg8H0aWcg==", + "peerDependencies": { + "react": ">=16.2.0", + "react-dom": ">=16.2.0" + } + }, "node_modules/react-zoom-pan-pinch": { "version": "3.4.4", "resolved": "https://registry.npmjs.org/react-zoom-pan-pinch/-/react-zoom-pan-pinch-3.4.4.tgz", @@ -5797,6 +5866,14 @@ "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" }, + "node_modules/ts-custom-error": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.3.1.tgz", + "integrity": "sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", @@ -6625,8 +6702,7 @@ "@emotion/use-insertion-effect-with-fallbacks": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", - "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", - "requires": {} + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==" }, "@emotion/utils": { "version": "1.2.1", @@ -7032,8 +7108,7 @@ "@mui/types": { "version": "7.2.14", "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.14.tgz", - "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==", - "requires": {} + "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==" }, "@mui/utils": { "version": "5.15.14", @@ -7205,8 +7280,7 @@ "uncontrollable": { "version": "8.0.4", "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-8.0.4.tgz", - "integrity": "sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==", - "requires": {} + "integrity": "sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==" } } }, @@ -7413,6 +7487,11 @@ "@types/react": "*" } }, + "@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, "@types/use-sync-external-store": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", @@ -7442,6 +7521,21 @@ "react-refresh": "^0.14.0" } }, + "@zxing/library": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@zxing/library/-/library-0.17.1.tgz", + "integrity": "sha512-RuiBZuteGaFXCle/b0X+g3peN8UpDc3pGe/J7hZBzKWaMZLbjensR7ja3vy47xWhXU4e8MICGqegPMxc2V2sow==", + "requires": { + "@zxing/text-encoding": "~0.9.0", + "ts-custom-error": "^3.0.0" + } + }, + "@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "optional": true + }, "acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", @@ -7452,8 +7546,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "ajv": { "version": "6.12.6", @@ -7690,8 +7783,7 @@ "bootstrap": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz", - "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==", - "requires": {} + "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==" }, "brace-expansion": { "version": "1.1.11", @@ -8268,15 +8360,13 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", - "dev": true, - "requires": {} + "dev": true }, "eslint-plugin-react-refresh": { "version": "0.4.7", "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.7.tgz", "integrity": "sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==", - "dev": true, - "requires": {} + "dev": true }, "eslint-scope": { "version": "7.2.2", @@ -9268,8 +9358,7 @@ "qrcode.react": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-3.1.0.tgz", - "integrity": "sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==", - "requires": {} + "integrity": "sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==" }, "queue-microtask": { "version": "1.2.3", @@ -9727,8 +9816,34 @@ "react-medium-image-zoom": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/react-medium-image-zoom/-/react-medium-image-zoom-5.2.4.tgz", - "integrity": "sha512-XLu/fLqpbmhiDAGA6yie78tDv4kh8GxvS7kKQArSOvCvm5zvgItoh4h01NAAvnezQ60ovsTeedHiHG3eG9CcGg==", - "requires": {} + "integrity": "sha512-XLu/fLqpbmhiDAGA6yie78tDv4kh8GxvS7kKQArSOvCvm5zvgItoh4h01NAAvnezQ60ovsTeedHiHG3eG9CcGg==" + }, + "react-qr-barcode-scanner": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/react-qr-barcode-scanner/-/react-qr-barcode-scanner-1.0.6.tgz", + "integrity": "sha512-DdalO4oqHyxWPa4cIjiHeMS19HbIvKq+oo/PAglAsxmfhAUGC8sM1mJnzo0zPQM1yw9ZNpjrtqHz+rs86Mu7Ww==", + "requires": { + "@types/react": "^16.9.35", + "@zxing/library": "^0.17.0", + "react-webcam": "^5.0.1" + }, + "dependencies": { + "@types/react": { + "version": "16.14.60", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.60.tgz", + "integrity": "sha512-wIFmnczGsTcgwCBeIYOuy2mdXEiKZ5znU/jNOnMZPQyCcIxauMGWlX0TNG4lZ7NxRKj7YUIZRneJQSSdB2jKgg==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "^0.16", + "csstype": "^3.0.2" + } + }, + "react-webcam": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/react-webcam/-/react-webcam-5.2.4.tgz", + "integrity": "sha512-Qqj14t68Ke1eoEYjFde+N48HtuIJg0ePIQRpFww9eZt5oBcDpe/l60h+m3VRFJAR5/E3dOhSU5R8EJEcdCq/Eg==" + } + } }, "react-redux": { "version": "9.1.2", @@ -9781,11 +9896,15 @@ "prop-types": "^15.6.2" } }, + "react-webcam": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/react-webcam/-/react-webcam-7.2.0.tgz", + "integrity": "sha512-xkrzYPqa1ag2DP+2Q/kLKBmCIfEx49bVdgCCCcZf88oF+0NPEbkwYk3/s/C7Zy0mhM8k+hpdNkBLzxg8H0aWcg==" + }, "react-zoom-pan-pinch": { "version": "3.4.4", "resolved": "https://registry.npmjs.org/react-zoom-pan-pinch/-/react-zoom-pan-pinch-3.4.4.tgz", - "integrity": "sha512-lGTu7D9lQpYEQ6sH+NSlLA7gicgKRW8j+D/4HO1AbSV2POvKRFzdWQ8eI0r3xmOsl4dYQcY+teV6MhULeg1xBw==", - "requires": {} + "integrity": "sha512-lGTu7D9lQpYEQ6sH+NSlLA7gicgKRW8j+D/4HO1AbSV2POvKRFzdWQ8eI0r3xmOsl4dYQcY+teV6MhULeg1xBw==" }, "redux": { "version": "5.0.1", @@ -10117,6 +10236,11 @@ "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" }, + "ts-custom-error": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.3.1.tgz", + "integrity": "sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==" + }, "tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", @@ -10234,8 +10358,7 @@ "use-sync-external-store": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", - "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", - "requires": {} + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==" }, "vite": { "version": "5.2.11", diff --git a/package.json b/package.json index 82085fb..84f0b13 100644 --- a/package.json +++ b/package.json @@ -17,14 +17,16 @@ "antd": "^5.17.3", "bootstrap": "^5.3.3", "dotenv": "^16.4.5", - "react": "^18.2.0", + "react": "^18.3.1", "react-bootstrap": "^2.10.2", - "react-dom": "^18.2.0", + "react-dom": "^18.3.1", "react-lazy-load-image-component": "^1.6.0", "react-medium-image-zoom": "^5.2.4", + "react-qr-barcode-scanner": "^1.0.6", "react-redux": "^9.1.2", "react-router-dom": "^6.23.1", "react-toastify": "^10.0.5", + "react-webcam": "^7.2.0", "react-zoom-pan-pinch": "^3.4.4", "redux": "^5.0.1" }, diff --git a/src/App.jsx b/src/App.jsx index e43f0ed..db2ee09 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -21,6 +21,7 @@ import RecordEditor from "./Components/RecordEditor"; import VerifyMarks from "./Components/VerifyMarks"; import QueryCardEditor from "./Components/QueryCardEditor"; import AnomolyPartC from "./Components/AnomolyPartC"; +import BarcodeScanner from "./Components/BarcodeScanner" function App() { return ( @@ -42,6 +43,7 @@ function App() { path="/anomoly/attendence/additionalSheet" element={} > + }> } diff --git a/src/Components/AnomolyPartC.jsx b/src/Components/AnomolyPartC.jsx index fba0395..60f9900 100644 --- a/src/Components/AnomolyPartC.jsx +++ b/src/Components/AnomolyPartC.jsx @@ -25,6 +25,7 @@ import MenuItem from "@mui/material/MenuItem"; import FormControl from "@mui/material/FormControl"; import Select from "@mui/material/Select"; import { useSearchParams } from "react-router-dom"; +import { updatePartCDegreeType } from "../redux/actions/actions"; const { Content, Header } = Layout; @@ -40,15 +41,27 @@ function AnomalyPartC() { const [totalPages, setTotalPages] = useState(1); const [showSystemNoContainer, setShowSystemNoContainer] = useState(false); const [selectedIndex, setSelectedIndex] = useState(null); - const [selectedDegreeType, setSelectedDegreeType] = useState("2"); + const [selectedDegreeType, setSelectedDegreeType] = useState(null); const degreeTypes = [ { type: "UG", type_code: "0" }, { type: "PG", type_code: "2" }, ]; + const reduxDegreeType = useSelector((state)=> state?.partCDegreeType) + console.log("Redux degree type ...",reduxDegreeType) + useEffect(()=>{ + if(reduxDegreeType){ + setSelectedDegreeType(reduxDegreeType) + }else{ + setSelectedDegreeType("2") + } + },[reduxDegreeType]) + const handleDegreeTypeChange = (e) => { - console.log("Value ===== ", e.target.value); - setSelectedDegreeType(e.target.value); + const newDegreeType = e.target.value + console.log("Value ===== ",newDegreeType); + setSelectedDegreeType(newDegreeType); + dispatch(updatePartCDegreeType(newDegreeType)) }; const { token: { colorBgContainer, borderRadiusLG }, diff --git a/src/Components/BarcodeScanner.jsx b/src/Components/BarcodeScanner.jsx new file mode 100644 index 0000000..dc70a50 --- /dev/null +++ b/src/Components/BarcodeScanner.jsx @@ -0,0 +1,51 @@ +import React, { useState, useRef, useCallback } from 'react'; +import Webcam from 'react-webcam'; +import { QrReader } from 'react-qr-barcode-scanner'; + +const BarcodeScanner = () => { + const [hasCameraPermission, setHasCameraPermission] = useState(false); + const [barcodeData, setBarcodeData] = useState(null); + const webcamRef = useRef(null); + + const handleUserMedia = useCallback(() => { + setHasCameraPermission(true); + }, []); + + const handleScan = (result) => { + if (result) { + setBarcodeData(result.text); + } + }; + + const handleError = (error) => { + console.error(error); + }; + + return ( +
+

Barcode Scanner

+ {!hasCameraPermission ? ( + + ) : ( + + )} + {barcodeData && ( +
+

Scanned Barcode:

+

{barcodeData}

+
+ )} +
+ ); +}; + +export default BarcodeScanner; diff --git a/src/Components/Home.jsx b/src/Components/Home.jsx index bc3c1ea..e16a7d6 100644 --- a/src/Components/Home.jsx +++ b/src/Components/Home.jsx @@ -32,6 +32,10 @@ const Home = () => { title:"SQL Playground", url:"/sqlPlayground" }, + { + title:"Barcode Scanner", + url:"/barcodeScanner" + } // { // title:"Marks Verfication", // url:"/part-c/marks/verify" @@ -43,6 +47,7 @@ const Home = () => { // title: "Reassingned Serial No Anomoly Manual Updation", // url: "/anomoly/reassigned", // }] + return ( <> diff --git a/src/Components/QueryCardEditor.jsx b/src/Components/QueryCardEditor.jsx index d27aa5d..d7e10de 100644 --- a/src/Components/QueryCardEditor.jsx +++ b/src/Components/QueryCardEditor.jsx @@ -253,6 +253,11 @@ const skipPage = () =>{ {imageName &&
ID : {imageName}
} + {paramsError &&
Error Code : {paramsError}
} + {paramsDegreeType ? ( + paramsDegreeType === 0 ?
Degree Type : UG
: +
Degree Type : PG
+ ): null} ({ export const updateSelectedJson = (data) => ({ type: "UPDATE_SELECTED_ERROR_JSON", payload: data, +}) + +export const updatePartCDegreeType = (data) => ({ + type:'UPDATE_PART_C_DEGREE_TYPE', + payload: data, }) \ No newline at end of file