From 3808b61edfbdf2eceb3eb776f6b0455f21808cd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luka=20Zakraj=C5=A1ek?= Date: Tue, 25 Jun 2024 12:08:01 +0200 Subject: [PATCH] Add F-Droid badge --- vault-web/public/config.json | 3 +- vault-web/src/assets/images/apps/f-droid.png | Bin 0 -> 3772 bytes .../src/assets/images/apps/f-droid@2x.png | Bin 0 -> 7469 bytes vault-web/src/components/intro/IntroModal.tsx | 42 +++++++++++++++--- vault-web/src/config.ts | 1 + vault-web/src/pages/LandingPageOfficial.tsx | 42 +++++++++++++++--- vault-web/src/pages/MobilePage.tsx | 31 ++++++++++--- 7 files changed, 99 insertions(+), 20 deletions(-) create mode 100644 vault-web/src/assets/images/apps/f-droid.png create mode 100644 vault-web/src/assets/images/apps/f-droid@2x.png diff --git a/vault-web/public/config.json b/vault-web/public/config.json index 0c616c27..6d0289f6 100644 --- a/vault-web/public/config.json +++ b/vault-web/public/config.json @@ -3,5 +3,6 @@ "oauth2ClientId": "7ZEK2BNCEVYEJIZC5OR3TR6PQDUJ4NP3", "oauth2ClientSecret": "VWTMENEWUYWH6G523CEV5CWOCHH7FMECW36PPQENOASYYZOQJOSGQXSR2Y62N3HB", "appStoreUrl": "https://apps.apple.com/app/koofr-vault/id6468869124", - "googlePlayUrl": "https://play.google.com/store/apps/details?id=net.koofr.vault" + "googlePlayUrl": "https://play.google.com/store/apps/details?id=net.koofr.vault", + "fDroidUrl": "https://f-droid.org/en/packages/net.koofr.vault/" } \ No newline at end of file diff --git a/vault-web/src/assets/images/apps/f-droid.png b/vault-web/src/assets/images/apps/f-droid.png new file mode 100644 index 0000000000000000000000000000000000000000..60ffc6c943ec5dac416ea07a6860a71a18c8fbc7 GIT binary patch literal 3772 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 {

{config.appStoreUrl !== undefined || - config.googlePlayUrl !== undefined ? ( + config.googlePlayUrl !== undefined || + config.fDroidUrl !== undefined ? (
{ ) : null} {config.appStoreUrl !== undefined ? ( - + { /> ) : null} + + {config.fDroidUrl !== undefined ? ( + + + + ) : null}
) : null} diff --git a/vault-web/src/config.ts b/vault-web/src/config.ts index 41eaa7e4..89ef5e47 100644 --- a/vault-web/src/config.ts +++ b/vault-web/src/config.ts @@ -6,6 +6,7 @@ export interface Config { oauth2ClientSecret: string; appStoreUrl?: string; googlePlayUrl?: string; + fDroidUrl?: string; } export async function loadConfig(): Promise { diff --git a/vault-web/src/pages/LandingPageOfficial.tsx b/vault-web/src/pages/LandingPageOfficial.tsx index 425305d0..29d359bb 100644 --- a/vault-web/src/pages/LandingPageOfficial.tsx +++ b/vault-web/src/pages/LandingPageOfficial.tsx @@ -3,14 +3,16 @@ import { css, cx } from '@emotion/css'; import { memo } from 'react'; import Typewriter from 'typewriter-effect'; +import appStoreImage from '../assets/images/apps/app-store.png'; +import appStore2xImage from '../assets/images/apps/app-store@2x.png'; +import fDroidImage from '../assets/images/apps/f-droid.png'; +import fDroid2xImage from '../assets/images/apps/f-droid@2x.png'; +import googlePlayImage from '../assets/images/apps/google-play.png'; +import googlePlay2xImage from '../assets/images/apps/google-play@2x.png'; import arrowDownImage from '../assets/images/landing/arrow-down.png'; import arrowDown2xImage from '../assets/images/landing/arrow-down@2x.png'; import arrowRightImage from '../assets/images/landing/arrow-right.png'; import arrowRight2xImage from '../assets/images/landing/arrow-right@2x.png'; -import googlePlayImage from '../assets/images/apps/google-play.png'; -import googlePlay2xImage from '../assets/images/apps/google-play@2x.png'; -import appStoreImage from '../assets/images/apps/app-store.png'; -import appStore2xImage from '../assets/images/apps/app-store@2x.png'; import graphic1Image from '../assets/images/landing/graphic-1.png'; import graphic12xImage from '../assets/images/landing/graphic-1@2x.png'; import graphic2Image from '../assets/images/landing/graphic-2.png'; @@ -38,10 +40,10 @@ import { BaseAnchorButton } from '../components/Button'; import { GitRelease } from '../components/GitRelease'; import { GitRevision } from '../components/GitRevision'; import { RetinaImage } from '../components/RetinaImage'; +import { useConfig } from '../config'; import { buttonStyle } from '../styles/mixins/buttons'; import { allStates } from '../styles/mixins/hover'; import { useDocumentTitle } from '../utils/useDocumentTitle'; -import { useConfig } from '../config'; const landingButtonStyle = buttonStyle( '#1683fb', @@ -314,7 +316,8 @@ export const LandingPageOfficial = memo(() => { {config.appStoreUrl !== undefined || - config.googlePlayUrl !== undefined ? ( + config.googlePlayUrl !== undefined || + config.fDroidUrl !== undefined ? (
{ ) : null} {config.appStoreUrl !== undefined ? ( - + { /> ) : null} + + {config.fDroidUrl !== undefined ? ( + + + + ) : null}
) : null} diff --git a/vault-web/src/pages/MobilePage.tsx b/vault-web/src/pages/MobilePage.tsx index e0b98e9e..9e8f3f9d 100644 --- a/vault-web/src/pages/MobilePage.tsx +++ b/vault-web/src/pages/MobilePage.tsx @@ -4,6 +4,8 @@ import { useLocation } from 'react-router-dom'; import appStoreImage from '../assets/images/apps/app-store.png'; import appStore2xImage from '../assets/images/apps/app-store@2x.png'; +import fDroidImage from '../assets/images/apps/f-droid.png'; +import fDroid2xImage from '../assets/images/apps/f-droid@2x.png'; import googlePlayImage from '../assets/images/apps/google-play.png'; import googlePlay2xImage from '../assets/images/apps/google-play@2x.png'; import { LinkButton } from '../components/Button'; @@ -75,12 +77,13 @@ export const MobilePage = memo(() => {

{config.appStoreUrl !== undefined || - config.googlePlayUrl !== undefined ? ( + config.googlePlayUrl !== undefined || + config.fDroidUrl !== undefined ? (
{config.googlePlayUrl !== undefined ? ( @@ -89,7 +92,7 @@ export const MobilePage = memo(() => { target="_blank" rel="noreferrer" className={css` - margin-right: 20px; + margin-bottom: 15px; `} > { ) : null} {config.appStoreUrl !== undefined ? ( - + { /> ) : null} + + {config.fDroidUrl !== undefined ? ( + + + + ) : null}
) : null}