Skip to content
Snippets Groups Projects
Commit 801ef4b8 authored by xaralis's avatar xaralis
Browse files

feat: fix registration for journalists, improve program

parent 079d172c
No related branches found
No related tags found
No related merge requests found
Pipeline #6123 passed
......@@ -62,9 +62,17 @@ function AppHeaderVenueInfo() {
isOpen={mobileNavOpen}
onClose={() => setMobnileNavOpen(false)}
/>
<div className="flex justify-center space-x-4 md:space-x-0 md:block md:text-right md:ml-auto head-alt-xs md:head-alt-base">
<h2>{process.env.REACT_APP_CF_EVENT_DATE}</h2>
<h2>{process.env.REACT_APP_CF_EVENT_CITY}</h2>
<h2>{process.env.REACT_APP_CF_EVENT_VENUE}</h2>
</div>
{/* Mobile nav trigger */}
<div
className={classNames({ "block md:hidden": !isRoot, hidden: isRoot })}
className={classNames({
"mt-4 block md:hidden": !isRoot,
hidden: isRoot,
})}
>
<button
className="head-alt-base"
......@@ -73,15 +81,6 @@ function AppHeaderVenueInfo() {
Menu
</button>
</div>
<div
className={classNames("md:text-right ml-auto head-alt-base", {
"hidden md:block": !isRoot,
})}
>
<h2>{process.env.REACT_APP_CF_EVENT_DATE}</h2>
<h2>{process.env.REACT_APP_CF_EVENT_CITY}</h2>
<h2>{process.env.REACT_APP_CF_EVENT_VENUE}</h2>
</div>
</>
);
}
......@@ -142,7 +141,7 @@ function BaseApp() {
<div className="container container--default my-4 md:my-16 space-y-8 md:space-y-16">
<header className="md:flex items-center text-center md:text-left">
<h1 className="head-alt-xl cf-app-title">
<h1 className="head-alt-lg md:head-alt-xl cf-app-title">
<Link to="/" className="no-underline hover:no-underline">
{basics.appTitle}
</Link>
......
......@@ -11,6 +11,9 @@ const RegistrationForm = ({
showOrganization,
showQuestions,
showLunch,
showPrintouts,
showParties,
showDonation,
questions,
onSubmit,
className,
......@@ -170,6 +173,7 @@ const RegistrationForm = ({
</div>
)}
{showParties && (
<div className="form-field col-span-4">
<label className="form-field__label">Parties</label>
<div className="form-field__wrapper">
......@@ -191,7 +195,9 @@ const RegistrationForm = ({
</div>
</div>
</div>
)}
{showPrintouts && (
<div className="form-field col-span-4">
<label className="form-field__label" htmlFor="field">
Tištěné dokumenty (30 )
......@@ -222,6 +228,7 @@ const RegistrationForm = ({
</div>
</div>
</div>
)}
{showQuestions &&
questions.map((question) => (
......@@ -241,6 +248,7 @@ const RegistrationForm = ({
</div>
))}
{showDonation && (
<div
className={classNames("form-field col-span-4 max-w-xs", {
"form-field--error": !!errors.product__58,
......@@ -273,6 +281,7 @@ const RegistrationForm = ({
</div>
)}
</div>
)}
<Button
className="text-lg max-w-full col-span-2"
......
......@@ -408,11 +408,22 @@ export const accommodation = [
},
];
export const program = [
export const programGeneralSettings = {
published: false,
};
export const program = {
negotiation: {
isUnderway: true,
forumLink: "https://forum.pirati.cz/viewtopic.php?f=477&t=58315",
},
published: false,
days: [
{
title: "sobota 8. 1. 2021",
hourStart: 10,
hourEnd: 19,
// The smallest grid resolution in minutes. Take this into consideration when specifying time values.
resolution: 5,
tracks: [
{
......@@ -432,49 +443,120 @@ export const program = [
],
slots: [
{
time: "1000",
name: "10:00",
time: "10:00",
sessions: [
{
track: "main",
slotTimeStart: "1000",
slotTimeEnd: "1100",
timeStart: "10:00",
timeEnd: "11:00",
title: "Slavnostní zaháje",
timeEnd: "10:30",
title: "Zahájení zasedá",
},
{
track: "voting",
slotTimeStart: "1045",
slotTimeEnd: "1050",
timeStart: "10:45",
timeEnd: "10:50",
title: "Volba 1",
track: "main",
timeStart: "10:30",
timeEnd: "11:20",
title: "Volba předsedy strany",
},
],
},
{
time: "1100",
name: "11:00",
time: "11:00",
sessions: [
{
track: "main",
slotTimeStart: "1100",
slotTimeEnd: "1130",
timeStart: "11:00",
timeEnd: "11:30",
timeStart: "11:20",
timeEnd: "12:30",
title: "Volba místopředsedů",
},
{
track: "voting",
timeStart: "11:15",
timeEnd: "12:15",
title: "Volba předsedy, 1. kolo",
},
],
},
{
time: "12:00",
sessions: [
{
track: "main",
slotTimeStart: "1130",
slotTimeEnd: "1150",
timeStart: "11:30",
timeEnd: "11:45",
title: "Volba předsedy strany",
timeStart: "12:30",
timeEnd: "12:35",
title: "Vyhlášení výsledku 1. kola volby předsedy",
},
{
track: "voting",
timeStart: "12:30",
timeEnd: "13:15",
title: "Volba předsedy, případné 2. kolo",
},
{
track: "main",
timeStart: "12:35",
timeEnd: "13:30",
title: "Volba místopředsedů – pokračování",
},
],
},
{
time: "13:00",
sessions: [
{
track: "main",
timeStart: "13:30",
timeEnd: "14:30",
title: "Pauza na oběd",
},
{
track: "voting",
timeStart: "13:30",
timeEnd: "14:30",
title: "Volba místopředsedů, 1. kolo",
},
],
},
{
time: "14:00",
sessions: [
{
track: "main",
timeStart: "14:30",
timeEnd: "14:40",
title: "Představení výroční zprávy strany",
},
{
track: "voting",
timeStart: "14:45",
timeEnd: "15:30",
title: "Volba 1. místopředsedy nebo Volba místopředsedů, 2. kolo",
},
{
track: "main",
timeStart: "14:40",
timeEnd: "15:05",
title: "Vyhlášení výsledku 1. kola volby místopředsedů",
},
],
},
];
{
time: "15:00",
sessions: [
{
track: "main",
timeStart: "15:05",
timeEnd: "15:55",
title: "Představení lídrů krajských kandidátek",
},
{
track: "main",
timeStart: "15:55",
timeEnd: "16:20",
title: "Představení kandidátů do Senátu",
},
],
},
],
},
],
};
......@@ -5,6 +5,8 @@ import styled from "styled-components";
import PageTitle from "components/PageTitle";
import { basics, program } from "config";
// @credits: https://css-tricks.com/building-a-conference-schedule-with-css-grid/
const buildTimeSlots = (hourStart, hourEnd, resolution) => {
const timeSlots = [];
......@@ -21,7 +23,7 @@ const buildTimeSlots = (hourStart, hourEnd, resolution) => {
}
});
return timeSlots.map((slot) => `[time-${slot}] auto`).join(" ");
return timeSlots.map((slot) => `[time-${slot}] 0.25fr`).join(" ");
};
const buildTracks = (trackList) => {
......@@ -39,7 +41,7 @@ const buildTracks = (trackList) => {
const Schedule = styled.div`
@media screen and (min-width: 992px) {
display: grid;
grid-gap: 1rem;
grid-column-gap: 1rem;
grid-template-rows:
[tracks] auto
${(props) =>
......@@ -66,7 +68,6 @@ const Schedule = styled.div`
top: 0;
left: 0;
background-color: var(--color-${track.colorBg});
opacity: 0.8;
z-index: -1;
}
`
......@@ -75,9 +76,12 @@ const Schedule = styled.div`
`;
const TimeSlot = styled.h2`
padding: 1rem 0;
grid-row: time-${(props) => props.time};
grid-column: times;
@media screen and (max-width: 991px) {
padding: 1rem 0;
}
`;
const TrackSlot = styled.div`
......@@ -89,7 +93,7 @@ const TrackSlot = styled.div`
@media screen and (min-width: 992px) {
& {
display: block;
padding: 0.5rem 1rem;
padding: 0.5rem;
position: sticky;
top: 0;
z-index: 1000;
......@@ -103,12 +107,13 @@ const Session = styled.div`
grid-column: track-${(props) => props.track};
grid-row: time-${(props) => props.timeStart} / time-${(props) =>
props.timeEnd};
padding: 0.75rem 1rem 1rem;
padding: 0.5rem;
margin-bottom: 0.5rem;
min-height: 4em;
@supports (display: grid) {
@media screen and (min-width: 992px) {
margin-bottom: 0;
margin-bottom: 1rem;
}
}
`;
......@@ -122,12 +127,13 @@ const Program = () => {
<meta property="og:title" content="Mapa" />
</Helmet>
{program.negotiation.isUnderway && (
<div className="content-block">
<p>
O pořadu zasedání se v tuto chvíli stále jedná. Více informací získáte
na{" "}
O pořadu zasedání se v tuto chvíli stále jedná. Více informací
získáte na{" "}
<a
href="https://forum.pirati.cz/viewtopic.php?f=477&t=58315"
href={program.negotiation.forumLink}
target="_blank"
rel="noreferrer noopener"
>
......@@ -136,11 +142,12 @@ const Program = () => {
.
</p>
</div>
)}
{/* TODO: uncomment once program is ready */}
{/* {program.map((programDay) => (
<React.Fragment key={programDay.title}>
<h2 className="head-heavy-sm">{programDay.title}</h2>
{program.published &&
program.days.map((programDay) => (
<div key={programDay.title}>
<h2 className="head-alt-md md:mb-4">{programDay.title}</h2>
<Schedule
hourStart={programDay.hourStart}
......@@ -155,13 +162,16 @@ const Program = () => {
className="leading-normal"
>
<h3 className="head-alt-sm">{track.name}</h3>
<span className="text-base">{track.venue}</span>
<span className="text-base opacity-50">{track.venue}</span>
</TrackSlot>
))}
{programDay.slots.map((slot, idx) => (
<React.Fragment key={idx}>
<TimeSlot time={slot.time} className="head-alt-xs">
{slot.name}
<TimeSlot
time={slot.time.replace(":", "")}
className="head-alt-xs"
>
{slot.time}
</TimeSlot>
{slot.sessions.map((session) => (
......@@ -170,23 +180,25 @@ const Program = () => {
session.track,
session.timeStart,
session.timeEnd,
].join(":")}
className={`track-${session.track} leading-normal elevation-8`}
].join("__")}
className={`track-${session.track} leading-tight md:elevation-8`}
track={session.track}
timeStart={session.slotTimeStart}
timeEnd={session.slotTimeEnd}
timeStart={session.timeStart.replace(":", "")}
timeEnd={session.timeEnd.replace(":", "")}
>
<strong className="text-xs opacity-75">
{session.timeStart} - {session.timeEnd}
{session.timeEnd
? `${session.timeStart} - ${session.timeEnd}`
: session.timeStart}
</strong>
<h3 className="head-heavy-2xs">{session.title}</h3>
<h3 className="text-sm font-bold">{session.title}</h3>
</Session>
))}
</React.Fragment>
))}
</Schedule>
</React.Fragment>
))} */}
</div>
))}
</article>
);
};
......
......@@ -232,6 +232,9 @@ const Registration = () => {
showOrganization={audience !== "member"}
showQuestions={audience !== "journalist"}
showLunch={audience !== "journalist"}
showParties={audience !== "journalist"}
showPrintouts={audience !== "journalist"}
showDonation={audience !== "journalist"}
questions={questions}
onSubmit={setFormData}
className={classNames({ hidden: !!formData })}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment