From 629010e9ec071dcced1882633e42fdd089af7696 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Aaron?= Date: Tue, 24 Sep 2024 14:29:39 +0200 Subject: [PATCH] feat: quick prototype for apps in the sidebar (wip) --- .../src/assets/suggested-apps/bitrefill.png | Bin 0 -> 7279 bytes frontend/src/components/SuggestedAppData.tsx | 10 ++++ frontend/src/components/layouts/AppLayout.tsx | 8 +++ frontend/src/routes.tsx | 5 ++ .../src/screens/internal-apps/Bitrefill.tsx | 47 ++++++++++++++++++ frontend/vite.config.ts | 3 +- 6 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 frontend/src/assets/suggested-apps/bitrefill.png create mode 100644 frontend/src/screens/internal-apps/Bitrefill.tsx diff --git a/frontend/src/assets/suggested-apps/bitrefill.png b/frontend/src/assets/suggested-apps/bitrefill.png new file mode 100644 index 0000000000000000000000000000000000000000..335dacd3f157dcab9610d042aef2120f5c66e593 GIT binary patch literal 7279 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 literal 0 HcmV?d00001 diff --git a/frontend/src/components/SuggestedAppData.tsx b/frontend/src/components/SuggestedAppData.tsx index 2f367ee3..cf783814 100644 --- a/frontend/src/components/SuggestedAppData.tsx +++ b/frontend/src/components/SuggestedAppData.tsx @@ -1,6 +1,7 @@ import albyGo from "src/assets/suggested-apps/alby-go.png"; import alby from "src/assets/suggested-apps/alby.png"; import amethyst from "src/assets/suggested-apps/amethyst.png"; +import bitrefill from "src/assets/suggested-apps/bitrefill.png"; import buzzpay from "src/assets/suggested-apps/buzzpay.png"; import damus from "src/assets/suggested-apps/damus.png"; import hablanews from "src/assets/suggested-apps/habla-news.png"; @@ -199,4 +200,13 @@ export const suggestedApps: SuggestedApp[] = [ logo: albyGo, internal: true, }, + { + id: "bitrefill", + title: "Bitrefill", + description: + "Live on Bitcoin - Shop for Gift Cards, eSIMs, and Mobile Recharges", + webLink: "https://bitrefill.com", + logo: bitrefill, + internal: true, + }, ].sort((a, b) => (a.title.toUpperCase() > b.title.toUpperCase() ? 1 : -1)); diff --git a/frontend/src/components/layouts/AppLayout.tsx b/frontend/src/components/layouts/AppLayout.tsx index 82ef2148..4e1bf478 100644 --- a/frontend/src/components/layouts/AppLayout.tsx +++ b/frontend/src/components/layouts/AppLayout.tsx @@ -47,6 +47,8 @@ import { } from "src/components/ui/tooltip"; import { useAlbyMe } from "src/hooks/useAlbyMe"; +import bitrefill from "src/assets/suggested-apps/bitrefill.png"; +import { Badge } from "src/components/ui/badge"; import { useAlbyInfo } from "src/hooks/useAlbyInfo"; import { useInfo } from "src/hooks/useInfo"; import { useRemoveSuccessfulChannelOrder } from "src/hooks/useRemoveSuccessfulChannelOrder"; @@ -146,6 +148,12 @@ export default function AppLayout() { App Store +
+ + + Bitrefill NEW + +
); } diff --git a/frontend/src/routes.tsx b/frontend/src/routes.tsx index c01d6083..539ca2c8 100644 --- a/frontend/src/routes.tsx +++ b/frontend/src/routes.tsx @@ -34,6 +34,7 @@ import { FirstChannel } from "src/screens/channels/first/FirstChannel"; import { OpenedFirstChannel } from "src/screens/channels/first/OpenedFirstChannel"; import { OpeningFirstChannel } from "src/screens/channels/first/OpeningFirstChannel"; import { AlbyGo } from "src/screens/internal-apps/AlbyGo"; +import { Bitrefill } from "src/screens/internal-apps/Bitrefill"; import { BuzzPay } from "src/screens/internal-apps/BuzzPay"; import { UncleJim } from "src/screens/internal-apps/UncleJim"; import BuyBitcoin from "src/screens/onchain/BuyBitcoin"; @@ -221,6 +222,10 @@ const routes = [ path: "alby-go", element: , }, + { + path: "bitrefill", + element: , + }, ], }, { diff --git a/frontend/src/screens/internal-apps/Bitrefill.tsx b/frontend/src/screens/internal-apps/Bitrefill.tsx new file mode 100644 index 00000000..f1db976c --- /dev/null +++ b/frontend/src/screens/internal-apps/Bitrefill.tsx @@ -0,0 +1,47 @@ +import { Link } from "react-router-dom"; +import AppHeader from "src/components/AppHeader"; +import { NostrWalletConnectIcon } from "src/components/icons/NostrWalletConnectIcon"; +import { suggestedApps } from "src/components/SuggestedAppData"; +import { Button } from "src/components/ui/button"; + +const BITREFILL_APP_ID = "bitrefill"; + +export function Bitrefill() { + const app = suggestedApps.find((x) => x.id === BITREFILL_APP_ID); + + return ( +
+ +
+ +
+
{app?.title}
+
+ {app?.description} +
+
+
+ + } + description="" + contentRight={ + + + + } + /> + +
+ ); +} diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index 93a4546d..5710ae04 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -85,8 +85,7 @@ const insertDevCSPPlugin: Plugin = { return html.replace( "", ` - - ` + ` ); }, },