diff --git a/src/App.tsx b/src/App.tsx index cbf2a882..fb8fb821 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -16,12 +16,10 @@ import DataPrivacy from "./pages/DataPrivacy"; import EventPage from "./pages/EventPage"; import FAQ from "./pages/FAQ"; import GuidelinesPage from "./pages/GuidelinesPage"; -import Home from "./pages/Home"; import Landing from "./pages/Landing"; import LegalNotice from "./pages/LegalNotice"; import Opportunities from "./pages/Opportunities"; import OpportunityForm from "./pages/OpportunityForm"; -import Subpage from "./pages/Subpage"; import VolunteerForm from "./pages/VolunteerForm"; import Agreement from "./pages/VPA"; import { consoleLogDeveloperContributionMessage } from "./utils"; @@ -55,93 +53,6 @@ function App() {
} /> - } /> - } /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } /> } /> - -
- ); -} diff --git a/src/components/CookieConsentBanner.tsx b/src/components/CookieConsentBanner.tsx deleted file mode 100644 index 5a4bdf02..00000000 --- a/src/components/CookieConsentBanner.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import CookieConsent from "react-cookie-consent"; -import { useTranslation } from "react-i18next"; - -function CookieConsentBanner() { - const { t } = useTranslation(); - - return ( - - {t("CookieConsentBanner.message")}{" "} - - {t("CookieConsentBanner.linkPrivacyPolicy")} - - - ); -} - -export default CookieConsentBanner; diff --git a/src/components/Event/Event831.tsx b/src/components/Event/Event831.tsx deleted file mode 100644 index 7697e403..00000000 --- a/src/components/Event/Event831.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import { useTranslation } from "react-i18next"; -import { getImageUrl } from "../../utils/index"; -import "./index.css"; - -const registrationHref = - "https://docs.google.com/forms/d/e/1FAIpQLSe5wRZ0U0wEb_QvRbfuGzM196jRIVflUBC_273wSk2Dl3Gcnw/viewform"; - -export default function Event831() { - const { t } = useTranslation(); - const sommerFestPicStyle = { - backgroundImage: `url(${getImageUrl("event831.webp")})`, - backgroundSize: "cover", - backgroundRepeat: "no-repeat", - width: "100%", - height: "unset", - }; - - return ( -
-

{t("event831.header")}

-
-
-
-

{t("event831.paras.para1")}

-

{t("event831.paras.para2")}

-

- {t("event831.paras.para3.morning.timeslot")} -

-

{t("event831.paras.para3.morning.title1")}

-

- {t("event831.paras.para3.day.timeslot")} -

-

{t("event831.paras.para3.day.title1")}

-

{t("event831.paras.para3.day.title2")}

-

{t("event831.paras.para3.day.title3")}

-

- {t("event831.paras.para3.afternoon.timeslot")} -

-

{t("event831.paras.para3.afternoon.title1")}

-

{t("event831.paras.para3.afternoon.title2")}

-

{t("event831.paras.para3.afternoon.title3")}

-

- {t("event831.paras.para3.all.timeslot")} -

-

{t("event831.paras.para3.all.title1")}

-

{t("event831.paras.para3.all.title2")}

- -

{t("event831.paras.para4")}

-
-
-
-

{t("event831.rsvp.invite")}

-

- {t("event831.rsvp.registration")} -

-
-

{t("event831.final.feelFree")}

- -

{t("event831.final.team")}

-
- ); -} diff --git a/src/components/Event/EventAccompanying.tsx b/src/components/Event/EventAccompanying.tsx deleted file mode 100644 index 08dd5d0a..00000000 --- a/src/components/Event/EventAccompanying.tsx +++ /dev/null @@ -1,93 +0,0 @@ -import { useTranslation } from "react-i18next"; - -import { getImageUrl } from "../../utils/index"; -import "./index.css"; - -const registrationHref = - "https://docs.google.com/forms/d/e/1FAIpQLSfGnZt8_sT299T8J70ivSjFzJxmD57b8ZBXLX_fZiPKB4fqvg/viewform?usp=dialog"; - -export default function EventAccompanying() { - const { t } = useTranslation(); - const volunteerPicStyle = { - backgroundImage: `url(${getImageUrl("assistance.webp")})`, - }; - - return ( -
-

{t("eventAccompanying.greeting.title")}

-
-
-
{t("eventAccompanying.greeting.invite1")}
-
- {t("eventAccompanying.greeting.host")} -
-
15.05.2025
-
17:00
-
Elsenstraße 87
-
E12435 Berlin
- -
-
-
- - {t("eventAccompanying.greeting.registration1")} - -
-
-
-
-
-
- {t("eventAccompanying.main.title1")} -
-

{t("eventAccompanying.main.para11")}

-

{t("eventAccompanying.main.para12")}

-

{t("eventAccompanying.main.para13")}

-

{t("eventAccompanying.main.para14")}

-
- {t("eventAccompanying.main.title2")} -
-
    -
  • {t("eventAccompanying.main.para21")}
  • -
  • {t("eventAccompanying.main.para22")}
  • -
  • {t("eventAccompanying.main.para23")}
  • -
  • {t("eventAccompanying.main.para24")}
  • -
  • {t("eventAccompanying.main.para25")}
  • -
  • {t("eventAccompanying.main.para26")}
  • -
-
-
- -
- - {t("eventAccompanying.greeting.registration2")} - -
- -
-
{t("eventAccompanying.outro.para1")}
-
{t("eventAccompanying.outro.para2")}
- -
- - -
-
- Elsenstr. 87 -
- 12435 Berlin -
- {t("eventAccompanying.outro.address.floor")} -
- {t("eventAccompanying.outro.address.lead")} -
- ); -} diff --git a/src/components/Event/EventCookingMeet.tsx b/src/components/Event/EventCookingMeet.tsx deleted file mode 100644 index 5f51ee6a..00000000 --- a/src/components/Event/EventCookingMeet.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import { useTranslation } from "react-i18next"; - -import { getImageUrl } from "../../utils/index"; -import "./index.css"; - -const smilingFace = "\u{1F60A}"; // modern Unicode code point -const winkingFace = "\u{1F609}"; - -const registrationHref = "https://forms.gle/eFmtwmLpw53P5A6M9 "; - -export default function EventCookingMeet() { - const { t } = useTranslation(); - const sonyaVolunteePicStyle = { - backgroundImage: `url(${getImageUrl("cooking-event.webp")})`, - backgroundSize: "cover", - backgroundRepeat: "no-repeat", - width: "100%", - height: "100%", - }; - - return ( -
-

Cooking Event

-
-
-
{`${t("eventCooking.greeting.invite")}${smilingFace})`}
-
{t("eventCooking.greeting.when")}
-
15.03.25
-
16:00-19:30
- -
-
-
- - {t("eventCooking.greeting.registration")} - -
-
-
-
-
-
{t("eventCooking.main.title")}
-

{t("eventCooking.main.para1")}

-

{`${t("eventCooking.main.para2")}${winkingFace})`}

-

{t("eventCooking.main.para3")}

-

{t("eventCooking.main.para4")}

-

{t("eventCooking.main.para5")}

-
-
- -

{t("eventCooking.outro.rsvp.text")}

-
- - {t("eventCooking.greeting.registration")} - -
- -
- - -
-
- Elsenstr. 87 -
- 12435 Berlin -
- {t("VolunTea.outro.address.floor")} -
- {t("VolunTea.outro.address.lead")} -
- ); -} diff --git a/src/components/Event/EventFeed.tsx b/src/components/Event/EventFeed.tsx deleted file mode 100644 index cd64e9e1..00000000 --- a/src/components/Event/EventFeed.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { useTranslation } from "react-i18next"; -import { EventComponentInfo, EventDataType } from "../../config/types"; - -interface Props { - eventData: { events: EventComponentInfo[] }; -} - -export default function EventFeed({ eventData }: Props) { - const { t } = useTranslation(); - const { events } = eventData; - - return ( -
- {events ? ( - events.map( - ({ component: EventComponent, title, eventData: eventDataProp }) => ( - - ), - ) - ) : ( -
{t("event.noEvents")}
- )} -
- ); -} diff --git a/src/components/Event/EventHolidayGift.tsx b/src/components/Event/EventHolidayGift.tsx deleted file mode 100644 index b3a05f5d..00000000 --- a/src/components/Event/EventHolidayGift.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import { useTranslation } from "react-i18next"; -import { getImageUrl } from "../../utils/index"; -import "./index.css"; - -const donationHref = - "https://www.betterplace.org/en/projects/143838-holiday-gifts-for-refugee-children-in-berlin"; -const registrationHref = "https://forms.gle/4PUF3bSiB1UzMSok7"; - -export default function EventHolidayGift() { - const { t } = useTranslation(); - const holidayGiftPicStyle = { - backgroundImage: `url(${getImageUrl("type-daycare.webp")})`, - backgroundSize: "cover", - backgroundRepeat: "no-repeat", - width: "100%", - height: "100%", - }; - - return ( -
-

{t("eventHolidayGift.header")}

-
-
-
-

{t("eventHolidayGift.paras.para1")}

-

{t("eventHolidayGift.paras.para2")}

-
-
-
-

- {t("eventHolidayGift.donate.money.invite")}{" "} - - {t("eventHolidayGift.donate.money.where")} - -

-

- {t("eventHolidayGift.donate.things.invite")} - {t("eventHolidayGift.donate.things.where")} -

-

- {t("eventHolidayGift.donate.wrapping.invite")}{" "} - - {t("eventHolidayGift.donate.wrapping.registration")} - -

-
-

{t("eventHolidayGift.final.feelFree")}

- -

{t("eventHolidayGift.final.team")}

-
- ); -} diff --git a/src/components/Event/EventVolunTeaMeet.tsx b/src/components/Event/EventVolunTeaMeet.tsx deleted file mode 100644 index 81058521..00000000 --- a/src/components/Event/EventVolunTeaMeet.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import { Lang } from "need4deed-sdk"; -import { useTranslation } from "react-i18next"; -import { useParams } from "react-router-dom"; - -import { getFirstThursdayOfMonth, getImageUrl } from "../../utils/index"; -import "./index.css"; - -const registrationHref = "https://forms.gle/hFJTszu4tCoeDRy4A"; - -export default function EventVolunTeeMeet() { - const { t } = useTranslation(); - const { lng } = useParams(); - const eventDate = getFirstThursdayOfMonth(); - const eventDateStr = eventDate - ? eventDate.toLocaleDateString(lng === Lang.EN ? "en-GB" : lng, { - year: "numeric", - month: "2-digit", - day: "2-digit", - }) - : t("VolunTea.expired"); - const sonyaVolunteePicStyle = { - backgroundImage: `url(${getImageUrl("sonya-voluntee.webp")})`, - backgroundSize: "cover", - backgroundRepeat: "no-repeat", - width: "100%", - height: "100%", - }; - - return ( -
-

VolunTea

-
-
-
{t("VolunTea.greeting.invite")}
-
{t("VolunTea.greeting.when")}
-
-
-
-
{t("VolunTea.main.title")}
-

{t("VolunTea.main.para1")}

-

{t("VolunTea.main.para2")}

-

{t("VolunTea.main.para3")}

-

{t("VolunTea.main.para4")}

-

{t("VolunTea.main.para5")}

-
-
-

- {t("VolunTea.outro.rsvp.text")}{" "} - - {t("VolunTea.outro.rsvp.link")} - -

- -
-
-
-

{t("weekdays.4")}

-
{eventDateStr}
-

17:00-18:00

-
-
-
- Elsenstr. 87 -
- 12435 Berlin -
- {t("VolunTea.outro.address.floor")} -
- {t("VolunTea.outro.address.lead")} -
- ); -} diff --git a/src/components/Event/EventWithKids.tsx b/src/components/Event/EventWithKids.tsx deleted file mode 100644 index 544a7fb5..00000000 --- a/src/components/Event/EventWithKids.tsx +++ /dev/null @@ -1,89 +0,0 @@ -import { useTranslation } from "react-i18next"; - -import { getImageUrl } from "../../utils/index"; -import "./index.css"; - -const registrationHref = - "https://docs.google.com/forms/d/e/1FAIpQLSclIb8buCR50wyjujxuENpWZWYTdbbBlhG6W_3b4GFZFL7u6w/viewform?usp=dialog"; - -export default function EventWidthKids() { - const { t } = useTranslation(); - const volunteerPicStyle = { - backgroundImage: `url(${getImageUrl("v_w_kids.webp")})`, - }; - - return ( -
-

{t("eventKids.greeting.title")}

-
-
-
{t("eventKids.greeting.invite1")}
-
{t("eventKids.greeting.invite2")}
-
- {t("eventKids.greeting.host")} -
-
03.04.2025
-
17:20
-
Elsenstraße 87
-
E12435 Berlin
- -
-
-
- - {t("eventKids.greeting.registration")} - -
-
-
-
-
-
- {t("eventKids.main.title")} -
-
    -
  • {t("eventKids.main.para1")}
  • -
  • {t("eventKids.main.para2")}
  • -
  • {t("eventKids.main.para3")}
  • -
  • {t("eventKids.main.para4")}
  • -
  • {t("eventKids.main.para5")}
  • -
  • {t("eventKids.main.para6")}
  • -
  • {t("eventKids.main.para7")}
  • -
-
-
- - {t("eventKids.outro.rsvp.text")} -
- - {t("eventKids.greeting.registration")} - -
- -
-
{t("eventKids.outro.para1")}
-
{t("eventKids.outro.para2")}
- -
- - -
-
- Elsenstr. 87 -
- 12435 Berlin -
- {t("eventKids.outro.address.floor")} -
- {t("eventKids.outro.address.lead")} -
- ); -} diff --git a/src/components/Event/Events.tsx b/src/components/Event/Events.tsx deleted file mode 100644 index c6ba5a61..00000000 --- a/src/components/Event/Events.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import React, { useState } from "react"; -import { useTranslation } from "react-i18next"; - -import { EventComponentInfo, EventDataType } from "../../config/types"; -import useEventComponents from "../../hooks/useEventComponents"; -import ScrollingHorizontalBar from "../core/ScrollingHorizontalBar"; - -export default function EventList() { - const [selectedComponentIdx, setSelectedComponentIdx] = useState(); - const { - eventComponents: eventStripItems, - isLoading, - isError, - } = useEventComponents(); - const { t } = useTranslation(); - - const handleListItemClick = (eventIdx: number) => { - setSelectedComponentIdx(eventIdx); - }; - - const renderSelectedComponent = () => { - if (!(selectedComponentIdx === undefined)) { - return React.createElement( - eventStripItems[selectedComponentIdx].component, - { - eventData: eventStripItems[selectedComponentIdx] - .eventData as EventDataType, - }, - ); - } - return
{t("event.click")}
; - }; - - if (isLoading) { - return

{t("event.loading")}

; - } - if (isError) { - return

{t("event.error")}

; - } - if (!eventStripItems || eventStripItems.length === 0) { - return

{t("event.empty")}

; - } - - return ( -
- - items={eventStripItems} - handleListItemClick={handleListItemClick} - /> - {renderSelectedComponent()} -
- ); -} diff --git a/src/components/Footer/Footer.css b/src/components/Footer/Footer.css deleted file mode 100644 index 2a33f21f..00000000 --- a/src/components/Footer/Footer.css +++ /dev/null @@ -1,51 +0,0 @@ -footer { - margin-top: var(--n4d-gap); - background-color: var(--n4d-neutral-100); - padding: 40px 0 60px; -} - -.footer-container { - display: flex; - justify-content: space-between; - margin-inline: auto; - width: var(--n4d-w); -} - -.footer-column { - font-family: - -apple-system, - "Helvetica Neue", - "Open Sans", - "Segoe UI", - BlinkMacSystemFont, - Cantarell, - Oxygen, - Roboto, - sans-serif system-ui, - Ubuntu; - font-size: var(--n4d-footer-f-sz); - text-decoration: none; - line-height: 2; - min-width: 15%; -} - -.footer-column h6 { - color: var(--n4d-neutral-900); - margin-bottom: 10px; -} - -.footer-column ul { - list-style-type: none; - padding: 0; -} - -.footer-column a { - color: var(--n4d-neutral-900); - text-decoration: none; - display: block; -} - -.footer-column ul, -.footer-column h6 { - direction: var(--n4d-lang-direction); -} diff --git a/src/components/Footer/Footer.tsx b/src/components/Footer/Footer.tsx deleted file mode 100644 index bfdbae70..00000000 --- a/src/components/Footer/Footer.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import { useTranslation } from "react-i18next"; -import { HashLink } from "react-router-hash-link"; - -import { Subpages } from "../../config/types"; -import CookieConsentBanner from "../CookieConsentBanner"; -import Sponsors from "../Sponsors/Sponsors"; -import "./Footer.css"; - -interface Props { - showSponsors?: boolean; -} - -function Footer({ showSponsors = true }: Props) { - const { t, i18n } = useTranslation(); - const email = "info@need4deed.org"; - - return ( - <> - {showSponsors && } - - - - ); -} - -export default Footer; diff --git a/src/components/Header/Header.css b/src/components/Header/Header.css deleted file mode 100644 index 979055ac..00000000 --- a/src/components/Header/Header.css +++ /dev/null @@ -1,74 +0,0 @@ -.navbar { - background-color: rgba(50, 50, 50, 0.5); - direction: var(--n4d-lang-direction); -} - -.container-fluid { - padding: 0 !important; - width: var(--n4d-w); - height: var(--n4d-navbar-h); -} - -.dropdown-toggle { - margin-inline-end: auto; -} - -.nav-link { - --bs-navbar-active-color: white; - color: white; - border-radius: 1rem; -} - -.nav-link:hover { - color: white; - background: rgba(20, 20, 20, 0.2); -} - -.nav-link-secondary { - color: var(--n4d-neutral-200); - background: var(--n4d-secondary); - text-align: center; -} - -.nav-link-secondary:hover { - color: var(--n4d-neutral-200); - background: var(--n4d-secondary-darker); -} - -.navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='white' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important; -} - -.home-icon { - display: inline-block; - background-image: url("/images/N4D-4-white.svg"); - background-size: contain; - background-repeat: no-repeat; - width: 2.2em; - height: 2.2em; -} - -.navbar-toggler { - margin-inline-start: auto; -} - -.navbar-nav { - margin-inline-start: auto; -} - -.dropdown-menu-dark { - --bs-dropdown-bg: rgba(0, 0, 0, 0.5); - --bs-dropdown-link-color: #fff; - --bs-dropdown-spacer: 1.33em; - --bs-dropdown-link-hover-color: #fff; - --bs-dropdown-link-hover-bg: rgba(0, 0, 0, 0.55); -} - -@media (max-width: 768px) { - .navbar-nav li { - padding-inline-start: calc(100% - 16rem); - } - .dropdown-menu-dark { - --bs-dropdown-spacer: 0; - } -} diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx deleted file mode 100644 index 0b5c7eae..00000000 --- a/src/components/Header/Header.tsx +++ /dev/null @@ -1,124 +0,0 @@ -import { Lang } from "need4deed-sdk"; -import { useContext, useMemo, useState } from "react"; -import { useTranslation } from "react-i18next"; -import { useNavigate, useSearchParams } from "react-router-dom"; - -import { Subpages } from "../../config/types"; -import AppContainerContext from "../../contexts/AppContainerContext"; -import useEvents from "../../hooks/api/useEvents"; -import { getBaseUrl, setLangDirection } from "../../utils"; -import "./Header.css"; - -interface Props { - showEvent: boolean; -} - -function Header({ showEvent }: Props) { - const { i18n, t } = useTranslation(); - const [isOpen, setIsOpen] = useState(false); - const navigate = useNavigate(); - const containerRef = useContext(AppContainerContext); - const [queryParams] = useSearchParams(); - const [events] = useEvents(i18n.language as Lang); - - const eventActive = useMemo( - () => events?.find((event) => event.active), - [events], - ); - - const toggleMenu = () => { - setIsOpen((prev) => !prev); - }; - - const handleLanguageChange = (lng: Lang) => { - setLangDirection(containerRef, lng as Lang); - navigate( - `${getBaseUrl(window.location.href)}/${lng}${queryParams.size ? `/?${queryParams}` : ""}`, - ); - }; - - return ( - - ); -} - -export default Header; diff --git a/src/components/IFrame/index.css b/src/components/IFrame/index.css deleted file mode 100644 index 17f03b41..00000000 --- a/src/components/IFrame/index.css +++ /dev/null @@ -1,4 +0,0 @@ -.iframe-container iframe { - width: var(--n4d-w); - height: clamp(25rem, 50vh, 50rem); -} diff --git a/src/components/IFrame/index.tsx b/src/components/IFrame/index.tsx deleted file mode 100644 index 9b4a1318..00000000 --- a/src/components/IFrame/index.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import "./index.css"; - -interface Prop { - wrappingClassName?: string; - title?: string; - src: string; -} - -export default function IFrame({ - wrappingClassName = "wrapper", - title, - src, -}: Prop) { - return ( -
-
- {title &&

{title}

} -