From b77a6c95800530d3c18bbc6fba8bd0cae62724b5 Mon Sep 17 00:00:00 2001 From: "luisa.bellitto" Date: Fri, 20 Jun 2025 14:15:55 +0200 Subject: [PATCH] select profile picture dialog --- code/frontend/package-lock.json | 24 +++++----- code/frontend/package.json | 2 +- .../src/components/ChagneAvatarDialog.tsx | 46 ++++++++++++------- .../src/components/changeAvatarDialog.css | 14 ++++++ code/frontend/src/pages/Profile.tsx | 44 +++++++++++++++--- code/frontend/src/pages/profile.css | 4 ++ code/frontend/yarn.lock | 26 +++++------ 7 files changed, 112 insertions(+), 48 deletions(-) create mode 100644 code/frontend/src/components/changeAvatarDialog.css diff --git a/code/frontend/package-lock.json b/code/frontend/package-lock.json index f1085d3..4ccd90b 100644 --- a/code/frontend/package-lock.json +++ b/code/frontend/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", - "@mui/icons-material": "^7.1.1", + "@mui/icons-material": "^7.1.2", "@mui/material": "^7.1.1", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.6.3", @@ -3115,9 +3115,9 @@ "license": "MIT" }, "node_modules/@mui/core-downloads-tracker": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.1.1.tgz", - "integrity": "sha512-yBckQs4aQ8mqukLnPC6ivIRv6guhaXi8snVl00VtyojBbm+l6VbVhyTSZ68Abcx7Ah8B+GZhrB7BOli+e+9LkQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.1.2.tgz", + "integrity": "sha512-0gLO1PvbJwSYe5ji021tGj6HFqrtEPMGKK4L1zWwRbhzrWWUumUJvMvJUsIgWQIYQsgOnhq9k2Fc1BxLGHDsAg==", "license": "MIT", "funding": { "type": "opencollective", @@ -3125,9 +3125,9 @@ } }, "node_modules/@mui/icons-material": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.1.1.tgz", - "integrity": "sha512-X37+Yc8QpEnl0sYmz+WcLFy2dWgNRzbswDzLPXG7QU1XDVlP5TPp1HXjdmCupOWLL/I9m1fyhcyZl8/HPpp/Cg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.1.2.tgz", + "integrity": "sha512-slqJByDub7Y1UcokrM17BoMBMvn8n7daXFXVoTv0MEH5k3sHjmsH8ql/Mt3s9vQ20cORDr83UZ448TEGcbrXtw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.27.1" @@ -3140,7 +3140,7 @@ "url": "https://opencollective.com/mui-org" }, "peerDependencies": { - "@mui/material": "^7.1.1", + "@mui/material": "^7.1.2", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -3151,13 +3151,13 @@ } }, "node_modules/@mui/material": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.1.1.tgz", - "integrity": "sha512-mTpdmdZCaHCGOH3SrYM41+XKvNL0iQfM9KlYgpSjgadXx/fEKhhvOktxm8++Xw6FFeOHoOiV+lzOI8X1rsv71A==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.1.2.tgz", + "integrity": "sha512-Z5PYKkA6Kd8vS04zKxJNpwuvt6IoMwqpbidV7RCrRQQKwczIwcNcS8L6GnN4pzFYfEs+N9v6co27DmG07rcnoA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.27.1", - "@mui/core-downloads-tracker": "^7.1.1", + "@mui/core-downloads-tracker": "^7.1.2", "@mui/system": "^7.1.1", "@mui/types": "^7.4.3", "@mui/utils": "^7.1.1", diff --git a/code/frontend/package.json b/code/frontend/package.json index a046c46..caf5bf2 100644 --- a/code/frontend/package.json +++ b/code/frontend/package.json @@ -5,7 +5,7 @@ "dependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", - "@mui/icons-material": "^7.1.1", + "@mui/icons-material": "^7.1.2", "@mui/material": "^7.1.1", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.6.3", diff --git a/code/frontend/src/components/ChagneAvatarDialog.tsx b/code/frontend/src/components/ChagneAvatarDialog.tsx index 2d7b756..c2cf2b8 100644 --- a/code/frontend/src/components/ChagneAvatarDialog.tsx +++ b/code/frontend/src/components/ChagneAvatarDialog.tsx @@ -9,6 +9,8 @@ import IconButton from "@mui/material/IconButton"; import CloseIcon from "@mui/icons-material/Close"; import Typography from "@mui/material/Typography"; import Avatar from "@mui/material/Avatar"; +import EditSquareIcon from "@mui/icons-material/EditSquare"; +import { useRef, useState } from "react"; const BootstrapDialog = styled(Dialog)(({ theme }) => ({ "& .MuiDialogContent-root": { @@ -29,6 +31,17 @@ export default function CustomizedDialogs() { setOpen(false); }; + const inputFile = useRef(null); + + const openFileExplorer = () => { + // `current` points to the mounted file input element + if (inputFile.current) { + inputFile.current.click(); + } + }; + + const [selectedImage, setSelectedImage] = useState(null); + return ( - + + {username} + + + {username} +