From c6fc2de8832517349065f42cb122af9b7b08181d Mon Sep 17 00:00:00 2001 From: Harsh Tandiya Date: Sat, 7 Mar 2026 22:15:44 +0530 Subject: [PATCH 1/2] feat: Image uploader component with crop --- frontend/package.json | 1 + .../ImageUploader/ImageUploader.vue | 299 ++++++++++++++++++ frontend/yarn.lock | 21 +- 3 files changed, 320 insertions(+), 1 deletion(-) create mode 100644 frontend/src/components/ImageUploader/ImageUploader.vue diff --git a/frontend/package.json b/frontend/package.json index 06cde99..53cde0d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -21,6 +21,7 @@ "pinia": "^3.0.3", "socket.io-client": "^4.7.2", "vue": "^3.5.13", + "vue-advanced-cropper": "^2.6.2", "vue-router": "^4.5.0", "vue-sonner": "^2.0.9", "vuedraggable": "^4.1.0", diff --git a/frontend/src/components/ImageUploader/ImageUploader.vue b/frontend/src/components/ImageUploader/ImageUploader.vue new file mode 100644 index 0000000..b5a4977 --- /dev/null +++ b/frontend/src/components/ImageUploader/ImageUploader.vue @@ -0,0 +1,299 @@ + + + + + diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 7fc549c..4c9425d 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -1482,7 +1482,7 @@ chokidar@^3.6.0: optionalDependencies: fsevents "~2.3.2" -classnames@^2.2.5: +classnames@^2.2.5, classnames@^2.2.6: version "2.5.1" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== @@ -1600,6 +1600,11 @@ dayjs@^1.11.19: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.19.tgz#15dc98e854bb43917f12021806af897c58ae2938" integrity sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw== +debounce@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + debug@4, debug@^4.1.1, debug@^4.3.4, debug@^4.3.7, debug@^4.4.0, debug@^4.4.1: version "4.4.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" @@ -1684,6 +1689,11 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +easy-bem@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/easy-bem/-/easy-bem-1.1.1.tgz#1bfcc10425498090bcfddc0f9c000aba91399e03" + integrity sha512-GJRqdiy2h+EXy6a8E6R+ubmqUM08BK0FWNq41k24fup6045biQ8NXxoXimiwegMQvFFV3t1emADdGNL1TlS61A== + echarts@^5.6.0: version "5.6.0" resolved "https://registry.yarnpkg.com/echarts/-/echarts-5.6.0.tgz#2377874dca9fb50f104051c3553544752da3c9d6" @@ -3597,6 +3607,15 @@ vscode-uri@^3.0.8: resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.1.0.tgz#dd09ec5a66a38b5c3fffc774015713496d14e09c" integrity sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ== +vue-advanced-cropper@^2.6.2: + version "2.8.9" + resolved "https://registry.yarnpkg.com/vue-advanced-cropper/-/vue-advanced-cropper-2.8.9.tgz#119ec7ade91dcf80fb22940ecbbf265ad0ae1bc4" + integrity sha512-1jc5gO674kVGpJKekoaol6ZlwaF5VYDLSBwBOUpViW0IOrrRsyLw6XNszjEqgbavvqinlKNS6Kqlom3B5M72Tw== + dependencies: + classnames "^2.2.6" + debounce "^1.2.0" + easy-bem "^1.0.2" + vue-demi@>=0.13.0, vue-demi@>=0.14.8: version "0.14.10" resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04" From 03f3dc259926afb19b88ea5a1c9a7717edc3e923 Mon Sep 17 00:00:00 2001 From: Harsh Tandiya Date: Sat, 7 Mar 2026 22:15:59 +0530 Subject: [PATCH 2/2] feat: integrate ImageUploader for team logo management - Replaced the existing logo upload button with an ImageUploader component for enhanced functionality. - Added error handling and upload progress display within the ImageUploader. - Updated the button label dynamically based on the upload state and existing logo presence. --- .../src/components/team/ManageTeamHeader.vue | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/team/ManageTeamHeader.vue b/frontend/src/components/team/ManageTeamHeader.vue index 71e5733..051f9d5 100644 --- a/frontend/src/components/team/ManageTeamHeader.vue +++ b/frontend/src/components/team/ManageTeamHeader.vue @@ -1,6 +1,7 @@