Skip to content

Commit

Permalink
Merge branch 'source' into delete-graphql-js-pages
Browse files Browse the repository at this point in the history
  • Loading branch information
benjie authored Feb 4, 2025
2 parents 180c1f7 + d7799da commit 4e88005
Show file tree
Hide file tree
Showing 13 changed files with 596 additions and 55 deletions.
36 changes: 27 additions & 9 deletions src/app/conf/2025/faq.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ const FAQS = [
{
question: "Are there group discounts for teams?",
answer:
'If you have a group of 5 or more people, you can receive a 10% discount on all passes. All pass types must be the same, and all registrations must be processed under one group registration and must be paid with the same credit card. To create a group, select “Add Another Person” to your registration. When 5 or more people are added the 10% discount will be automatically applied. <a href="mailto:[email protected]">Contact us</a> for any questions.',
'If you have a group of 5 or more people, you can receive a 10% discount on all passes. All pass types must be the same, and all registrations must be processed under one group registration and must be paid with the same credit card. To create a group, select “Add Another Person” to your registration. When 5 or more people are added the 10% discount will be automatically applied. <a href="mailto:[email protected]">[email protected]</a> for any questions.',
},
{
question: "What is the refund and cancellation policy?",
answer: `If you must cancel for any reason, please sign back into your registration, click the “Register/Modify” button and select “Unregister.” If you need further assistance, <a href="mailto:[email protected]">contact us</a>.<br/><br/>Refunds will only be issued for cancellations received two weeks prior to the event start date, including bulk ticket request refunds, and will appear as a credit on the card's statement 7-10 business days after cancellation. Individual refund requests for late cancellations due to sickness or emergency will be considered on a case by case basis - <a href="mailto:[email protected]">contact us</a>.<br/><br/>Refunds can only be issued on the card the original payment was made.`,
answer: `If you must cancel for any reason, please sign back into your registration, click the “Register/Modify” button and select “Unregister.” If you need further assistance, please contact <a href="mailto:[email protected]">[email protected]</a>.<br/><br/>Refunds will only be issued for cancellations received two weeks prior to the event start date, including bulk ticket request refunds, and will appear as a credit on the card's statement 7-10 business days after cancellation. Individual refund requests for late cancellations due to sickness or emergency will be considered on a case by case basis - <a href="mailto:[email protected]">[email protected]</a>.<br/><br/>Refunds can only be issued on the card the original payment was made.`,
},
{
question: "Can I transfer my registration?",
Expand All @@ -29,13 +29,30 @@ const FAQS = [
},
{
question: "Can I get certificate of attendance?",
answer: `You can download your Certificate of Attendance directly from your <a target="_blank" href="https://openprofile.dev/myevents">LFX dashboard</a> by navigating to the "Past Events" section in the LF Events column. Please Note: We verify attendance through the registration system, and certificates will only be available for download after the event is completed.`,
},
{
question: "How do I request a visa letter?",
answer: `You must be registered for the event before requesting a visa letter. Please note: it can take up to an hour for our registration system and visa letter system to sync. <a target="_blank" href="https://events.linuxfoundation.org/about/visa-request/">Request a visa letter</a>.`,
},
{
question: "Where can I find health and safety information for the event?",
answer:
'To request a Certificate of Attendance, please submit a request <a target="blank" href="https://docs.google.com/forms/d/1RpI8h6AGK2rCl3aIlyEY0D6fU3tsZ5yr1Ba6c3h6p9Y/viewform?edit_requested=true">here</a>. Please Note: We verify attendance through the registration system, and Certificate of Attendance letters are sent out after the event is completed.',
'Your well-being is our top priority. We continuously update our health and safety guidelines based on local regulations. Information about food allergies, medical resources, emergency contacts, and safety services can be found on <a href="/conf/2025/resources#onsite-resources">this</a> page.',
},
{
question: "What accessibility and onsite resources are available?",
answer:
'We are committed to providing a comfortable and accessible experience for all attendees. Onsite resources include a private nursing room, venue accessibility support, reserved seating, a quiet room, communication and pronoun stickers, all-gender restrooms, first aid assistance, and a process for handling harassment reports. For full details on these resources, please visit <a href="/conf/2025/resources#health--safety">this</a> page.',
},
{
question: "Looking for more?",
answer: "Checkout our <a href='/conf/2025/resources'>Resources</a> page.",
},
{
question: "Cannot find the answer to your question?",
answer:
'You are welcome to email us <a href="mailto:graphqlconf@graphql.org">graphqlconf@graphql.org</a>.',
'You are welcome to email us <a href="mailto:graphql_events@linuxfoundation.org ">graphql_events@linuxfoundation.org</a>.',
},
]

Expand All @@ -50,13 +67,14 @@ export function FAQ() {
Asked Questions
</h2>
<p className="select-none text-sm">
PLEASE CONTACT{" "}
You can find much more information on our{" "}
<a
href="mailto:[email protected]"
className="select-text uppercase text-primary hover:underline"
href="/conf/2025/resources"
className="select-text text-primary hover:underline"
>
[email protected]
</a>
Resources
</a>{" "}
page.
</p>
</div>

Expand Down
34 changes: 25 additions & 9 deletions src/app/conf/2025/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ import { Header } from "../_components/header"
import { Footer } from "../_components/footer"
import { GraphQLConf, HostedByGraphQLFoundation } from "@/icons"
import NextLink from "next/link"
import { Rubik } from "next/font/google"

const rubik = Rubik({
weight: ["700", "600", "500", "400", "300"],
subsets: ["latin"],
})

export const metadata = {
description:
Expand Down Expand Up @@ -41,15 +47,22 @@ export default function Layout({
</NextLink>
}
links={[
{ children: "Sponsor", href: "#sponsors" },
{ children: "Speakers", href: "#speakers" },
{ children: "Register", href: "#register" },
{ children: "Sponsor", href: "/conf/2025/#sponsors" },
{ children: "Submit to Speak", href: "/conf/2025/#speakers" },
{ children: "Register", href: "/conf/2025/#register" },
{ children: "Recap", href: "/conf/2024" },
{ children: "FAQ", href: "#faq" },
{ children: "Resources", href: "/conf/2025/resources" },
{ children: "FAQ", href: "/conf/2025/#faq" },
]}
is2025
/>
{children}
<div
style={{
fontFamily: rubik.style.fontFamily,
}}
>
{children}
</div>
<Footer
logo={
<NextLink href="/conf/2025" className="nextra-logo text-white">
Expand All @@ -62,8 +75,8 @@ export default function Layout({
}
links={[
[
{ children: "Sponsor", href: "#sponsors" },
{ children: "Speakers", href: "#speakers" },
{ children: "Sponsor", href: "/conf/2025/#sponsors" },
{ children: "Speakers", href: "/#speakers" },
{ children: "GraphQLConf 2024", href: "/conf/2024" },
],
[
Expand All @@ -75,9 +88,12 @@ export default function Layout({
{ children: "GraphQL Foundation", href: "/foundation" },
{
children: "Code of Conduct",
href: "/conf/2025/faq/#codeofconduct",
href: "/conf/2025/resources/#code-of-conduct",
},
{
children: "Diversity & Inclusion",
href: "/conf/2025/resources/#diversity--inclusion",
},
{ children: "Diversity & Inclusion", href: "/conf/2025/faq/#dni" },
],
]}
/>
Expand Down
20 changes: 3 additions & 17 deletions src/app/conf/2025/page.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
import { Metadata } from "next"
import { HostedByGraphQLFoundation } from "@/icons"
import { Rubik } from "next/font/google"
import { GridButton } from "../_components/grid-button"
import { Sponsor } from "./sponsorship"
import { Venue } from "./venue"
import { FAQ } from "./faq"
import { Register } from "./register"
import { PastSponsors } from "./past-sponsors"

const rubik = Rubik({
weight: ["700", "600", "500", "400", "300"],
subsets: ["latin"],
})
import { Speakers } from "./speakers"

export const metadata: Metadata = {
title: "GraphQLConf 2025 — Sept 08-10",
Expand Down Expand Up @@ -63,22 +58,13 @@ function Intro() {

export default function Page() {
return (
<main
style={{
fontFamily: rubik.style.fontFamily,
}}
className="text-white"
>
<main className="text-white">
<Hero />
<div className="container my-20 flex flex-col gap-20 md:my-32 md:gap-32">
<Intro />
<PastSponsors />
<Sponsor />
<GridButton
id="speakers"
title="Notify Me About Speaking"
href="https://forms.gle/jRsE2u8pokLX93RGA"
/>
<Speakers />
<Register />
<Venue />
<FAQ />
Expand Down
43 changes: 31 additions & 12 deletions src/app/conf/2025/register.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,8 @@ export function Register() {
<InfoGrid
id="register"
title="Register"
subtitle="Join a diverse community of GraphQL developers, architects, and enthusiasts while experiencing premium content and networking opportunities in a vendor-neutral environment."
subtitle="Join a diverse community of GraphQL developers, architects, and enthusiasts while experiencing premium content and networking opportunities in a vendor-neutral environment. We never sell attendee lists or contact information, nor do we authorize others to do so. If you receive an email claiming to sell an attendee list for a Linux Foundation event, please forward it to [email protected]."
listItems={[
{
title: "Corporate",
description:
"The Corporate Registration type is for registrants whose company is paying for their attendance. This includes for-profit companies. You will help keep the conference affordable for everyone, especially students and those needing financial aid.",
},
{
title: "Individuals",
description:
"The Individual Registration type is for registrants who are currently not working for a company, work for a non-profit or research institution or are attending at their own expense. You will receive confirmation within five business days of registering if your individual registration is approved or needs additional information.",
},
{
title: "Academics",
description: `Academics registrations are for current full-time students and faculty members. Full-time faculty and students will need to upload a valid copy of their Faculty or Student ID when registering. If you have any questions, please email <a href="mailto:[email protected]">[email protected]</a>`,
Expand All @@ -28,11 +18,40 @@ export function Register() {
},
{
title: "Sponsors",
description: `A registration link was shared in an email to your company's sponsorship contact. Please reach out to your company’s sponsorship contact if you need to register as a Sponsor. For further questions, please email <a href="mailto:[email protected].">[email protected].</a>`,
description: `A registration link was shared in an email to your company's sponsorship contact. Please reach out to your company’s sponsorship contact if you need to register as a Sponsor. For further questions, please email <a href="mailto:[email protected]">[email protected]</a>.`,
},
{
title: "Media",
description: `If you are a member of the media interested in attending this event and have not received a complimentary access code to attend, contact us at <a href="mailto:[email protected]">[email protected]</a>.`,
},
]}
/>

<div className="mt-10">
<h2 className="mb-4 text-5xl font-bold text-white">Rates</h2>
<p>The registraion deadlines is 23:59 on the respective date.</p>
<div className="mt-8 grid gap-6 md:grid-cols-3 md:gap-2">
{[
{ title: "Early Bird", dates: "Through 13 July", price: "$599" },
{ title: "Standard", dates: "14 July - 31 August", price: "$799" },
{
title: "Late",
dates: "1 September - 10 September",
price: "$899",
},
].map((item, index) => (
<div
key={item.title}
className="w-full flex-shrink-0 snap-start items-center justify-center border border-primary p-6 text-center text-white shadow-lg lg:w-full lg:max-w-sm"
>
<h3 className="mb-2 text-2xl font-bold">{item.title}</h3>
<time>{item.dates}</time>
<p className="mt-2 text-3xl font-bold">{item.price}</p>
</div>
))}
</div>
</div>

<div className="mt-8 flex justify-center">
<a
href="https://cvent.me/PBNYEe?utm_source=graphql_conf_2025&utm_medium=website&utm_campaign=register_section"
Expand Down
21 changes: 21 additions & 0 deletions src/app/conf/2025/resources/client-mdx.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
"use client"

import Resources from "./resources.mdx"

export default function ResourcesPage() {
return (
<Resources
components={{
// @ts-expect-error - not sure how to type this
a: props => {
const isExternal = props.href.startsWith("http")
if (isExternal) {
return <a {...props} target="_blank" rel="noopener noreferrer" />
}

return <a {...props} />
},
}}
/>
)
}
25 changes: 25 additions & 0 deletions src/app/conf/2025/resources/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import Resources from "./client-mdx"

import { clsx } from "clsx"
import { Metadata } from "next"

export const metadata: Metadata = {
title: "Resources | 2025",
}

export default function ResourcesPage() {
return (
<main>
<div
className={clsx(
"container my-10 flex flex-col md:my-20",
"prose max-w-screen-xl",
"text-white prose-headings:text-white prose-a:text-white prose-strong:text-white",
"prose-a:w-fit prose-a:transition-colors hover:prose-a:text-primary",
)}
>
<Resources />
</div>
</main>
)
}
Loading

0 comments on commit 4e88005

Please sign in to comment.