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}