import React from "react"; import Image from "next/image"; import styled from "styled-components"; import rehypeRaw from "rehype-raw"; import rehypeSanitize from "rehype-sanitize"; import colors from "@theme/colors"; import Event from "@models/Event"; import { Button, Link, TextSection, ChangeLanguageButton, } from "@components/index"; import noop from "@utils/noop"; import MarkdownStyles from "@views/common/MarkdownStyles"; import LoadingView from "@views/common/LoadingView"; import { useTranslation } from "../../i18n"; interface EventPageViewProps { event?: Event; } const StyledTextSection = styled(TextSection)` align-items: center; & > h1 { color: ${colors.darkBlue}; p { color: ${colors.orange1}; } } & > div { margin: auto; & > p { font-size: 0.9rem; font-weight: bold; line-height: 0.4rem; } } `; const SignupButtons = styled.div` display: flex; flex-flow: row wrap; justify-content: center; `; const Content = styled(MarkdownStyles)` margin-top: 1.5rem; `; const LngButton = styled(ChangeLanguageButton)` align-self: flex-end; margin-right: 1rem; `; const EventPageView: React.FC = ({ event }) => { const { i18n, t } = useTranslation(); if (!event) return ; const isFi = i18n.language === "fi"; const { title, description, content, location, startDate, endDate, } = { title: isFi ? event.title_fi : event.title_en, description: isFi ? event.description_fi : event.description_en, content: isFi ? event.content_fi : event.content_en, location: isFi ? event.location_fi : event.location_en, startDate: new Date(event.start_time).toLocaleString(isFi ? "fi-FI" : "en-GB"), endDate: new Date(event.end_time).toLocaleString(isFi ? "fi-FI" : "en-GB"), }; return ( <>

{title}

{description}

{title}

{content}

{`${t("Paikka")}: ${location}`}

{/* We may have multiple signup forms. Generate own Button for each one */} {event.signupForm .sort((a, b) => (isFi ? a.title_fi.localeCompare(b.title_fi) : a.title_en.localeCompare(b.title_en))) .map((sf) => ( ))}
); }; export default EventPageView;