diff --git a/txclient/src/app/landing/org/[oid]/HeaderEditPopup.tsx b/txclient/src/app/landing/org/[oid]/HeaderEditPopup.tsx index 8de17a2..2336114 100644 --- a/txclient/src/app/landing/org/[oid]/HeaderEditPopup.tsx +++ b/txclient/src/app/landing/org/[oid]/HeaderEditPopup.tsx @@ -22,10 +22,11 @@ interface HeaderEditPopupProps { headerFontShadowColor: string; headerImage: string; onSaved: () => void; + onRefresh?: () => void; } export default function HeaderEditPopup(props: HeaderEditPopupProps) { - const { open, onClose, companyId, headerColor, headerFontColor, headerFontShadowColor, headerImage, onSaved } = props; + const { open, onClose, companyId, headerColor, headerFontColor, headerFontShadowColor, headerImage, onSaved, onRefresh } = props; const alert = useAlert(); const SessionInfo = useSessionStore(); const organizationHeader = useOrganizationHeaderStore(); @@ -65,6 +66,7 @@ export default function HeaderEditPopup(props: HeaderEditPopupProps) { alert.showSuccess("Colores actualizados"); onSaved(); + onRefresh?.(); } catch (error) { const formatted = error instanceof Error ? error.message : "Error al guardar los colores"; alert.showError(formatted || "Error al guardar los colores"); @@ -88,6 +90,7 @@ export default function HeaderEditPopup(props: HeaderEditPopupProps) { uploadHeaderImage(formData).then(() => { alert.showSuccess("Imagen actualizada"); onSaved(); + onRefresh?.(); }).catch((error) => { const formatted = error instanceof Error ? error.message : "Error al guardar la imagen"; alert.showError(formatted || "Error al guardar la imagen"); diff --git a/txclient/src/app/landing/org/[oid]/page.tsx b/txclient/src/app/landing/org/[oid]/page.tsx index 247d32d..ffca279 100644 --- a/txclient/src/app/landing/org/[oid]/page.tsx +++ b/txclient/src/app/landing/org/[oid]/page.tsx @@ -43,7 +43,10 @@ import { useSessionStore } from "@core/Store/Sesion.Store"; import { EVENT_TYPES, useEventHandlerStore } from "@core/Store/EventHandler.Store"; import { useAlert } from "@core/Store/Alert.Store"; import { IPost } from "@core/Models/Posts.model"; -import { preprocessQuillHtml, transformQuillContentForDisplay } from "@core/app/helpers/htmlSainitize"; +import { + preprocessQuillHtml, + transformQuillContentForDisplay, +} from "@core/app/helpers/htmlSainitize"; import { useSearchParams } from "next/navigation"; import { ThemeProvider } from "@emotion/react"; @@ -55,7 +58,7 @@ import DownIcon from "@mui/icons-material/ArrowDownwardRounded"; import PinIcon from "@mui/icons-material/PushPin"; import EditIcon from "@mui/icons-material/AutoFixHigh"; import turnosXpressTheme from "@core/app/theme/turnosXpress"; -import { useParams } from "next/navigation"; +import { useParams, useRouter } from "next/navigation"; import dayjs from "dayjs"; import { useConfirmStore } from "@core/Store/Confirm.Store"; import ReviewsCarousel from "@core/app/components/ReviewsCarousel/ReviewsCarousel"; @@ -63,7 +66,6 @@ import OrganizationProfessionals from "@core/app/components/OrganizationProfessi import { RatingTargetType } from "@core/Models/Ratings.model"; import HeaderEditPopup from "./HeaderEditPopup"; import { checkOrgAdmin } from "./post.service"; -import { IconButton as MuiIconButton } from "@mui/material"; enum VIEW { POSTS = "posts", @@ -79,6 +81,7 @@ type UrlData = { export default function OrganizationPublicProfile() { const data = useParams(); const oid = data.oid; + const router = useRouter(); const OrganizationData = useOrgDataStore(); const [position, setPosition] = useState<[number, number]>([0, 0]); const [orgData, setOrgData] = useState(); @@ -398,7 +401,8 @@ export default function OrganizationPublicProfile() { return response.data; } const newPosts = response.data.filter( - (newPost) => !prevPosts.some((prevPost) => prevPost._id === newPost._id), + (newPost) => + !prevPosts.some((prevPost) => prevPost._id === newPost._id), ); return [...prevPosts, ...newPosts]; @@ -568,7 +572,11 @@ export default function OrganizationPublicProfile() { gap: "10px", }} > - + @@ -603,6 +611,7 @@ export default function OrganizationPublicProfile() { onSaved={() => { setShowEditPopup(false); }} + onRefresh={() => router.refresh()} /> )} {orgData && ( @@ -730,7 +739,9 @@ export default function OrganizationPublicProfile() { )} {view === VIEW.SERVICES && ( -
+
-
+
{dayjs(post.createdAt).format( "DD MMMM YYYY HH:mm", )} @@ -854,22 +871,30 @@ export default function OrganizationPublicProfile() { color: "var(--gray-darkest)", }} > - + } onClick={() => { - fijarPost(`${post._id}`); + fijarPost( + `${post._id}`, + ); }} > - {post.fixed ? "Liberar" : "Fijar"} + {post.fixed + ? "Liberar" + : "Fijar"} {post.fixed && ( <> } + startIcon={ + + } onClick={() => { moverPost( `${post._id}`, @@ -882,7 +907,9 @@ export default function OrganizationPublicProfile() { } + startIcon={ + + } onClick={() => { moverPost( `${post._id}`, @@ -898,7 +925,9 @@ export default function OrganizationPublicProfile() { { - editarPost(`${post._id}`); + editarPost( + `${post._id}`, + ); }} > @@ -907,7 +936,9 @@ export default function OrganizationPublicProfile() { { - eliminarPost(`${post._id}`); + eliminarPost( + `${post._id}`, + ); }} > @@ -932,7 +963,8 @@ export default function OrganizationPublicProfile() { style={{ padding: "0px 0px 40px 0px", display: "flex", - flexDirection: viewMode === "card" ? "row" : "column", + flexDirection: + viewMode === "card" ? "row" : "column", justifyContent: "start", gap: "20px", flexWrap: "wrap",