latest
This commit is contained in:
parent
d39348dd48
commit
416e250ad1
|
|
@ -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
|
||||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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={<AttendanceAdditionalSheet />}
|
||||
></Route>
|
||||
<Route path="/barcodeScanner" element={<BarcodeScanner/>}></Route>
|
||||
<Route
|
||||
path="/anomoly/reassigned/booklet"
|
||||
element={<AttendenceCorrection />}
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
<div>
|
||||
<h1>Barcode Scanner</h1>
|
||||
{!hasCameraPermission ? (
|
||||
<Webcam
|
||||
audio={false}
|
||||
ref={webcamRef}
|
||||
screenshotFormat="image/jpeg"
|
||||
onUserMedia={handleUserMedia}
|
||||
/>
|
||||
) : (
|
||||
<QrReader
|
||||
onResult={handleScan}
|
||||
onError={handleError}
|
||||
style={{ width: '100%' }}
|
||||
/>
|
||||
)}
|
||||
{barcodeData && (
|
||||
<div>
|
||||
<h2>Scanned Barcode:</h2>
|
||||
<p>{barcodeData}</p>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default BarcodeScanner;
|
||||
|
|
@ -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 (
|
||||
<>
|
||||
<Box>
|
||||
|
|
|
|||
|
|
@ -253,6 +253,11 @@ const skipPage = () =>{
|
|||
<Box className="d-flex justify-content-between align-items-center">
|
||||
<Box className="d-flex flex-column gap-3 w-25">
|
||||
{imageName && <h5 className="text-left">ID : {imageName}</h5>}
|
||||
{paramsError && <h5 className="text-left">Error Code : {paramsError}</h5>}
|
||||
{paramsDegreeType ? (
|
||||
paramsDegreeType === 0 ? <h5 className="text-left">Degree Type : UG</h5> :
|
||||
<h5 className="text-left">Degree Type : PG</h5>
|
||||
): null}
|
||||
<TextInputField
|
||||
placeholder={"Barcode"}
|
||||
value={barcode}
|
||||
|
|
|
|||
|
|
@ -56,4 +56,9 @@ export const updateSelectedErrorData = (data) => ({
|
|||
export const updateSelectedJson = (data) => ({
|
||||
type: "UPDATE_SELECTED_ERROR_JSON",
|
||||
payload: data,
|
||||
})
|
||||
|
||||
export const updatePartCDegreeType = (data) => ({
|
||||
type:'UPDATE_PART_C_DEGREE_TYPE',
|
||||
payload: data,
|
||||
})
|
||||
Loading…
Reference in New Issue