diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 92b2f622e..a43d6c3b9 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest if: inputs.component == 'admin' env: - VITE_WEBSITE_BASE_URL: ${{ (inputs.project == 'social-income-prod' && 'https://prod.socialincome.org') || 'https://staging.socialincome.org' }} + VITE_WEBSITE_BASE_URL: ${{ (inputs.project == 'social-income-prod' && 'https://socialincome.org') || 'https://staging.socialincome.org' }} VITE_ADMIN_ALGOLIA_APPLICATION_ID: ${{ secrets.REACT_APP_ADMIN_ALGOLIA_APPLICATION_ID }} VITE_ADMIN_ALGOLIA_SEARCH_KEY: ${{ secrets.REACT_APP_ADMIN_ALGOLIA_SEARCH_KEY }} steps: diff --git a/recipients_app/.vscode/launch.json b/recipients_app/.vscode/launch.json index 7c32b0521..9f2e31bbf 100644 --- a/recipients_app/.vscode/launch.json +++ b/recipients_app/.vscode/launch.json @@ -34,7 +34,7 @@ "program": "lib/main.dart", "toolArgs": [ "--dart-define", - "SURVEY_BASE_URL=prod.socialincome.org", + "SURVEY_BASE_URL=socialincome.org", ] } ] diff --git a/shared/locales/de/website-about-us.json b/shared/locales/de/website-about-us.json index 11bec3226..8fa646895 100644 --- a/shared/locales/de/website-about-us.json +++ b/shared/locales/de/website-about-us.json @@ -5,13 +5,24 @@ "landing-page": { "title": [ { - "text": "Etwas bewegen, nicht nur darüber sprechen. " + "text": "Wir hatten die Möglichkeit, nichts zu tun. " }, { - "text": "Dies war der Anfang von Social Income.", + "text": "Wir haben uns dagegen entschieden.", "color": "secondary" } - ] + ], + "subtitle": "Die Verbesserung der Lebensbedingungen von Menschen in Armut sehen wir als unsere Verantwortung. Aus dieser Überzeugung heraus wurde Social Income ins Leben gerufen.", + "contact": "Kontakt", + "contact-title": "Schreib uns an", + "contact-email": "hello@socialincome.org", + "registration": "NGO Registrierung", + "registration-title": "Rechtsstatus", + "registration-foundation": "Social Income ist eine gemeinnützige Organisation, die 2019 nach schweizerischem Recht gegründet wurde und steuerbefreit ist.", + "registration-uid": "UID: ", + "registration-uid-nr": "CHE-289.611.695", + "registration-duns": "DUNS: ", + "registration-duns-nr": "48-045-6376" }, "our-mission": { "header": "Unsere Mission", diff --git a/shared/locales/de/website-our-work.json b/shared/locales/de/website-our-work.json index 33468c58d..bbe451c10 100644 --- a/shared/locales/de/website-our-work.json +++ b/shared/locales/de/website-our-work.json @@ -6,9 +6,10 @@ "twitter-image": "/assets/metadata/twitter/our-work-de.jpg" }, "our-work": { - "title-1": "Wir bauen das Fundament für echte Veränderung. ", - "title-2": "Zeitgemäss. Digital. Gemeinsam.", - "subtitle": "Social Income ist ein neuer Weg, um die Armut im globalen Süden zu bekämpfen. Einfach, effizient und digital.", + "title-1": "Veränderung von Mensch zu Mensch. ", + "title-2": "Von Telefon zu Telefon.", + "subtitle": "Social Income ist ein neuer Weg, um die Armut im Globalen Süden zu bekämpfen. Digital, effizent und zeitgemäss. ", + "watch": "Animationsvideo", "vimeo-video-id": "488184818" }, "how-it-works": { diff --git a/shared/locales/en/website-about-us.json b/shared/locales/en/website-about-us.json index f6326de3b..c8cf9b116 100644 --- a/shared/locales/en/website-about-us.json +++ b/shared/locales/en/website-about-us.json @@ -5,13 +5,24 @@ "landing-page": { "title": [ { - "text": "We wanted to act. We found a way to do it. " + "text": "We had the option to do nothing. " }, { - "text": "Social Income was born.", + "text": "We decided against it.", "color": "secondary" } - ] + ], + "subtitle": "We believe that improving the lives of people in need is not just a possibility but a responsibility. That's how Social Income was born.", + "contact": "Contact Us", + "contact-title": "Get in touch", + "contact-email": "hello@socialincome.org", + "registration": "NGO Registration", + "registration-title": "Legal status", + "registration-foundation": "Social Income is a non-profit organization founded under Swiss law in 2019 with tax exempt status.", + "registration-uid": "UID: ", + "registration-uid-nr": "CHE-289.611.695", + "registration-duns": "DUNS: ", + "registration-duns-nr": "48-045-6376" }, "our-mission": { "header": "Our Mission", @@ -54,7 +65,7 @@ "header": "Flow of Funds", "title": [ { - "text": "From Everywhere to the Global South " + "text": "From Everywhere to the Global South. " }, { "text": "Safe, Fast, and Direct.", diff --git a/shared/locales/en/website-our-work.json b/shared/locales/en/website-our-work.json index 8cd748757..db9df4175 100644 --- a/shared/locales/en/website-our-work.json +++ b/shared/locales/en/website-our-work.json @@ -6,9 +6,10 @@ "twitter-image": "/assets/metadata/twitter/our-work-en.jpg" }, "our-work": { - "title-1": "Our work is made possible by you. Make a ", - "title-2": "change with us.", + "title-1": "Change. From phone to phone. ", + "title-2": "It's in your hands.", "subtitle": "Social Income is a new way to fight poverty in the Global South, creating real change, from human to human.", + "watch": "Watch Animation Video", "vimeo-video-id": "433937157" }, "how-it-works": { diff --git a/ui/src/components/badge.tsx b/ui/src/components/badge.tsx index 70f506f6c..c6aa2fdea 100644 --- a/ui/src/components/badge.tsx +++ b/ui/src/components/badge.tsx @@ -11,7 +11,9 @@ const badgeVariants = cva( default: 'border-transparent bg-primary text-primary-foreground hover:bg-primary-muted', secondary: 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary-muted', destructive: 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive-muted', - outline: 'text-foreground', + muted: 'border-muted-foreground text-muted-foreground hover:bg-muted-foreground hover:text-muted', + outline: + 'text-primary border-primary hover:bg-primary-muted hover:text-primary-foreground hover:border-primary-muted', }, }, defaultVariants: { diff --git a/ui/src/index.ts b/ui/src/index.ts index c45f3a45e..8f1c81932 100644 --- a/ui/src/index.ts +++ b/ui/src/index.ts @@ -16,6 +16,7 @@ export * from './components/input'; export * from './components/label'; export * from './components/menubar'; export * from './components/navigation-menu'; +export * from './components/popover'; export * from './components/radio-group'; export * from './components/select'; export * from './components/table'; diff --git a/website/src/app/[lang]/[region]/(website)/about-us/(sections)/contact.tsx b/website/src/app/[lang]/[region]/(website)/about-us/(sections)/contact.tsx deleted file mode 100644 index fe8d45354..000000000 --- a/website/src/app/[lang]/[region]/(website)/about-us/(sections)/contact.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import { WebsiteLanguage } from '@/i18n'; -import { EnvelopeIcon } from '@heroicons/react/24/solid'; -import { SiFacebook, SiGithub, SiInstagram, SiLinkedin, SiTwitter } from '@icons-pack/react-simple-icons'; -import { IconType } from '@icons-pack/react-simple-icons/types'; -import { Translator } from '@socialincome/shared/src/utils/i18n'; -import { BaseContainer, Button, Card, CardContent, CardHeader, Typography } from '@socialincome/ui'; -import { FontColor } from '@socialincome/ui/src/interfaces/color'; -import Link from 'next/link'; - -export function SocialMediaButton({ Icon, title, href }: { Icon: IconType; href: string; title: string }) { - return ( - - - - ); -} - -export async function Contact({ lang }: { lang: WebsiteLanguage }) { - const translator = await Translator.getInstance({ - language: lang, - namespaces: ['website-about-us'], - }); - - return ( - - - {translator.t('contact.header')} - -

- {translator.t<{ text: string; color?: FontColor }[]>('contact.title').map((title, index) => ( - - {title.text} - - ))} -

-
-
- {translator.t('contact.paragraph')} -
- - {translator.t('contact.legal-status')} - - {translator.t('contact.legal-status-paragraphs').map((text, index) => ( - - {text} - - ))} -
-
- - - - {translator.t('contact.find-us')} - - - -
- - - - - - -
-
-
-
-
- ); -} diff --git a/website/src/app/[lang]/[region]/(website)/about-us/(sections)/landing-page.tsx b/website/src/app/[lang]/[region]/(website)/about-us/(sections)/landing-page.tsx index b6ec1313f..8561f5585 100644 --- a/website/src/app/[lang]/[region]/(website)/about-us/(sections)/landing-page.tsx +++ b/website/src/app/[lang]/[region]/(website)/about-us/(sections)/landing-page.tsx @@ -1,8 +1,9 @@ import { WebsiteLanguage } from '@/i18n'; import { Translator } from '@socialincome/shared/src/utils/i18n'; -import { BaseContainer, Typography } from '@socialincome/ui'; +import { Badge, BaseContainer, Button, Popover, PopoverContent, PopoverTrigger, Typography } from '@socialincome/ui'; import { FontColor } from '@socialincome/ui/src/interfaces/color'; import Image from 'next/image'; +import Link from 'next/link'; import changeGif from '../(assets)/change.gif'; export default async function LandingPage({ lang }: { lang: WebsiteLanguage }) { @@ -13,13 +14,88 @@ export default async function LandingPage({ lang }: { lang: WebsiteLanguage }) { return ( -

+

{translator.t<{ text: string; color?: FontColor }[]>('landing-page.title').map((title, index) => ( - + {title.text} ))} -

+ + {translator.t('landing-page.subtitle')} + +
+
+ + + + + {translator.t('landing-page.contact')} + + + + +
+ + {translator.t('landing-page.contact-title')} + + + + +
+
+
+
+
+ + + + + {translator.t('landing-page.registration')} + + + + +
+ + {translator.t('landing-page.registration-title')} + + + {translator.t('landing-page.registration-foundation')} + +
+ + {translator.t('landing-page.registration-uid')} + + + + +
+
+ + {translator.t('landing-page.registration-duns')} + + + + +
+
+
+
+
+
+
- ); } diff --git a/website/src/app/[lang]/[region]/(website)/csr/page.tsx b/website/src/app/[lang]/[region]/(website)/csr/page.tsx index e3d5b5d8c..3c399531f 100644 --- a/website/src/app/[lang]/[region]/(website)/csr/page.tsx +++ b/website/src/app/[lang]/[region]/(website)/csr/page.tsx @@ -1,12 +1,22 @@ import { DefaultPageProps } from '@/app/[lang]/[region]'; -import { SocialMediaButton } from '@/app/[lang]/[region]/(website)/about-us/(sections)/contact'; import { SiFigma, SiGithub } from '@icons-pack/react-simple-icons'; +import { IconType } from '@icons-pack/react-simple-icons/types'; import { Translator } from '@socialincome/shared/src/utils/i18n'; -import { BaseContainer, Typography } from '@socialincome/ui'; +import { BaseContainer, Button, Typography } from '@socialincome/ui'; import Image from 'next/image'; import Link from 'next/link'; import anthonyImage from './anthony.jpg'; +function SocialMediaButton({ Icon, title, href }: { Icon: IconType; href: string; title: string }) { + return ( + + + + ); +} + export default async function Page({ params }: DefaultPageProps) { const translator = await Translator.getInstance({ language: params.lang, diff --git a/website/src/app/[lang]/[region]/(website)/our-work/(sections)/our-work.tsx b/website/src/app/[lang]/[region]/(website)/our-work/(sections)/our-work.tsx index 62b2b8e91..b01038550 100644 --- a/website/src/app/[lang]/[region]/(website)/our-work/(sections)/our-work.tsx +++ b/website/src/app/[lang]/[region]/(website)/our-work/(sections)/our-work.tsx @@ -1,7 +1,8 @@ import { DefaultPageProps } from '@/app/[lang]/[region]'; import { VimeoVideo } from '@/components/vimeo-video'; +import { PlayIcon } from '@heroicons/react/24/solid'; import { Translator } from '@socialincome/shared/src/utils/i18n'; -import { BaseContainer, Dialog, DialogContent, DialogTrigger, Typography } from '@socialincome/ui'; +import { Badge, BaseContainer, Dialog, DialogContent, DialogTrigger, Typography } from '@socialincome/ui'; import Image from 'next/image'; import phonesGif from '../(assets)/phones-1.gif'; @@ -12,31 +13,39 @@ export async function OurWork({ params }: DefaultPageProps) { }); return ( - - - - Change animation -
-

- - {translator?.t('our-work.title-1')} - - - {translator?.t('our-work.title-2')} - -

- {translator.t('our-work.subtitle')} -
-
- - - -
+ +
+ + {translator?.t('our-work.title-1')} + + + {translator?.t('our-work.title-2')} + + + {translator.t('our-work.subtitle')} + +
+ + + + + + {translator.t('our-work.watch')} + + + + + + + +
+
+ Change animation
); }