From ab028a75d674420db4a93ecc95e70e45f644cf3e Mon Sep 17 00:00:00 2001
From: rfhferreira <rfhferreira@inf.ufpr.br>
Date: Wed, 30 Apr 2025 11:24:49 -0300
Subject: [PATCH] Issue #298: HOTFIX collection edit select

---
 src/app/components/ImageCropper.js            |  1 -
 src/app/components/ShareButton.js             | 43 +++++++++++--------
 src/app/components/ShareModal.js              |  2 +-
 .../[id]/components/EditCollectionButton.js   | 35 +++++++++++++++
 .../[id]/components/EditCollectionModal.js    |  6 +--
 .../[id]/components/ProfileCollections.js     | 38 +++++++++-------
 .../perfil/[id]/components/ProfileItens.js    |  2 -
 .../recurso/[id]/components/deleteModal.js    |  2 -
 src/app/recurso/[id]/components/metrics.js    |  4 --
 9 files changed, 87 insertions(+), 46 deletions(-)
 create mode 100644 src/app/perfil/[id]/components/EditCollectionButton.js

diff --git a/src/app/components/ImageCropper.js b/src/app/components/ImageCropper.js
index 2dbe5447..9ab84a03 100644
--- a/src/app/components/ImageCropper.js
+++ b/src/app/components/ImageCropper.js
@@ -122,7 +122,6 @@ export default function ImageCropper({ payloadHeader, type, userId, setChangePho
                 );
                 // Converte o conteúdo do canvas em um blob e atualiza o estado
                 previewCanvasRef.current.toBlob((blob) => {
-                    console.log("meu blob: ", blob);
                     setCroppedImage(blob);
                 }); 
             }
diff --git a/src/app/components/ShareButton.js b/src/app/components/ShareButton.js
index 9bd1272d..f2b32a48 100644
--- a/src/app/components/ShareButton.js
+++ b/src/app/components/ShareButton.js
@@ -1,7 +1,6 @@
 import { useState } from 'react';
 import ShareOutlinedIcon from '@mui/icons-material/ShareOutlined';
 import ShareModal from './ShareModal';
-import { usePathname } from 'next/navigation';
 
 /**
  * Botão de Compartilhamento que abre o modal e compartilha o link corretamente
@@ -17,25 +16,33 @@ export default function ShareButton({ type, id }) {
 
     return (
         <>
+          {type === "perfil" ? (
             <button
-                className="p-2 text-sm rounded-[10px] max-md:w-44 w-48 h-11  hover:bg-darkGray-HC-white hover:text-darkGray-HC-dark outline outline-1 outline-lightGray-HC-white text-darkGray-HC-white-underline hover:text-white-HC-dark-underline font-bold normal-case flex justify-center items-center gap-2"
-                onClick={() => setShareOpen(true)}
-                aria-label="Compartilhar"
+              className="p-2 text-sm rounded-[10px] max-md:w-40 w-44 h-11 hover:bg-darkGray-HC-white hover:text-darkGray-HC-dark outline outline-1 outline-ice-HC-white text-darkGray-HC-white-underline hover:text-white-HC-dark-underline font-bold normal-case flex justify-center items-center gap-2"
+              onClick={() => setShareOpen(true)}
+              aria-label="Compartilhar"
             >
-                <ShareOutlinedIcon fontSize="small" />
-                {type === "perfil" ?
-                    <span className="hidden md:inline">Compartilhar Perfil</span>
-                    :
-                    <span className="hidden md:inline">Compartilhar</span>
-                }
-
+              <ShareOutlinedIcon fontSize="small" />
+              <span className="hidden md:inline">Compartilhar perfil</span>
+            </button>
+          ) : (
+            <button
+              className="p-2 text-sm outline outline-1 outline-ice-HC-white hover:text-darkGray-HC-dark text-darkGray-HC-white-underline bg-ice-HC-dark hover:bg-lightGray-HC-white rounded-xl font-bold normal-case flex items-center justify-center gap-2 md:w-36"
+              onClick={() => setShareOpen(true)}
+              aria-label="Compartilhar"
+            >
+              <ShareOutlinedIcon fontSize="small" />
+              <span className="hidden md:inline">Compartilhar</span>
             </button>
-            <ShareModal
-                open={shareOpen}
-                onClose={() => setShareOpen(false)}
-                title={`Compartilhando ${type}`}
-                link={link}
-            />
+          )}
+      
+          <ShareModal
+            open={shareOpen}
+            onClose={() => setShareOpen(false)}
+            title={`Compartilhando ${type}`}
+            link={link}
+          />
         </>
-    );
+      );
+      
 }
diff --git a/src/app/components/ShareModal.js b/src/app/components/ShareModal.js
index dcaae4f8..2dd0f1e8 100644
--- a/src/app/components/ShareModal.js
+++ b/src/app/components/ShareModal.js
@@ -26,7 +26,7 @@ export default function ShareModal({ open, onClose, title, link }) {
       .then(() => console.log("Compartilhamento realizado com sucesso"))
       .catch((error) => console.error("Erro ao compartilhar:", error));
     } else {
-      console.log("Compartilhamento nativo não suportado");
+      console.error("Compartilhamento nativo não suportado");
     }
   }
 
diff --git a/src/app/perfil/[id]/components/EditCollectionButton.js b/src/app/perfil/[id]/components/EditCollectionButton.js
new file mode 100644
index 00000000..7b0907ea
--- /dev/null
+++ b/src/app/perfil/[id]/components/EditCollectionButton.js
@@ -0,0 +1,35 @@
+import { useState } from 'react';
+import EditCollectionModal from './EditCollectionModal';
+import EditOutlinedIcon from '@mui/icons-material/EditOutlined';
+
+
+/**
+ * Botão de Edição que abre o modal de edição
+ * @param {Number} collectionId ID da coleção a ser editada 
+ * @param {Number} CollectionData Dados da coleção
+ */
+export default function EditCollectionButton({ collectionId, collectionData }) {
+  const [editOpen, setEditOpen] = useState(false);
+
+  return (
+    <>
+        <button
+          className="p-2 text-sm outline outline-1 outline-ice-HC-white 
+            text-darkGray-HC-white-underline bg-ice-HC-dark hover:bg-lightGray-HC-white 
+            rounded-xl font-bold normal-case flex items-center justify-center gap-2 md:w-32"
+          onClick={() => setEditOpen(true)}
+          aria-label="Editar"
+        >
+          <EditOutlinedIcon fontSize="small" />
+          <span className="hidden md:inline">Editar</span>
+        </button>
+
+      <EditCollectionModal
+        open={editOpen} 
+        onClose={() => setEditOpen(false)} 
+        collectionId={collectionId} 
+        collectionData={collectionData} 
+      />
+    </>
+  );
+}
diff --git a/src/app/perfil/[id]/components/EditCollectionModal.js b/src/app/perfil/[id]/components/EditCollectionModal.js
index 2dbe06a8..7c39ff76 100644
--- a/src/app/perfil/[id]/components/EditCollectionModal.js
+++ b/src/app/perfil/[id]/components/EditCollectionModal.js
@@ -17,6 +17,7 @@ export default function EditCollectionModal({ open, onClose, collectionId, colle
   const [privacy, setPrivacy] = useState(collectionData?.privacy || "public");
   const [openSuccess, setOpenSuccess] = useState(false);
 
+
   const token = getStoredValue("access_token");
   const client = getStoredValue("client");
   const uid = getStoredValue("uid");
@@ -44,7 +45,6 @@ export default function EditCollectionModal({ open, onClose, collectionId, colle
         },
       });
 
-      console.log(response.data)
       setOpenSuccess(true);
     } catch (error) {
       console.error("Erro ao atualizar a coleção:", error);
@@ -149,8 +149,8 @@ export default function EditCollectionModal({ open, onClose, collectionId, colle
           <div className="flex flex-row-reverse justify-center space-x-2">
             <button
               className="border text-sm p-2 text-white-HC-dark-underline border-ice-HC-dark hover:border-ice-HC-white hover:text-white rounded-lg normal-case h-9 font-bold bg-turquoise-HC-white hover:bg-darkTurquoise-HC-dark"
-              type="button" // Alterado para "button"
-              onClick={handleSubmit} // Chama a função diretamente no onClick
+              type="button"
+              onClick={handleSubmit}
             >
               Salvar Alterações
             </button>
diff --git a/src/app/perfil/[id]/components/ProfileCollections.js b/src/app/perfil/[id]/components/ProfileCollections.js
index 3be47b76..ae1bbc2c 100644
--- a/src/app/perfil/[id]/components/ProfileCollections.js
+++ b/src/app/perfil/[id]/components/ProfileCollections.js
@@ -9,10 +9,10 @@ import mecredApi from "@/axiosConfig";
 import NotFound from "./NotFound";
 import Loading from "@/app/components/Loading";
 import { Modal } from "@mui/material";
-import EditOutlinedIcon from '@mui/icons-material/EditOutlined';
 import EditCollectionModal from "./EditCollectionModal";
 import DeleteOutlinedIcon from '@mui/icons-material/DeleteOutlined';
 import ShareButton from "@/app/components/ShareButton";
+import EditCollectionButton from "./EditCollectionButton";
 
 const ModalSucess = ({ open, onClose, modalOnClose }) => {
   return (
@@ -211,29 +211,37 @@ export default function ProfileCollections({ id, idLogin }) {
 
                     {/* Botões */}
                     <div className="flex flex-row gap-2 justify-end">
-                      <EditCollectionModal open={editOpen} onClose={() => setEditOpen(false)} collectionId={item.id} collectionData={item} />
                       <DeleteCollectionModal open={deleteOpen} onClose={() => setDeleteOpen(false)} />
                       <DownloadButton id={item.id} objects={item.collection_items} />
                       <ShareButton id={item.id} type={'colecao'} />
                       {id === idLogin && (
-                        <div className="flex gap-4"> {/* Adiciona um espaçamento entre os botões */}
+                        <div className="flex gap-2">
                           {/* Botão de Editar */}
-                          <button
-                            className="px-3 py-2 text-sm  rounded-xl outline outline-1 outline-ice-HC-white bg-ice-HC-dark hover:bg-lightGray-HC-white text-darkGray-HC-white-underline hover:text-darkGray-HC-dark-underline font-bold normal-case max-md:my-3 flex justify-center items-center gap-2 md:px-3 md:py-2"
-                            onClick={() => setEditOpen(true)}
-                            aria-label="Editar" // Texto para leitores de tela
-                          >
-                            <EditOutlinedIcon fontSize="small" />
-                            <span className="hidden md:inline">Editar</span> {/* Texto visível apenas em telas maiores */}
-                          </button>
+                          <EditCollectionButton collectionId={item.id} collectionData={item} />
 
                           {/* Botão de Excluir */}
                           <button
-                            className="p-2 max-md:my-3 text-sm rounded-xl text-black-HC-white font-bold normal-case flex justify-center items-center gap-2 hover:bg-red-HC-white hover:text-white-HC-dark"
-                            onClick={() => { setDeleteOpen(true); setColToDelete(item.id);} }
-                            aria-label="Excluir" // Texto para leitores de tela
+                            className="
+                              p-2 
+                              max-md:my-3
+                              text-sm
+                              rounded-xl
+                              text-black-HC-white
+                              font-bold 
+                              normal-case
+                              flex 
+                              justify-center
+                              items-center
+                              gap-2
+                              hover:bg-red-HC-white 
+                              hover:text-white-HC-dark"
+                            onClick={() => { 
+                              setDeleteOpen(true); 
+                              setColToDelete(item.id);
+                            }}
+                            aria-label="Excluir"
                           >
-                            <DeleteOutlinedIcon fontSize="small" /> {/* Ícone de lata de lixo */}
+                            <DeleteOutlinedIcon fontSize="small" />
                           </button>
                         </div>
                       )}
diff --git a/src/app/perfil/[id]/components/ProfileItens.js b/src/app/perfil/[id]/components/ProfileItens.js
index d46d37fa..389e6c57 100644
--- a/src/app/perfil/[id]/components/ProfileItens.js
+++ b/src/app/perfil/[id]/components/ProfileItens.js
@@ -35,7 +35,6 @@ export default function ProfileItens({ profileData, setItems, items, store, type
         handlePurchase();
     }, [items, store]);
     
-    console.log(arrayAcquired);
 
     const iconEggs = <Image
                             src="/gema.svg"
@@ -225,7 +224,6 @@ export default function ProfileItens({ profileData, setItems, items, store, type
         items[index].being_used = !items[index].being_used;
         setItems([...items]);
         
-        console.log(profileData["user_items"]);
 
         try{
             await mecredApi
diff --git a/src/app/recurso/[id]/components/deleteModal.js b/src/app/recurso/[id]/components/deleteModal.js
index edadbd02..6d39d873 100644
--- a/src/app/recurso/[id]/components/deleteModal.js
+++ b/src/app/recurso/[id]/components/deleteModal.js
@@ -42,8 +42,6 @@ export default function DeleteModal({ setUniqueResources, userProfile, open, onC
         
 
         setUniqueResources(old => {
-            console.log(old, "KLJLKJLKJL");
-            console.log(resourceId, "AAAAAAAAAAAAAAAAAAA")
             return old.filter(resource => resource.learning_object.id !== resourceId);
         })
         //router.push("/busca?page=Collection")
diff --git a/src/app/recurso/[id]/components/metrics.js b/src/app/recurso/[id]/components/metrics.js
index 5f97d2e4..2a6274e6 100644
--- a/src/app/recurso/[id]/components/metrics.js
+++ b/src/app/recurso/[id]/components/metrics.js
@@ -25,10 +25,6 @@ const genMetric = ({ icon, name, data }) => {
 }
 
 export default function Specifications({ learningObject }) {
-  console.log(learningObject)
-  console.log(learningObject.author)
-  console.log(learningObject.publisher?.name)
-  console.log(learningObject.author)
   const metricInfo = [
     { icon: <IconViews className="text-2xl invertLogo-HC-white" />, name: "Visualizações", data: learningObject.views_count },
     { icon: <FavoriteOutlinedIcon />, name: "Curtidas", data: learningObject.likes_count },
-- 
GitLab