Skip to content
Snippets Groups Projects
Commit 2ac61e4d authored by jsk22's avatar jsk22 Committed by Richard Fernando Heise Ferreira
Browse files

Issue #220-228/HOTFIX

parent 8ce2bbca
No related branches found
No related tags found
1 merge request!304Issue #220-228/HOTFIX
Pipeline #42442 passed
......@@ -5,7 +5,7 @@ Todas as alterações relevantes deste projeto serão documentadas neste arquivo
O formato é baseado em [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
e este projeto segue a [Versão Semântica](https://semver.org/lang/pt-BR/spec/v2.0.0.html).
## [1.13.0] - 19/05/2025
## [1.13.1] - 19/05/2025
## Todas as mudanças são introduzidas às sextas-feiras. Mas apenas nas **segundas-feiras** vão para produção.
### Adiconado
......@@ -13,6 +13,11 @@ e este projeto segue a [Versão Semântica](https://semver.org/lang/pt-BR/spec/v
### Corrigido
- Slides da tela de sobre não possuem mais scrolls.
- Botão de fechar pesquisa no mobile.
- Link de compartilhar recurso não volta mais undefined.
- Botão de seguir da tela de coleção agora corresponde ao status correto.
- Usuário não consegue mais se auto-seguir.
- Uusário não pode se auto-reportar mais.
## [1.12.0] - 14/05/2025
## Todas as mudanças são introduzidas às sextas-feiras. Mas apenas nas **segundas-feiras** vão para produção.
......
{
"name": "frontend-mecred",
"version": "1.13.0",
"version": "1.13.1",
"private": true,
"scripts": {
"dev": "npx next dev",
......
......@@ -3,9 +3,11 @@ import { useLoginBarrier } from "@/app/handlers/loginHandler";
import { useState, useEffect } from "react";
import mecredApi, { mecredURL } from "@/axiosConfig";
import { getStoredValue } from "@/app/handlers/localStorageHandler";
import { isLoggedIn } from "@/app/handlers/loginHandler";
export default function PublisherInfoCollection({ publisher, disabledButton = false }) {
const [followed, setFollowed] = useState(false);
const [error, setError] = useState(false);
const loginBarrier = useLoginBarrier();
const token = getStoredValue("access_token")
......
......@@ -19,7 +19,6 @@ export default function Colecao({ params }) {
const [needLoginOpen, setNeedLoginOpen] = useState(false);
const [error, setError] = useState(false);
const [isSmallScreen, setIsSmallScreen] = useState(false);
const token = getStoredValue("access_token");
const client = getStoredValue("client");
const uid = getStoredValue("uid");
......@@ -39,8 +38,7 @@ export default function Colecao({ params }) {
};
}
const response = await mecredApi.get(`collections/${params.id}`);
const response = await mecredApi.get(`collections/${params.id}`, {headers});
setCollection(response.data);
} catch (error) {
setError(true);
......
......@@ -143,17 +143,26 @@ export default function Header({ setFilterState, filterState, mobileSearch }) {
const [needLoginOpen, setNeedLoginOpen] = useState(false);
const [mobileSearchOpen, setMobileSearchOpen] = useState(false);
useEffect(() => {
if (mobileSearch.searchIsClicked) {
setMobileSearchOpen(true);
}
}, [mobileSearch.searchIsClicked]);
// Função para alternar a exibição da pesquisa no mobile
const handleToggleMobileSearch = () => {
setTimeout(() => {
setMobileSearchOpen((curr) => !curr);
}, 100);
mobileSearch.setSearchIsClicked(false); // limpa depois de usar
}, 50);
};
return (
<div className="fixed flex items-center max-md:h-[70px] h-[120px] top-[35px] max-md:top-[0px] z-50 shadow-none w-screen bg-fundo bg-repeat bg-fixed">
<div className="flex flex-grow gap-3 sm:gap-12 justify-between ">
{mobileSearchOpen || mobileSearch.searchIsClicked ? (
{mobileSearchOpen ? (
<MobileSearch handleToggleMobileSearch={handleToggleMobileSearch} setFilterState={setFilterState} filterState={filterState} />
) : (
<DefaultContent
......
......@@ -10,24 +10,22 @@ import SendOutlinedIcon from "@mui/icons-material/SendOutlined";
* @param {String} props.title Título do compartilhamento
* @param {String} props.link URL a ser compartilhada
*/
export default function ShareModal({ open, onClose, title, link }) {
export default function ShareModal({ open, onClose, title, id }) {
const [clicked, setClicked] = useState(false);
const baseUrl = typeof window !== 'undefined' ? window.location.origin : '';
const link = `${baseUrl}/recurso/${id}`; // Gera o link dinâmico baseado no tipo e ID
useEffect(() => {
setClicked(false);
}, [open]);
function shareLink() {
if (navigator.share) {
const shareLink = () => {
navigator.share({
title: title,
url: link,
})
.then(() => console.log("Compartilhamento realizado com sucesso"))
.catch((error) => console.error("Erro ao compartilhar:", error));
} else {
console.error("Compartilhamento nativo não suportado");
}
}
return (
......
......@@ -4,8 +4,9 @@ import { useState, useEffect } from "react";
import mecredApi, { mecredURL } from "@/axiosConfig";
import { getStoredValue } from "@/app/handlers/localStorageHandler";
export default function PublisherInfo({ publisher, disabledButton = false }) {
export default function PublisherInfo({ publisher, disabledButton = false, userId }) {
const [followed, setFollowed] = useState(false);
const [isPublisher, setIsPublisher] = useState(false);
const loginBarrier = useLoginBarrier();
const token = getStoredValue("access_token")
......@@ -14,8 +15,8 @@ export default function PublisherInfo({ publisher, disabledButton = false }) {
useEffect(() => {
setFollowed(publisher?.followed ?? false);
setIsPublisher(publisher["id"] === userId ? true : false)
}, [publisher]);
if (!publisher) {
return <></>;
}
......@@ -88,6 +89,7 @@ export default function PublisherInfo({ publisher, disabledButton = false }) {
>
Ver Perfil
</Button>
{!isPublisher ?
<Button
disabled={disabledButton}
onClick={followHandler}
......@@ -96,6 +98,8 @@ export default function PublisherInfo({ publisher, disabledButton = false }) {
>
{followed ? "Seguindo" : "Seguir"}
</Button>
: ""
}
</div>
</Paper>
</>
......
......@@ -144,6 +144,7 @@ export default function ActionButtons({ learningObject, setNeedLoginOpen, state
extraProps: {},
},
// Botão de Reportar
userData.id === learningObject.publisher.id ? null :
{
name: reported ? "Reportado" : "Reportar",
icon: reported ? <FlagIcon /> : <FlagOutlinedIcon />,
......@@ -193,7 +194,7 @@ export default function ActionButtons({ learningObject, setNeedLoginOpen, state
<>
<DeleteModal open={deleteOpen} onClose={() => setDeleteOpen(false)} idLogin={userData["id"]} resourceId={learningObject.id} />
<HomologationModal open={submitOpen} onClose={() => setSubmitOpen(false)} name={learningObject.name} id={learningObject.submission_id} setSubmitted={setSubmitted}/>
<ShareModal open={shareOpen} onClose={() => setShareOpen(false)} />
<ShareModal open={shareOpen} onClose={() => setShareOpen(false)} id={learningObject.id} />
<ReportModal
learningObject={learningObject}
open={reportOpen}
......
......@@ -67,7 +67,6 @@ export default function Recurso({ params }) {
fetchData();
}, [params.id, client, token, uid]);
useEffect(() => {
setComplained(learningObject?.state === "suspended");
}, [learningObject]);
......@@ -137,7 +136,7 @@ export default function Recurso({ params }) {
)}
</div>
<ActionButtons learningObject={learningObject} setNeedLoginOpen={setNeedLoginOpen} state={state} />
<PublisherInfo publisher={learningObject?.publisher} />
<PublisherInfo publisher={learningObject?.publisher} userId={userData.id} />
<ResourceInfo learningObject={learningObject} />
<Comments learningObjectId={params.id} />
</div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment