Skip to content

Commit 8a73766

Browse files
committed
Add FrequentlyAskedQuestions section
1 parent e8399ec commit 8a73766

File tree

3 files changed

+192
-65
lines changed

3 files changed

+192
-65
lines changed

src/app/conf/2025/faq.tsx

Lines changed: 190 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,232 @@
1-
import { ArrowRight } from "lucide-react"
2-
3-
import styles from "./index.module.css"
1+
import clsx from "clsx"
2+
import ArrowDown from "./pixelarticons/arrow-down.svg?svgr"
43

54
const FAQS = [
65
{
76
question: "When will speakers and the agenda be announced?",
8-
answer:
9-
"Stay tuned to our social media channels and website for updates on speakers and the agenda.",
7+
answer: (
8+
<>
9+
Stay tuned to our social media channels and website for updates on
10+
speakers and the agenda.
11+
</>
12+
),
1013
},
1114
{
1215
question: "Can I sponsor the event?",
13-
answer:
14-
'Yes! We offer various sponsorship packages. See <a href="#sponsors">this</a> section for more information.',
16+
answer: (
17+
<>
18+
Yes! We offer various sponsorship packages. See the{" "}
19+
<a className="typography-link" href="#sponsors">
20+
Sponsors
21+
</a>{" "}
22+
section for more information.
23+
</>
24+
),
1525
},
1626
{
1727
question: "Are there group discounts for teams?",
18-
answer:
19-
'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.',
28+
answer: (
29+
<>
30+
If you have a group of 5 or more people, you can receive a 10% discount
31+
on all passes. All pass types must be the same, and all registrations
32+
must be processed under one group registration and must be paid with the
33+
same credit card. To create a group, select “Add Another Person” to your
34+
registration. When 5 or more people are added the 10% discount will be
35+
automatically applied.{" "}
36+
<a
37+
className="typography-link"
38+
href="mailto:[email protected]"
39+
>
40+
41+
</a>{" "}
42+
for any questions.
43+
</>
44+
),
2045
},
2146
{
2247
question: "What is the refund and cancellation policy?",
23-
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.`,
48+
answer: (
49+
<>
50+
If you must cancel for any reason, please sign back into your
51+
registration, click the “Register/Modify” button and select
52+
“Unregister.” If you need further assistance, please contact{" "}
53+
<a
54+
className="typography-link"
55+
href="mailto:[email protected]"
56+
>
57+
58+
</a>
59+
.<br />
60+
<br />
61+
Refunds will only be issued for cancellations received two weeks prior
62+
to the event start date, including bulk ticket request refunds, and will
63+
appear as a credit on the card's statement 7-10 business days after
64+
cancellation. Individual refund requests for late cancellations due to
65+
sickness or emergency will be considered on a case by case basis -{" "}
66+
<a
67+
className="typography-link"
68+
href="mailto:[email protected]"
69+
>
70+
71+
</a>
72+
.<br />
73+
<br />
74+
Refunds can only be issued on the card the original payment was made.
75+
</>
76+
),
2477
},
2578
{
2679
question: "Can I transfer my registration?",
27-
answer:
28-
"If you are unable to attend, you may substitute another attendee in lieu of cancellation. To substitute an attendee, sign back into your registration, click the “Register/Modify”, and select “Transfer Registration” on your confirmation page.",
80+
answer: (
81+
<>
82+
If you are unable to attend, you may substitute another attendee in lieu
83+
of cancellation. To substitute an attendee, sign back into your
84+
registration, click the “Register/Modify”, and select “Transfer
85+
Registration” on your confirmation page.
86+
</>
87+
),
2988
},
3089
{
3190
question: "Can I get certificate of attendance?",
32-
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.`,
91+
answer: (
92+
<>
93+
You can download your Certificate of Attendance directly from your{" "}
94+
<a
95+
className="typography-link"
96+
target="_blank"
97+
href="https://openprofile.dev/myevents"
98+
>
99+
LFX dashboard
100+
</a>{" "}
101+
by navigating to the "Past Events" section in the LF Events column.
102+
Please Note: We verify attendance through the registration system, and
103+
certificates will only be available for download after the event is
104+
completed.
105+
</>
106+
),
33107
},
34108
{
35109
question: "How do I request a visa letter?",
36-
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>.`,
110+
answer: (
111+
<>
112+
You must be registered for the event before requesting a visa letter.
113+
Please note: it can take up to an hour for our registration system and
114+
visa letter system to sync.{" "}
115+
<a
116+
className="typography-link"
117+
target="_blank"
118+
href="https://events.linuxfoundation.org/about/visa-request/"
119+
>
120+
Request a visa letter
121+
</a>
122+
.
123+
</>
124+
),
37125
},
38126
{
39127
question: "Where can I find health and safety information for the event?",
40-
answer:
41-
'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.',
128+
answer: (
129+
<>
130+
Your well-being is our top priority. We continuously update our health
131+
and safety guidelines based on local regulations. Information about food
132+
allergies, medical resources, emergency contacts, and safety services
133+
can be found on{" "}
134+
<a
135+
className="typography-link"
136+
href="/conf/2025/resources#onsite-resources"
137+
>
138+
this
139+
</a>{" "}
140+
page.
141+
</>
142+
),
42143
},
43144
{
44145
question: "What accessibility and onsite resources are available?",
45-
answer:
46-
'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.',
146+
answer: (
147+
<>
148+
We are committed to providing a comfortable and accessible experience
149+
for all attendees. Onsite resources include a private nursing room,
150+
venue accessibility support, reserved seating, a quiet room,
151+
communication and pronoun stickers, all-gender restrooms, first aid
152+
assistance, and a process for handling harassment reports. For full
153+
details on these resources, please visit{" "}
154+
<a
155+
className="typography-link"
156+
href="/conf/2025/resources#health--safety"
157+
>
158+
this
159+
</a>{" "}
160+
page.
161+
</>
162+
),
47163
},
48164
{
49165
question: "Looking for more?",
50-
answer: "Checkout our <a href='/conf/2025/resources'>Resources</a> page.",
166+
answer: (
167+
<>
168+
Checkout our{" "}
169+
<a className="typography-link" href="/conf/2025/resources">
170+
Resources
171+
</a>{" "}
172+
page.
173+
</>
174+
),
51175
},
52176
{
53177
question: "Cannot find the answer to your question?",
54-
answer:
55-
'You are welcome to email us <a href="mailto:[email protected] ">[email protected]</a>.',
178+
answer: (
179+
<>
180+
You are welcome to email us{" "}
181+
<a
182+
className="typography-link"
183+
href="mailto:[email protected] "
184+
>
185+
186+
</a>
187+
.
188+
</>
189+
),
56190
},
57191
]
58192

59-
export function FAQ() {
193+
export function FAQ({ className }: { className?: string }) {
60194
return (
61-
<div id="faq" className={styles.faq}>
62-
<div className="mx-auto grid max-w-7xl gap-12 md:grid-cols-2">
63-
<div>
64-
<h2 className="mb-4 select-none text-4xl font-bold md:text-5xl">
65-
Frequently
66-
<br />
67-
Asked Questions
68-
</h2>
69-
<p className="select-none text-sm">
70-
You can find much more information on our{" "}
71-
<a
72-
href="/conf/2025/resources"
73-
className="select-text text-primary hover:underline"
74-
>
75-
Resources
76-
</a>{" "}
77-
page.
78-
</p>
79-
</div>
195+
<section
196+
id="faq"
197+
className={clsx(
198+
"gql-conf-section flex gap-10 max-md:flex-col xl:gap-24 2xl:gap-36",
199+
className,
200+
)}
201+
>
202+
<div>
203+
<h2 className="typography-h2">Frequently Asked Questions</h2>
204+
<p className="mt-6 typography-body-md">
205+
You can find much more information on our{" "}
206+
<a href="/conf/2025/resources" className="typography-link">
207+
Resources
208+
</a>{" "}
209+
page.
210+
</p>
211+
</div>
80212

81-
<div>
82-
{FAQS.map((faq, index) => (
83-
<details
84-
key={index}
85-
className="group border-b border-dashed border-white/10"
86-
>
87-
<summary className="flex cursor-pointer list-none items-center justify-start gap-2 py-6 text-left focus:outline-none">
88-
<ArrowRight className="size-5 shrink-0 transition-transform duration-200 group-open:rotate-90" />
89-
<span className="select-none text-lg">{faq.question}</span>
90-
</summary>
91-
<p
92-
className="-mt-4 ml-7 whitespace-pre-wrap pb-6 text-gray-300 [&>a]:underline"
93-
dangerouslySetInnerHTML={{ __html: faq.answer }}
94-
/>
95-
</details>
96-
))}
97-
</div>
213+
<div className="space-y-4 md:space-y-6">
214+
{FAQS.map((faq, index) => (
215+
<details
216+
open={index === 0}
217+
key={index}
218+
className="group/q border border-neu-400"
219+
>
220+
<summary className="flex cursor-pointer list-none items-center justify-between gap-2 border-neu-400 p-2 px-3 focus:outline-none group-open/q:border-b [&::-webkit-details-marker]:hidden">
221+
<span className="select-none typography-body-lg">
222+
{faq.question}
223+
</span>
224+
<ArrowDown className="size-10 text-sec-darker group-open/q:rotate-180" />
225+
</summary>
226+
<p className="p-3 typography-body-md">{faq.answer}</p>
227+
</details>
228+
))}
98229
</div>
99-
</div>
230+
</section>
100231
)
101232
}

src/app/conf/2025/index.module.css

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/app/conf/2025/page.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ export default function Page() {
3737
<Sponsor />
3838
<Register />
3939
<Venue />
40+
</div>
41+
<div className="gql-conf-container text-neu-900">
4042
<FAQ />
4143
</div>
4244
</main>

0 commit comments

Comments
 (0)