Loading web/package-lock.json +57 −0 Original line number Diff line number Diff line Loading @@ -20,10 +20,12 @@ "axios": "^1.6.8", "react": "^18.2.0", "react-dom": "^18.2.0", "react-dropzone": "^14.2.3", "react-hook-form": "^7.51.2", "react-pro-sidebar": "^1.1.0", "react-router-dom": "^6.22.3", "react-scripts": "5.0.1", "react-toastify": "^10.0.5", "typescript": "^4.9.5", "web-vitals": "^2.1.4" }, Loading Loading @@ -5394,6 +5396,14 @@ "node": ">= 4.0.0" } }, "node_modules/attr-accept": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==", "engines": { "node": ">=4" } }, "node_modules/autoprefixer": { "version": "10.4.18", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", Loading Loading @@ -6209,6 +6219,14 @@ "wrap-ansi": "^7.0.0" } }, "node_modules/clsx": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", "engines": { "node": ">=6" } }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", Loading Loading @@ -8439,6 +8457,17 @@ "webpack": "^4.0.0 || ^5.0.0" } }, "node_modules/file-selector": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz", "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==", "dependencies": { "tslib": "^2.4.0" }, "engines": { "node": ">= 12" } }, "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", Loading Loading @@ -15080,6 +15109,22 @@ "react": "^18.2.0" } }, "node_modules/react-dropzone": { "version": "14.2.3", "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz", "integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==", "dependencies": { "attr-accept": "^2.2.2", "file-selector": "^0.6.0", "prop-types": "^15.8.1" }, "engines": { "node": ">= 10.13" }, "peerDependencies": { "react": ">= 16.8 || 18.0.0" } }, "node_modules/react-error-overlay": { "version": "6.0.11", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", Loading Loading @@ -15230,6 +15275,18 @@ } } }, "node_modules/react-toastify": { "version": "10.0.5", "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-10.0.5.tgz", "integrity": "sha512-mNKt2jBXJg4O7pSdbNUfDdTsK9FIdikfsIE/yUCxbAEXl4HMyJaivrVFcn3Elvt5xvCQYhUZm+hqTIu1UXM3Pw==", "dependencies": { "clsx": "^2.1.0" }, "peerDependencies": { "react": ">=18", "react-dom": ">=18" } }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", web/package.json +2 −0 Original line number Diff line number Diff line Loading @@ -15,10 +15,12 @@ "axios": "^1.6.8", "react": "^18.2.0", "react-dom": "^18.2.0", "react-dropzone": "^14.2.3", "react-hook-form": "^7.51.2", "react-pro-sidebar": "^1.1.0", "react-router-dom": "^6.22.3", "react-scripts": "5.0.1", "react-toastify": "^10.0.5", "typescript": "^4.9.5", "web-vitals": "^2.1.4" }, Loading web/src/components/admin_panel_navbar/admin_navbar.tsx +20 −2 Original line number Diff line number Diff line Loading @@ -5,7 +5,11 @@ import { useAuth } from "../../context/auth_context"; import { Link } from "react-router-dom"; import './assets/styles/style.css'; export const AdminPanelNavBar = () => { interface props{ windowActive: boolean; } export const AdminPanelNavBar = ({windowActive}:props) => { const {user, logout} = useAuth(); const [toggle, setToggle] = useState(false); Loading @@ -17,7 +21,21 @@ export const AdminPanelNavBar = () => { <div className="navbar"> <div className="profile"> <img src={require("./assets/images/Admin-595b40b65ba036ed117d36fe.png")} className="user-pic" onClick={() => setToggle(!toggle)}/> onClick={() => { windowActive ? setToggle(false) : setToggle(!toggle) }} style={ windowActive ? {cursor: "auto"} : {cursor: "pointer"} } /> {toggle && <div className="profile-sub-menu-wrap"> <div className="sub-menu" > Loading web/src/components/admin_panel_navbar/assets/styles/style.css +2 −1 Original line number Diff line number Diff line Loading @@ -15,12 +15,12 @@ .profile{ position: absolute; right: 20px; user-select: none; } .user-pic{ width: 30px; border-radius: 50%; cursor: pointer; background: white; } Loading @@ -30,6 +30,7 @@ right: 10%; max-width: 400px; overflow: hidden; z-index: 1000; transition: max-height 0.5s; } Loading web/src/components/image_dropzone/assets/css/styles.css 0 → 100644 +27 −0 Original line number Diff line number Diff line .image_dropzone_container { width: 90%; } .image_dropzone { cursor: pointer; border-color: #eeeeee; border-style: dashed; background-color: #fafafa; outline: none; color: #bdbdbd; aspect-ratio: 1/1; display: flex; justify-content: center; align-items: center; } .image_dropzone:hover { border-color: rgb(106, 188, 226); color: rgb(43, 38, 38); } .image_dropzone img { height: 100%; width: 100%; object-fit: contain; } No newline at end of file Loading
web/package-lock.json +57 −0 Original line number Diff line number Diff line Loading @@ -20,10 +20,12 @@ "axios": "^1.6.8", "react": "^18.2.0", "react-dom": "^18.2.0", "react-dropzone": "^14.2.3", "react-hook-form": "^7.51.2", "react-pro-sidebar": "^1.1.0", "react-router-dom": "^6.22.3", "react-scripts": "5.0.1", "react-toastify": "^10.0.5", "typescript": "^4.9.5", "web-vitals": "^2.1.4" }, Loading Loading @@ -5394,6 +5396,14 @@ "node": ">= 4.0.0" } }, "node_modules/attr-accept": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==", "engines": { "node": ">=4" } }, "node_modules/autoprefixer": { "version": "10.4.18", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", Loading Loading @@ -6209,6 +6219,14 @@ "wrap-ansi": "^7.0.0" } }, "node_modules/clsx": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", "engines": { "node": ">=6" } }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", Loading Loading @@ -8439,6 +8457,17 @@ "webpack": "^4.0.0 || ^5.0.0" } }, "node_modules/file-selector": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz", "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==", "dependencies": { "tslib": "^2.4.0" }, "engines": { "node": ">= 12" } }, "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", Loading Loading @@ -15080,6 +15109,22 @@ "react": "^18.2.0" } }, "node_modules/react-dropzone": { "version": "14.2.3", "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz", "integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==", "dependencies": { "attr-accept": "^2.2.2", "file-selector": "^0.6.0", "prop-types": "^15.8.1" }, "engines": { "node": ">= 10.13" }, "peerDependencies": { "react": ">= 16.8 || 18.0.0" } }, "node_modules/react-error-overlay": { "version": "6.0.11", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", Loading Loading @@ -15230,6 +15275,18 @@ } } }, "node_modules/react-toastify": { "version": "10.0.5", "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-10.0.5.tgz", "integrity": "sha512-mNKt2jBXJg4O7pSdbNUfDdTsK9FIdikfsIE/yUCxbAEXl4HMyJaivrVFcn3Elvt5xvCQYhUZm+hqTIu1UXM3Pw==", "dependencies": { "clsx": "^2.1.0" }, "peerDependencies": { "react": ">=18", "react-dom": ">=18" } }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
web/package.json +2 −0 Original line number Diff line number Diff line Loading @@ -15,10 +15,12 @@ "axios": "^1.6.8", "react": "^18.2.0", "react-dom": "^18.2.0", "react-dropzone": "^14.2.3", "react-hook-form": "^7.51.2", "react-pro-sidebar": "^1.1.0", "react-router-dom": "^6.22.3", "react-scripts": "5.0.1", "react-toastify": "^10.0.5", "typescript": "^4.9.5", "web-vitals": "^2.1.4" }, Loading
web/src/components/admin_panel_navbar/admin_navbar.tsx +20 −2 Original line number Diff line number Diff line Loading @@ -5,7 +5,11 @@ import { useAuth } from "../../context/auth_context"; import { Link } from "react-router-dom"; import './assets/styles/style.css'; export const AdminPanelNavBar = () => { interface props{ windowActive: boolean; } export const AdminPanelNavBar = ({windowActive}:props) => { const {user, logout} = useAuth(); const [toggle, setToggle] = useState(false); Loading @@ -17,7 +21,21 @@ export const AdminPanelNavBar = () => { <div className="navbar"> <div className="profile"> <img src={require("./assets/images/Admin-595b40b65ba036ed117d36fe.png")} className="user-pic" onClick={() => setToggle(!toggle)}/> onClick={() => { windowActive ? setToggle(false) : setToggle(!toggle) }} style={ windowActive ? {cursor: "auto"} : {cursor: "pointer"} } /> {toggle && <div className="profile-sub-menu-wrap"> <div className="sub-menu" > Loading
web/src/components/admin_panel_navbar/assets/styles/style.css +2 −1 Original line number Diff line number Diff line Loading @@ -15,12 +15,12 @@ .profile{ position: absolute; right: 20px; user-select: none; } .user-pic{ width: 30px; border-radius: 50%; cursor: pointer; background: white; } Loading @@ -30,6 +30,7 @@ right: 10%; max-width: 400px; overflow: hidden; z-index: 1000; transition: max-height 0.5s; } Loading
web/src/components/image_dropzone/assets/css/styles.css 0 → 100644 +27 −0 Original line number Diff line number Diff line .image_dropzone_container { width: 90%; } .image_dropzone { cursor: pointer; border-color: #eeeeee; border-style: dashed; background-color: #fafafa; outline: none; color: #bdbdbd; aspect-ratio: 1/1; display: flex; justify-content: center; align-items: center; } .image_dropzone:hover { border-color: rgb(106, 188, 226); color: rgb(43, 38, 38); } .image_dropzone img { height: 100%; width: 100%; object-fit: contain; } No newline at end of file