diff --git a/src/components/Communities.tsx b/src/components/Communities.tsx deleted file mode 100644 index d9596b0..0000000 --- a/src/components/Communities.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import Community from "@/components/Community.tsx"; -import {organizers} from "@/data/communites.ts"; -import Carousel from "@/components/Carousel.tsx"; -import Gradient from "@/components/Gradient.tsx"; -import React from "react"; -import StarIcon from "@/components/ui/starIcon.tsx"; - -const Communities = () => { - return ( - -
-

Comunidades aliadas

-
-
- -
- ) -} - -export default Communities \ No newline at end of file diff --git a/src/components/Community.tsx b/src/components/Community.tsx index 42d4597..6fa3759 100644 --- a/src/components/Community.tsx +++ b/src/components/Community.tsx @@ -1,9 +1,7 @@ import {ICommunity} from "@/types/types.ts"; import React from "react"; -import {Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle} from "@/components/ui/card.tsx"; -import {FacebookIcon, Instagram, LinkedinIcon} from "lucide-react"; -import XTwitter from "@/components/ui/x-twitter.tsx"; -import TikTok from "@/components/ui/tiktok.tsx"; +import {Card, CardContent} from "@/components/ui/card.tsx"; +import SocialMedia from "@/components/SocialMedia.tsx"; interface CommunityProps { community: ICommunity @@ -31,41 +29,9 @@ const Community: React.FC = ({ community }) => {

{ - community.socials.facebook && - - - Facebook - - - } - { - community.socials.instagram && - - - Instagram - - - } - { - community.socials.twitter && - - - Twitter - - - } - { community.socials.linkedin && - - - Linkedin - - - } - { - community.socials.tikTok && - - - + community.socials.map((social) => ( + + )) }
diff --git a/src/components/Organizers.tsx b/src/components/Organizers.tsx index 6c82836..2b25197 100644 --- a/src/components/Organizers.tsx +++ b/src/components/Organizers.tsx @@ -1,7 +1,7 @@ import Gradient from "@/components/Gradient.tsx"; import StarIcon from "@/components/ui/starIcon.tsx"; import Carousel, {GridConfig} from "@/components/Carousel.tsx"; -import {organizers} from "@/data/communites.ts"; +import {organizers} from "@/data/organizers.ts"; import Community from "@/components/Community.tsx"; import React from "react"; import {ICommunity} from "@/types/types.ts"; diff --git a/src/components/SocialMedia.tsx b/src/components/SocialMedia.tsx index 52fe87c..87a865b 100644 --- a/src/components/SocialMedia.tsx +++ b/src/components/SocialMedia.tsx @@ -1,6 +1,7 @@ import {ILink, LinkType} from "@/types/speakers.ts"; import React from "react"; -import {Instagram, Twitter, Linkedin, Github} from "lucide-react"; +import {Instagram, Twitter, Linkedin, Github, FacebookIcon} from "lucide-react"; +import TikTok from "@/components/ui/tiktok.tsx"; interface SocialMediaProps { link: ILink @@ -42,7 +43,19 @@ const SocialMedia: React.FC = ({link, className}) => { GitHub - ); + ) + case LinkType.Facebook: + return ( + + Facebook + + ) + case LinkType.TikTok: + return ( + + + + ) default: return null; } diff --git a/src/components/communities/CommunitiesAllies.tsx b/src/components/communities/CommunitiesAllies.tsx new file mode 100644 index 0000000..01331d2 --- /dev/null +++ b/src/components/communities/CommunitiesAllies.tsx @@ -0,0 +1,27 @@ +import Gradient from "@/components/Gradient.tsx"; +import Adorno from "@/components/icons/Adorno.tsx"; +import React from "react"; +import {communitiesAllies} from "@/data/communites.ts"; +import CommunityAlly from "@/components/communities/CommunityAlly.tsx"; + +const CommunitiesAllies = () => { + return ( + +

+ + Comunidades aliadas + +

+ +
+ { + communitiesAllies.map((community) => ( + + )) + } +
+
+ ) +} + +export default CommunitiesAllies \ No newline at end of file diff --git a/src/components/communities/CommunityAlly.tsx b/src/components/communities/CommunityAlly.tsx new file mode 100644 index 0000000..d94ec83 --- /dev/null +++ b/src/components/communities/CommunityAlly.tsx @@ -0,0 +1,35 @@ +import {ICommunity} from "@/types/types.ts"; +import React from "react"; +import SocialMedia from "@/components/SocialMedia.tsx"; +import {Card} from "@/components/ui/card.tsx"; + +interface CommunityAllyProps { + community: ICommunity; +} + +const CommunityAlly: React.FC = ({community}) => { + return ( +
+
+ + {community.name} + +
+
+ { + community.socials.map((social) => ( + + )) + } +
+
+ ) +} + +export default CommunityAlly \ No newline at end of file diff --git a/src/components/icons/Adorno.tsx b/src/components/icons/Adorno.tsx new file mode 100644 index 0000000..597b1b9 --- /dev/null +++ b/src/components/icons/Adorno.tsx @@ -0,0 +1,15 @@ +import React from "react"; + +const Adorno: React.FC> = (props) => { + return ( + + + + + + + + + ) +} +export default Adorno \ No newline at end of file diff --git a/src/components/icons/Tree.tsx b/src/components/icons/Tree.tsx index ac8bc62..251f1f3 100644 --- a/src/components/icons/Tree.tsx +++ b/src/components/icons/Tree.tsx @@ -1,6 +1,8 @@ -const Tree = () => { +import React from "react"; + +const Tree :React.FC> = (props) => { return ( - + diff --git a/src/data/communites.ts b/src/data/communites.ts index 99c5405..a4e675d 100644 --- a/src/data/communites.ts +++ b/src/data/communites.ts @@ -1,128 +1,136 @@ import {ICommunity} from "@/types/types.ts"; -import LCDC from "@/img/organizers/laschicasdelcodigo.jpeg"; -import IxDA from "@/img/organizers/IxDA-Cover.png"; -import KUG from "@/img/organizers/KUG.png" -import J4G from "@/img/organizers/j4g.png" -import Golang from "@/img/organizers/Gopher.png" -import Fedora from "@/img/organizers/fedora.png" -import Pythonistas from "@/img/organizers/pythonistas.png" -import GDLDevcomms from "@/img/organizers/gdl-devcomms.png" -import JUG from "@/img/organizers/gljug.png" +import {LinkType} from "@/types/speakers.ts"; +import wosecLogo from "@/img/communities/2025/WoSEC.png"; +import technologyEventsLogo from "@/img/communities/2025/technologyevents.png"; +import mdc from "@/img/communities/2025/mdc.png"; +import playasOnTechLogo from "@/img/communities/2025/playas-logo.webp"; +import GDGLogo from "@/img/communities/2025/GDG-Guadalajara.png"; +import ajolotesAWSLogo from "@/img/communities/2025/ajolotes-aws.png"; -export const organizers: Array = [ - { - name: "Pythonistas", - description: "La comunidad de entusiastas de Python en Guadalajara", - link: "https://pythonistas-gdl.org/", - image: Pythonistas, - socials: { - facebook: "https://www.facebook.com/pythonistasgdl", - instagram: "https://www.instagram.com/pythonistas_gdl", - twitter: "https://twitter.com/pythonistas_gdl", - linkedin: "https://www.linkedin.com/groups/13193010", - tikTok: "https://www.tiktok.com/@pythonistas_gdl" - } - }, - { - name: "Las Chicas del Código", - description: "Comunidad de mujeres en tecnología que busca visibilizar el talento femenino en el sector tecnológico a través de eventos.", - link: "https://linktr.ee/laschicasdelcodigo", - image: LCDC, - socials: { - facebook: "https://www.facebook.com/laschicasdelcodigo", - instagram: "https://www.instagram.com/laschicasdelcodigo/", - twitter: "https://x.com/chicasdelcodigo" - }, - }, - { - name: "IXDA (The Interaction Design Association)", - description: ` - Organización respaldada por sus miembros, dedicada al diseño de interacción. - Con grupos locales en todo el mundo, conecta a profesionales de todos los niveles para compartir conocimientos y experiencias en la disciplina.`, - link: "https://ixda.org/", - image: IxDA, - socials: { - facebook: "https://www.facebook.com/ixdagdl", - instagram: "https://www.instagram.com/ixdagdl/", - linkedin: "http://linkedin.com/company/ixda-gdl" - }, - }, - { - name: "KUG", - description: "Comunidad de desarrolladores de Kotlin.", - link: "", - image: KUG, - socials: { - facebook: "https://www.facebook.com/GuadalajaraKUG/", - instagram: "", - twitter: "" - }, - }, +export const communitiesAllies: Array = [ { - name: "GDL Devcomms", - description: "La comunidad de comunidades de Guadalajara.", - link: "", - image: GDLDevcomms, - socials: { - facebook: "https://www.facebook.com/gdldevcomms", - instagram: "", - twitter: "" + name: "Technology Events", + description: "", + link: "https://techyevents.com.mx/", + image: technologyEventsLogo, + socials: [{ + title: "Instagram", + url: "https://www.instagram.com/technology_events_community?igsh=MXgydXFnYWRpcnRseg==", + linkType: LinkType.Instagram }, + { + title: "Facebook", + url: "https://www.facebook.com/share/19r2SzioLV/", + linkType: LinkType.Facebook + }, + { + title: "LinkedIn", + url: "https://www.linkedin.com/company/technology-events-community/", + linkType: LinkType.LinkedIn + }, + { + title: "Tiktok", + url: "https://www.tiktok.com/@technology.events?_t=ZS-8zTq13UhIl0&_r=1", + linkType: LinkType.TikTok + } + ] }, { - name: "J4G", - description: "Java User Group de Guadalajara.", - link: "", - image: J4G, - socials: { - facebook: "https://www.facebook.com/groups/293473358264641i", - instagram: "", - twitter: "" + name: "GDG Guadalajara", + description: "", + link: "https://gdg.community.dev/gdg-guadalajara-mexico-city", + image: GDGLogo, + socials: [{ + title: "LinkedIn", + url: "https://www.linkedin.com/company/gdgguadalajara", + linkType: LinkType.LinkedIn + },{ + title: "Instagram", + url: "https://www.instagram.com/gdg_guadalajara/", + linkType: LinkType.Instagram } - }, + ] + }, { - name: "Golang", - description: "Comunidad de desarrolladores de Go.", - link: "", - image: Golang, - socials: { - facebook: "", - instagram: "", - twitter: "" + name: "WOSEC MEXICO", + description: "", + link: "https://wosecmexico.org/", + image: wosecLogo, + socials: [{ + title: "LinkedIn", + url: "https://www.linkedin.com/company/wosecmexico/", + linkType: LinkType.LinkedIn + },{ + title: "Instagram", + url: "https://www.instagram.com/wosec_mx/", + linkType: LinkType.Instagram } + ] }, { - name: "Fedora", - description: "Comunidad en Mexico de Fedora Linux.", - link: "https://fedoramx.fedorapeople.org", - image: Fedora, - socials: { - facebook: "", - instagram: "", - twitter: "https://x.com/fedoramexico" + name: "Mobile Developer Community (MDC)", + description: "", + link: "https://linktr.ee/mdcommunity", + image: mdc, + socials: [{ + title: "Facebook", + url: "https://www.facebook.com/61576410909269", + linkType: LinkType.Facebook + },{ + title: "Instagram", + url: "https://www.instagram.com/mobiledevelopercommunity/", + linkType: LinkType.Instagram + },{ + title: "LinkedIn", + url: "https://www.linkedin.com/company/mobile-developer-community/", + linkType: LinkType.LinkedIn } + ] }, { - name: "JUG GDL", - description: ` - Comunidad de Java en Guadalajara. Co-organizadores de la JConf GDL.`, - link: "http://juggdl.org", - image: JUG, - socials: { - facebook: "https://www.facebook.com/gdljug", - twitter: "https://twitter.com/java_gdl" - } - } -] - -export const communitiesAllies: Array = [ + name: "AWS User Group Ajolotes en la Nube ", + description: "", + link: "https://devchixmexico.org/", + image: ajolotesAWSLogo, + socials: [ + { + title: "Instagram", + url: "https://www.instagram.com/aws.ajolotes?igsh=MTk1ajFiZHdqand0aA%3D%3D&utm_source=qr", + linkType: LinkType.Instagram + }, + { + title: "LinkedIn", + url: "https://www.linkedin.com/company/aws-ug-ajolotes-en-la-nube/", + linkType: LinkType.LinkedIn + } + ] + }, { - name: "Technology Events", + name: "Playas on tech", description: "", - link: "https://www.meetup.com/devops-gdl/", - image: null, - socials: { - twitter: "https://x.com/DevOpsGDL" + link: "https://playasontech.com/", + image: playasOnTechLogo, + socials: [ + { + title:"Facebook", + url:"https://www.facebook.com/playasontech", + linkType: LinkType.Facebook }, - } + { + title:"Instagram", + url:"https://www.instagram.com/playasontech_mzo/", + linkType: LinkType.Instagram + }, + { + title:"LinkedIn", + url:"https://www.linkedin.com/company/playasontech", + linkType: LinkType.LinkedIn + }, + { + title:"TikTok", + url:"https://www.tiktok.com/@playasontech", + linkType: LinkType.TikTok + } + ] + }, ]; \ No newline at end of file diff --git a/src/data/organizers.ts b/src/data/organizers.ts new file mode 100644 index 0000000..109d9b2 --- /dev/null +++ b/src/data/organizers.ts @@ -0,0 +1,172 @@ +import {ICommunity} from "@/types/types.ts"; +import LCDC from "@/img/organizers/laschicasdelcodigo.jpeg"; +import IxDA from "@/img/organizers/IxDA-Cover.png"; +import KUG from "@/img/organizers/KUG.png" +import J4G from "@/img/organizers/j4g.png" +import Golang from "@/img/organizers/Gopher.png" +import Fedora from "@/img/organizers/fedora.png" +import Pythonistas from "@/img/organizers/pythonistas.png" +import GDLDevcomms from "@/img/organizers/gdl-devcomms.png" +import JUG from "@/img/organizers/gljug.png" +import {LinkType} from "@/types/speakers.ts"; + +export const organizers: Array = [ + { + name: "Pythonistas", + description: "La comunidad de entusiastas de Python en Guadalajara", + link: "https://pythonistas-gdl.org/", + image: Pythonistas, + socials: [ + { + title: "Facebook", + url: "https://www.facebook.com/pythonistasgdl", + linkType: LinkType.Facebook + }, + { + title: "Instagram", + url: "https://www.instagram.com/pythonistas_gdl", + linkType: LinkType.Instagram + }, + { + title: "Twitter", + url: "https://twitter.com/pythonistas_gdl", + linkType: LinkType.Twitter + }, + { + title: "LinkedIn", + url: "https://www.linkedin.com/groups/13193010", + linkType: LinkType.LinkedIn + }, + { + title: "TikTok", + url: "https://www.tiktok.com/@pythonistas_gdl", + linkType: LinkType.TikTok + } + ] + }, + { + name: "Las Chicas del Código", + description: "Comunidad de mujeres en tecnología que busca visibilizar el talento femenino en el sector tecnológico a través de eventos.", + link: "https://linktr.ee/laschicasdelcodigo", + image: LCDC, + socials: [ + { + title: "Facebook", + url: "https://www.facebook.com/laschicasdelcodigo", + linkType: LinkType.Facebook + }, + { + title: "Instagram", + url: "https://www.instagram.com/laschicasdelcodigo/", + linkType: LinkType.Instagram + }, + { + title: "Twitter", + url: "https://x.com/chicasdelcodigo", + linkType: LinkType.Twitter + } + ] + }, + { + name: "IXDA (The Interaction Design Association)", + description: ` + Organización respaldada por sus miembros, dedicada al diseño de interacción. + Con grupos locales en todo el mundo, conecta a profesionales de todos los niveles para compartir conocimientos y experiencias en la disciplina.`, + link: "https://ixda.org/", + image: IxDA, + socials: [ + { + title: "Facebook", + url: "https://www.facebook.com/ixdagdl", + linkType: LinkType.Facebook + }, + { + title: "Instagram", + url: "https://www.instagram.com/ixdagdl/", + linkType: LinkType.Instagram + }, + { + title: "LinkedIn", + url: "http://linkedin.com/company/ixda-gdl", + linkType: LinkType.LinkedIn + } + ] + }, + { + name: "KUG", + description: "Comunidad de desarrolladores de Kotlin.", + link: "", + image: KUG, + socials: [ + { + title: "Facebook", + url: "https://www.facebook.com/GuadalajaraKUG/", + linkType: LinkType.Facebook + } + ] + }, + { + name: "GDL Devcomms", + description: "La comunidad de comunidades de Guadalajara.", + link: "", + image: GDLDevcomms, + socials: [ + { + title: "Facebook", + url: "https://www.facebook.com/gdldevcomms", + linkType: LinkType.Facebook + } + ] + }, + { + name: "J4G", + description: "Java User Group de Guadalajara.", + link: "", + image: J4G, + socials: [ + { + title: "Facebook", + url: "https://www.facebook.com/groups/293473358264641i", + linkType: LinkType.Facebook + } + ] + }, + { + name: "Golang", + description: "Comunidad de desarrolladores de Go.", + link: "", + image: Golang, + socials: [] + }, + { + name: "Fedora", + description: "Comunidad en Mexico de Fedora Linux.", + link: "https://fedoramx.fedorapeople.org", + image: Fedora, + socials: [ + { + title: "Twitter", + url: "https://x.com/fedoramexico", + linkType: LinkType.Twitter + } + ] + }, + { + name: "JUG GDL", + description: ` + Comunidad de Java en Guadalajara. Co-organizadores de la JConf GDL.`, + link: "http://juggdl.org", + image: JUG, + socials: [{ + title: "Facebook", + url: "https://www.facebook.com/gdljug", + linkType: LinkType.Facebook + }, + { + title: "Twitter", + url: "https://twitter.com/java_gdl", + linkType: LinkType.Twitter + } + ] + } +] \ No newline at end of file diff --git a/src/img/communities/2025/GDG-Guadalajara.png b/src/img/communities/2025/GDG-Guadalajara.png new file mode 100644 index 0000000..b34d6e3 Binary files /dev/null and b/src/img/communities/2025/GDG-Guadalajara.png differ diff --git a/src/img/communities/2025/WoSEC.png b/src/img/communities/2025/WoSEC.png new file mode 100644 index 0000000..9dfc1dc Binary files /dev/null and b/src/img/communities/2025/WoSEC.png differ diff --git a/src/img/communities/2025/ajolotes-aws.png b/src/img/communities/2025/ajolotes-aws.png new file mode 100644 index 0000000..f1d5052 Binary files /dev/null and b/src/img/communities/2025/ajolotes-aws.png differ diff --git a/src/img/communities/2025/mdc.png b/src/img/communities/2025/mdc.png new file mode 100644 index 0000000..d574c95 Binary files /dev/null and b/src/img/communities/2025/mdc.png differ diff --git a/src/img/communities/2025/playas-logo.webp b/src/img/communities/2025/playas-logo.webp new file mode 100644 index 0000000..30afaf1 Binary files /dev/null and b/src/img/communities/2025/playas-logo.webp differ diff --git a/src/img/communities/2025/technologyevents.png b/src/img/communities/2025/technologyevents.png new file mode 100644 index 0000000..d21a72f Binary files /dev/null and b/src/img/communities/2025/technologyevents.png differ diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx index 09e7ae8..b26e4c1 100644 --- a/src/pages/Index.tsx +++ b/src/pages/Index.tsx @@ -5,6 +5,7 @@ import {useLocation} from "react-router-dom"; import BecomeSponsor from "@/components/BecomeSponsor.tsx"; import Organizers from "@/components/Organizers.tsx"; import Speakers from "@/components/Speakers.tsx"; +import CommunitiesAllies from "@/components/communities/CommunitiesAllies.tsx"; const Index = () => { const location = useLocation(); @@ -32,6 +33,7 @@ const Index = () => { + ); diff --git a/src/types/speakers.ts b/src/types/speakers.ts index 069f926..17beb15 100644 --- a/src/types/speakers.ts +++ b/src/types/speakers.ts @@ -32,7 +32,9 @@ export enum LinkType { Twitter = "Twitter", LinkedIn = "LinkedIn", GitHub = "GitHub", - Instagram = "Instagram" + Instagram = "Instagram", + Facebook = "Facebook", + TikTok = "TikTok" } export interface ICategory { diff --git a/src/types/types.ts b/src/types/types.ts index 67e8846..1227f83 100644 --- a/src/types/types.ts +++ b/src/types/types.ts @@ -1,15 +1,11 @@ +import {ILink} from "@/types/speakers.ts"; + export interface ICommunity { name?: string; description: string; link: string; image: string; - socials: { - facebook?: string; - instagram?: string; - twitter?: string; - linkedin?: string; - tikTok?: string; - } + socials: ILink[]; } export interface IImage { id: number