File tree Expand file tree Collapse file tree 4 files changed +26
-10
lines changed
Expand file tree Collapse file tree 4 files changed +26
-10
lines changed Original file line number Diff line number Diff line change @@ -14,13 +14,16 @@ export function Members() {
1414 const [ selectedMember , setSelectedMember ] = useState < Member | null > ( null ) ;
1515 const [ isModalOpen , setIsModalOpen ] = useState ( false ) ;
1616
17- const { data : members , isLoading } = useQuery ( {
17+ const { data : members , isLoading } = useQuery < Member [ ] > ( {
1818 queryKey : [ 'members' ] ,
1919 queryFn : async ( ) => {
2020 return await getMembers ( )
2121 }
2222 } ) ;
2323
24+ // Garantizar que `membersList` siempre sea un arreglo para evitar errores al usar .filter/.map
25+ const membersList : Member [ ] = Array . isArray ( members ) ? members : [ ] ;
26+
2427 const handleMemberClick = ( member : Member ) => {
2528 setSelectedMember ( member ) ;
2629 setIsModalOpen ( true ) ;
@@ -49,7 +52,7 @@ export function Members() {
4952 < p className = "text-gray-500" > Cargando miembros...</ p >
5053 </ div >
5154 ) }
52- { ! isLoading && members . filter ( member => member . active ) . map ( ( member ) => (
55+ { ! isLoading && membersList . filter ( member => member . active ) . map ( ( member ) => (
5356 < MemberCard
5457 key = { member . _id }
5558 member = { member }
Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ import { InactiveMembersTimeline } from "./sections/timeline";
66
77const InactiveMembers = ( ) => {
88
9- const { data : members , isLoading } = useQuery ( {
9+ const { data : members , isLoading } = useQuery < Member [ ] > ( {
1010 queryKey : [ 'members' ] ,
1111 queryFn : async ( ) => {
1212 const members : Member [ ] = await getMembers ( ) ;
@@ -17,9 +17,12 @@ const InactiveMembers = () => {
1717 }
1818 } ) ;
1919
20+ // Asegurar que `membersList` sea siempre un arreglo
21+ const membersList : Member [ ] = Array . isArray ( members ) ? members : [ ] ;
22+
2023
2124 // Group and sort members by period
22- const grouped = isLoading ? { } as Record < string , Member [ ] > : members . reduce (
25+ const grouped = isLoading ? { } as Record < string , Member [ ] > : membersList . reduce (
2326 ( acc , m ) => {
2427 const period = m . memberSince || "Sin periodo" ;
2528 ( acc [ period ] = acc [ period ] || [ ] ) . push ( m ) ;
Original file line number Diff line number Diff line change @@ -71,16 +71,20 @@ export default function Footer() {
7171 return (
7272 < footer className = "w-full px-6 py-8 bg-white/80 dark:bg-gray-900/80 backdrop-blur-sm shadow-lg border-t border-gray-200/20 dark:border-gray-700/20 mt-auto" >
7373 < div className = "max-w-7xl mx-auto" >
74- < div className = "grid grid-cols-3 items-center" >
74+ { /*
75+ Responsive
76+ */ }
77+ < div className = "grid grid-cols-1 md:grid-cols-3 items-center gap-4 md:gap-0 text-center md:text-left" >
7578 { /* Información izquierda */ }
76- < div className = "flex items-center justify-self -start whitespace-nowrap" >
79+ < div className = "flex items-center justify-center md:justify -start whitespace-nowrap" >
7780 < span className = "font-montserrat text-lg md:text-lg text-[--azul-noche] dark:text-white" >
7881 Capítulo Javeriano
7982 </ span >
80- < span className = "ml-2 md:text-xl font-semibold text-[--azul-noche] dark:text-white" style = { { " fontFamily" : "'bc-liguria', sanserif" } } >
83+ < span className = "ml-2 md:text-xl font-semibold text-[--azul-noche] dark:text-white" style = { { fontFamily : "'bc-liguria', sanserif" } } >
8184 ACM
8285 </ span >
8386 </ div >
87+
8488 { /* Contribuidores del proyecto en el centro*/ }
8589 < div className = "flex justify-center relative z-0" >
8690 < AnimatedTooltip
@@ -90,8 +94,8 @@ export default function Footer() {
9094 />
9195 </ div >
9296
93- { /* Redes sociales a la derecha */ }
94- < div className = "flex items-center justify-self -end gap-3 md:gap-4" >
97+ { /* Redes sociales a la derecha*/ }
98+ < div className = "flex items-center justify-center md:justify -end gap-3 md:gap-4" >
9599 < a
96100 href = "https://www.linkedin.com/company/capitulo-javeriano-acm/"
97101 target = "_blank"
Original file line number Diff line number Diff line change @@ -99,6 +99,12 @@ function AnimatedTooltipComponent({
9999 onMouseEnter = { ( ) => setHoveredIndex ( item . id ) }
100100 onMouseLeave = { ( ) => setHoveredIndex ( null ) }
101101 >
102+ { /* */ }
103+ < div className = "flex md:hidden justify-center mb-1" >
104+ < span className = "w-14 text-center text-[5px] font-montserrat from-neutral-500 dark:text-white truncate" >
105+ { item . name }
106+ </ span >
107+ </ div >
102108 < AnimatePresence >
103109 { hoveredIndex === item . id && isClient && (
104110 < motion . div
@@ -176,7 +182,7 @@ function AnimatedTooltipComponent({
176182 ) ;
177183}
178184
179- // Export dinamico para evitar problemas de SSR
185+
180186const AnimatedTooltip = dynamic ( ( ) => Promise . resolve ( AnimatedTooltipComponent ) , {
181187 ssr : false ,
182188 loading : ( ) => (
You can’t perform that action at this time.
0 commit comments