From e253a1d53d83dea560457e97c4339d4478e28c91 Mon Sep 17 00:00:00 2001 From: Jake Ginnivan Date: Tue, 20 Aug 2024 16:56:09 +0800 Subject: [PATCH] Fix faq and few other minor fixes --- website-content/pages/faq.mdx | 143 ++++-- website/app/components/footer/footer.tsx | 10 +- .../page-components/important-dates.tsx | 429 +++++++++--------- website/app/routes/_layout.agenda.($year).tsx | 2 +- 4 files changed, 313 insertions(+), 271 deletions(-) diff --git a/website-content/pages/faq.mdx b/website-content/pages/faq.mdx index cfe5d47..21019ba 100644 --- a/website-content/pages/faq.mdx +++ b/website-content/pages/faq.mdx @@ -4,158 +4,201 @@ title: FAQ
When and where is it? - The event will be held on [Event Date]. Doors will open at [Opening Time] and the event will finish at [Finish - Time]. (Please note that all times on the website are in Perth time: WST or +08:00) +

+ The event will be held on [Event Date]. Doors will open at [Opening Time] and the event will finish at [Finish + Time]. (Please note that all times on the website are in Perth time: WST or +08:00) +

How much does it cost to attend? - The ticket price covers your entry, food, and coffee all day! After-party tickets are purchased separately. We are - able to keep the ticket price low thanks to our generous sponsors. The event is a non-profit, and any excess will be - kept for future events or donated to charity. +

+ The ticket price covers your entry, food, and coffee all day! After-party tickets are purchased separately. We + are able to keep the ticket price low thanks to our generous sponsors. The event is a non-profit, and any excess + will be kept for future events or donated to charity. +

What if I can't afford to attend? - If you can't afford the ticket price, we have Sponsored (Financial Assistance) tickets available. We also have an - option for people to donate further tickets. The only requirement for eligibility is that you can't afford the - ticket. +

+ If you can't afford the ticket price, we have Sponsored (Financial Assistance) tickets available. We also have + an option for people to donate further tickets. The only requirement for eligibility is that you can't afford + the ticket. +

How do after party tickets work? - After-party tickets are only available as an upgrade when purchasing a conference ticket. If you can't attend the - conference but still want to attend the After Party, purchase a pay-it-forward or remote conference ticket, and you - are eligible to purchase an After Party ticket. +

+ After-party tickets are only available as an upgrade when purchasing a conference ticket. If you can't attend + the conference but still want to attend the After Party, purchase a pay-it-forward or remote conference ticket, + and you are eligible to purchase an After Party ticket. +

Is this just for software developers? - No! While our name implies we are just about devs, our events are aimed at all professionals in the software - industry - developers, testers, designers, analysts, managers, etc. +

+ No! While our name implies we are just about devs, our events are aimed at all professionals in the software + industry - developers, testers, designers, analysts, managers, etc. +

How is the agenda chosen? - The event is a community-driven event with core values of inclusion and democratic engagement. Proposed sessions are - anonymized and voted for by the public, but some curation is required to produce an agenda that meets our inclusion - goals. +

+ The event is a community-driven event with core values of inclusion and democratic engagement. Proposed sessions + are anonymized and voted for by the public, but some curation is required to produce an agenda that meets our + inclusion goals. +

Will refreshments be provided? - Yes, attendees will receive lunch and snacks throughout the day, and there will be a coffee cart operating all day. +

+ Yes, attendees will receive lunch and snacks throughout the day, and there will be a coffee cart operating all + day. +

What about swag? - Yes, there will be a bunch of swag on offer both from our swag table and with the various sponsors that will have - booths. It is a good idea to bring your own bag, but we will have a small number of bags available if needed. +

+ Yes, there will be a bunch of swag on offer both from our swag table and with the various sponsors that will + have booths. It is a good idea to bring your own bag, but we will have a small number of bags available if + needed. +

Will there be wifi? - Yes, wifi will be available at the venue. +

Yes, wifi will be available at the venue.

Will childcare be available? - Yes! Childcare is available for the duration of the main conference and is free. You will be required to provide - food for your child for the day if they are under 12. +

+ Yes! Childcare is available for the duration of the main conference and is free. You will be required to provide + food for your child for the day if they are under 12. +

When does registration open? - Registration opens on [Registration Date] at [Registration Time]. +

Registration opens on [Registration Date] at [Registration Time].

Can I pay by cheque, invoice, cash, Coinye West? - Payments can be made with credit card using Tito via our tickets page when registrations are open. +

Payments can be made with credit card using Tito via our tickets page when registrations are open.

Can I cancel/give my ticket to someone else? - You are welcome to send someone else in your place. Please do this through Tito. +

You are welcome to send someone else in your place. Please do this through Tito.

What is the hashtag for the event? - The Twitter hashtag is [#EventHashtag]. +

The Twitter hashtag is [#EventHashtag].

Will I be photographed or filmed? - Media personnel authorized by the event will be in attendance. These media personnel will respect the photo policy - as defined in the Code of Conduct. +

+ Media personnel authorized by the event will be in attendance. These media personnel will respect the photo + policy as defined in the Code of Conduct. +

I want to be involved. Can I help? - We are always looking for volunteers and sometimes looking for organizers! Email us at [Contact Email], and we can - work with you to figure out the best way to assist. +

+ We are always looking for volunteers and sometimes looking for organizers! Email us at [Contact Email], and we + can work with you to figure out the best way to assist. +

How can I contact the organizers? - We can be contacted via email at [Contact Email] and Twitter at [Twitter Handle]. Also, see our various social media - accounts at the footer of this page. +

+ We can be contacted via email at [Contact Email] and Twitter at [Twitter Handle]. Also, see our various social + media accounts at the footer of this page. +

How can I sponsor the event? - The event offers a unique marketing and recruiting opportunity. We have various levels of sponsorship available. If - you would like a copy of the sponsorship prospectus, please contact us. +

+ The event offers a unique marketing and recruiting opportunity. We have various levels of sponsorship available. + If you would like a copy of the sponsorship prospectus, please contact us. +

How can I go to this kind of thing more often? - Perth has a very active software community. Consider attending one of the meetups or conferences such as Perth .NET, - Perth Cloud, Perth Functional Programmers, and more. You can see an up-to-date list of Australian conferences on - Readify's DevEvents repository. +

+ Perth has a very active software community. Consider attending one of the meetups or conferences such as Perth + .NET, Perth Cloud, Perth Functional Programmers, and more. You can see an up-to-date list of Australian + conferences on Readify's DevEvents repository. +

Who are the organizers? - The event is organized by [Organizer Group], a non-profit organization set up to create inclusive events for the WA - software community. +

+ The event is organized by [Organizer Group], a non-profit organization set up to create inclusive events for the + WA software community. +

Can I wear a face mask? - Absolutely, we support any attendees who choose to wear a face mask on the day of the conference. +

Absolutely, we support any attendees who choose to wear a face mask on the day of the conference.

Will you have sanitizer available at the conference? - Yes! We will have sanitizing processes in place for all attendees on the day, and this includes providing hand - sanitizer. We encourage everyone to bring their own personal supply too. +

+ Yes! We will have sanitizing processes in place for all attendees on the day, and this includes providing hand + sanitizer. We encourage everyone to bring their own personal supply too. +

I don’t feel well, can I still come to the conference? - If you’re experiencing any cold or flu-like symptoms, please stay home and follow the WA government instructions - regarding COVID testing. We will be livestreaming the conference, so you will be able to view the talks remotely. +

+ If you’re experiencing any cold or flu-like symptoms, please stay home and follow the WA government instructions + regarding COVID testing. We will be livestreaming the conference, so you will be able to view the talks + remotely. +

How will the online conference differ from the in-person conference? - We intend on hosting an in-person conference, while at the same time making the talks accessible online via - high-quality livestreams. +

+ We intend on hosting an in-person conference, while at the same time making the talks accessible online via + high-quality livestreams. +

How do I access the online conference? - You can access the online conference via a playlist on our YouTube channel. +

You can access the online conference via a playlist on our YouTube channel.

What if I can’t attend the online conference? - If you’re not able to attend the online conference, you’ll still get the chance to see our wonderful speakers! We’ll - be releasing recordings of the talks online. +

+ If you’re not able to attend the online conference, you’ll still get the chance to see our wonderful speakers! + We’ll be releasing recordings of the talks online. +

Will talks be available online after the conference? - Yes! We’ll be releasing recordings of the talks so you can catch up on anything you may have missed on the day. +

+ Yes! We’ll be releasing recordings of the talks so you can catch up on anything you may have missed on the day. +

diff --git a/website/app/components/footer/footer.tsx b/website/app/components/footer/footer.tsx index 9abc7ce..c9470c7 100644 --- a/website/app/components/footer/footer.tsx +++ b/website/app/components/footer/footer.tsx @@ -1,21 +1,19 @@ import Logo from '~/images/svg/logo.svg?react' import { css } from '../../../styled-system/css' -import { Divider, Flex, Grid, styled } from '../../../styled-system/jsx' +import { Box, Divider, Flex, Grid, styled } from '../../../styled-system/jsx' import { socialsData } from '../../config/socials-data' export const Footer = () => ( - - + @@ -101,5 +99,5 @@ export const Footer = () => ( - + ) diff --git a/website/app/components/page-components/important-dates.tsx b/website/app/components/page-components/important-dates.tsx index f4c57e3..a11c6da 100644 --- a/website/app/components/page-components/important-dates.tsx +++ b/website/app/components/page-components/important-dates.tsx @@ -2,241 +2,242 @@ import { FC, useEffect, useState } from 'react' import { Flex, styled } from 'styled-system/jsx' interface ImportantDateBoxProps { - datetime: string - day: string - date: string - time: string - event: string - eventCloseTitle?: string - eventCloseHref?: string - eventLive?: boolean - smallSidebar?: boolean // New prop for small sidebar - showOnlyLive?: boolean // New prop to filter only live events + datetime: string + day: string + date: string + time: string + event: string + eventCloseTitle?: string + eventCloseHref?: string + eventLive?: boolean + smallSidebar?: boolean // New prop for small sidebar + showOnlyLive?: boolean // New prop to filter only live events } const importantDatesData: ImportantDateBoxProps[] = [ - { - datetime: '2024-06-14T00:00:00.000Z', - day: 'Friday', - date: 'Jun 14', - time: '8:00am', - event: 'Call for presentations open', - eventCloseTitle: 'CFP Closed', - }, - { - datetime: '2024-06-21T00:00:00.000Z', - day: 'Friday', - date: 'Jun 21', - time: '8:00am', - event: 'Ticket sales open', - eventCloseTitle: 'Buy Tickets ↗', - eventCloseHref: '/tickets', - eventLive: true, - }, - { - datetime: '2024-07-12T15:59:59.000Z', - day: 'Friday', - date: 'Jul 12', - time: '11:59pm', - event: 'Call for presentations close', - eventCloseTitle: 'CFP Closed', - }, - { - datetime: '2024-07-22T16:00:00.000Z', - day: 'Tuesday', - date: 'Jul 23', - time: '12:00am', - event: 'Voting open', - eventCloseTitle: 'Voting Closed', - }, - { - datetime: '2024-08-06T15:59:59.000Z', - day: 'Tuesday', - date: 'Aug 6', - time: '11:59pm', - event: 'Voting close', - eventCloseTitle: 'Voting Closed', - }, - { - datetime: '2024-08-20T09:00:00.000Z', - day: 'Tuesday', - date: 'Aug 20', - time: '5:00pm', - event: 'Agenda published', - eventCloseTitle: 'View Agenda', - eventCloseHref: '/agenda', - eventLive: true, - }, - { - datetime: '2024-11-15T09:15:00.000Z', - day: 'Friday', - date: 'Nov 15', - time: '05:15pm', - event: 'Ticket sales close', - eventLive: true, - }, - { - datetime: '2024-11-16T00:00:00.000Z', - day: 'Saturday', - date: 'Nov 16', - time: '8:00am', - event: 'Conference day', - eventCloseTitle: 'Get Directions!', - eventLive: true, - }, + { + datetime: '2024-06-14T00:00:00.000Z', + day: 'Friday', + date: 'Jun 14', + time: '8:00am', + event: 'Call for presentations open', + eventCloseTitle: 'CFP Closed', + }, + { + datetime: '2024-06-21T00:00:00.000Z', + day: 'Friday', + date: 'Jun 21', + time: '8:00am', + event: 'Ticket sales open', + eventCloseTitle: 'Buy Tickets ↗', + eventCloseHref: '/tickets', + eventLive: true, + }, + { + datetime: '2024-07-12T15:59:59.000Z', + day: 'Friday', + date: 'Jul 12', + time: '11:59pm', + event: 'Call for presentations close', + eventCloseTitle: 'CFP Closed', + }, + { + datetime: '2024-07-22T16:00:00.000Z', + day: 'Tuesday', + date: 'Jul 23', + time: '12:00am', + event: 'Voting open', + eventCloseTitle: 'Voting Closed', + }, + { + datetime: '2024-08-06T15:59:59.000Z', + day: 'Tuesday', + date: 'Aug 6', + time: '11:59pm', + event: 'Voting close', + eventCloseTitle: 'Voting Closed', + }, + { + datetime: '2024-08-20T09:00:00.000Z', + day: 'Tuesday', + date: 'Aug 20', + time: '5:00pm', + event: 'Agenda published', + eventCloseTitle: 'View Agenda', + eventCloseHref: '/agenda', + eventLive: true, + }, + { + datetime: '2024-11-15T09:15:00.000Z', + day: 'Friday', + date: 'Nov 15', + time: '05:15pm', + event: 'Ticket sales close', + eventLive: true, + }, + { + datetime: '2024-11-16T00:00:00.000Z', + day: 'Saturday', + date: 'Nov 16', + time: '8:00am', + event: 'Conference day', + eventCloseTitle: 'Get Directions!', + eventLive: true, + }, ] const ImportantDateBox: FC = ({ - datetime, - day, - date, - time, - event, - eventCloseTitle, - eventCloseHref, - eventLive, - smallSidebar, - showOnlyLive, + datetime, + day, + date, + time, + event, + eventCloseTitle, + eventCloseHref, + eventLive, + smallSidebar, + showOnlyLive, }) => { - if (showOnlyLive && !eventLive) { - return null - } - - const eventDate = new Date(datetime) - const currentDate = new Date() - const isPast = currentDate > eventDate + if (showOnlyLive && !eventLive) { + return null + } - const calculateDaysLeft = () => { - const difference = +eventDate - +new Date() - return Math.ceil(difference / (1000 * 60 * 60 * 24)) - } + const eventDate = new Date(datetime) + const currentDate = new Date() + const isPast = currentDate > eventDate - const [daysLeft, setDaysLeft] = useState(calculateDaysLeft()) + const calculateDaysLeft = () => { + const difference = +eventDate - +new Date() + return Math.ceil(difference / (1000 * 60 * 60 * 24)) + } - useEffect(() => { - if (!isPast) { - const timer = setTimeout( - () => { - setDaysLeft(calculateDaysLeft()) - }, - 1000 * 60 * 60 * 24, - ) + const [daysLeft, setDaysLeft] = useState(calculateDaysLeft()) - return () => clearTimeout(timer) - } - }, [daysLeft, isPast]) + useEffect(() => { + if (!isPast) { + const timer = setTimeout( + () => { + setDaysLeft(calculateDaysLeft()) + }, + 1000 * 60 * 60 * 24, + ) - return ( - - - + return () => clearTimeout(timer) + } + }, [daysLeft, isPast]) - {eventLive ? ( - - {!isPast && daysLeft > 0 ? ( -
- {daysLeft} days left -
- ) : ( - eventCloseTitle - )} -
- ) : !isPast && daysLeft > 0 ? ( -
- {daysLeft} days left -
- ) : ( - - {eventCloseTitle} - - )} -
- ) + + + + {eventLive ? ( + + {!isPast && daysLeft > 0 ? ( +
+ {daysLeft} days left +
+ ) : ( + eventCloseTitle + )} +
+ ) : !isPast && daysLeft > 0 ? ( +
+ {daysLeft} days left +
+ ) : ( + + {eventCloseTitle} + + )} + + ) } export const ImportantDates: React.FC<{ smallSidebar?: boolean; showOnlyLive?: boolean }> = ({ - smallSidebar, - showOnlyLive, + smallSidebar, + showOnlyLive, }) => ( - - - Important Dates - - {importantDatesData.map((dateInfo, index) => ( - - ))} - + + + Important Dates + + {importantDatesData.map((dateInfo, index) => ( + + ))} + ) export const Workshops: React.FC = () => ( - - - Workshops - - - DDD runs a bunch of workshops to help you come up with some amazing talks to submit to our CFP and a great Bio to - go with it. - - - + + + Workshops + + + DDD runs a bunch of workshops to help you come up with some amazing talks to submit to our CFP and a great + Bio to go with it. + + + + ) export default ImportantDates diff --git a/website/app/routes/_layout.agenda.($year).tsx b/website/app/routes/_layout.agenda.($year).tsx index 96900b1..842f484 100644 --- a/website/app/routes/_layout.agenda.($year).tsx +++ b/website/app/routes/_layout.agenda.($year).tsx @@ -333,7 +333,7 @@ function SponsorSection({ sponsors, year }: { sponsors: YearSponsors | undefined return ( - + {year} Sponsors {renderSponsorCategory('Platinum Sponsors', sponsors.platinum, 'lg')}