diff --git a/data/icons/ny/reaktor.svg b/data/icons/ny/reaktor.svg
new file mode 100644
index 0000000..11c174c
--- /dev/null
+++ b/data/icons/ny/reaktor.svg
@@ -0,0 +1,9 @@
+
+
\ No newline at end of file
diff --git a/data/new-york-2024.yaml b/data/new-york-2024.yaml
new file mode 100644
index 0000000..ac77238
--- /dev/null
+++ b/data/new-york-2024.yaml
@@ -0,0 +1,32 @@
+---
+info:
+ city: New York
+ link: new-york-2024
+ date: 04/25/2024
+ hour: '18:00'
+ icon: icons/ny/ny.svg
+ iconHover: icons/ny/ny-hover.svg
+ hostIcon: icons/ny/reaktor.svg
+ hostName: Reaktor
+ rsvpsClosed: false
+ food: true
+ maxCapacity: 50
+site:
+ city: New York
+ location: Reaktor 30 W 21st St, New York, NY 10010 (14th Floor)
+ googleMapsLink: https://maps.app.goo.gl/twih2oPd5upJ2ezF8
+ calendarLink: https://www.google.com/calendar/render?action=TEMPLATE&text=QueerJS&details=Hosted+at+Reaktor+NYC+office.+When+you+get+here%2C+tell+front+desk+staff+that+you+are+going+to+Reaktor+office+on+14th+floor%29.&location=30+W+21st+St%2C+New+York%2C+NY+10010&dates=20240425T220000Z%2F20240426T020000Z
+ cfp: true
+sponsors:
+ - name: Reaktor
+ link: https://reaktor.com
+ media: https://i.imgur.com/bmJTxU4.jpg
+organizers:
+ - name: 3dwardsharp
+ mc: true
+ githubLink: edwardsharp
+ talk: 'Reaktor && functional programming (but mostly here to help)'
+ - name: Daniel Ehrenberg
+ mc: true
+ githubLink: littledan
+ twitterLink: littledan
diff --git a/src/components/Organizers/index.js b/src/components/Organizers/index.js
index 265dfa4..e765951 100644
--- a/src/components/Organizers/index.js
+++ b/src/components/Organizers/index.js
@@ -11,14 +11,23 @@ import {
const size = 100
+const humanHref = (human) => {
+ if (human.githubLink) {
+ return `https://github.com/${human.githubLink}`
+ }
+ if (human.twitterLink || human.twitterHandle) {
+ return `https://twitter.com/${human.twitterLink || human.twitterHandle}`
+ }
+}
+
const Organizers = ({ organizers }) => {
return (
{organizers.map((human) => (
-
+
{
- const { site, thanks, speakers, sponsors, info, mainOrganizer, announcement } = city
+ const { site, thanks, speakers, sponsors, info, mainOrganizer, announcement, organizers } = city
const hasHeading = !site.fullDescription
? {
heading: 'What?'
}
: {}
+
+ const cityOrganizers = mainOrganizer || organizers
return (
{
)}
- {mainOrganizer && mainOrganizer.length > 0 ? (
- 1 ? 'Organizers' : 'Organizer'}>
-
+
+ {cityOrganizers?.length ? (
+ 1 ? 'Organizers' : 'Organizer'}>
+
) : null}
diff --git a/src/templates/city.js b/src/templates/city.js
index 2670cd3..9d17c34 100644
--- a/src/templates/city.js
+++ b/src/templates/city.js
@@ -13,7 +13,7 @@ const City = ({ data = {} }) => {
export default City
export const query = graphql`
- query($slug: String!) {
+ query ($slug: String!) {
allAirtable(filter: { data: { city: { eq: $slug } } }) {
edges {
node {