From c6cef1900fa87f37ab6f7eb1215db9ae30978f83 Mon Sep 17 00:00:00 2001
From: Amit Amrutiya
Date: Thu, 14 Mar 2024 15:24:33 +0530
Subject: [PATCH] feat: bitcoin-icons-react with popicons (#3072)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* feat: replace bitcoin-icons-react with popicons
Signed-off-by: amitamrutiya2210
* feat: add all possible popicons icons
Signed-off-by: amitamrutiya2210
* feat: add svg icons and remove bitcoin-icons-react library
Signed-off-by: amitamrutiya2210
* fix: accountmenu, add missing icon
* fix: icon link cards
* fix: publishers table
* fix: transaction table & modal
* fix: onboard
* fix: accounts list styles
* fix: smaller icons on connect commando
* fix: svg optimize
* fix: use props in popicons
* fix: use circlelineicon
* fix: add satoshi icon
* fix: remove manage wallets link
* fix: copy button behavior
---------
Signed-off-by: amitamrutiya2210
Co-authored-by: René Aaron
---
package.json | 1 -
.../components/AccountDetailLayout/index.tsx | 4 +--
src/app/components/AccountMenu/index.test.tsx | 1 -
src/app/components/AccountMenu/index.tsx | 35 +++++++------------
src/app/components/CardButton/index.tsx | 12 ++++---
src/app/components/Enable/AlbyEnable.tsx | 6 ++--
src/app/components/Enable/LiquidEnable.tsx | 6 ++--
src/app/components/Enable/NostrEnable.tsx | 6 ++--
src/app/components/Enable/WebbtcEnable.tsx | 6 ++--
src/app/components/Enable/WeblnEnable.tsx | 6 ++--
.../components/IconLinkCard/IconLinkCard.tsx | 8 +++--
src/app/components/InputCopyButton/index.tsx | 15 +++-----
src/app/components/Modal/index.tsx | 4 +--
src/app/components/PublishersTable/index.tsx | 6 ++--
src/app/components/QrcodeAdornment/index.tsx | 4 +--
src/app/components/QrcodeScanner/index.tsx | 4 +--
src/app/components/SatButtons/index.tsx | 5 ++-
src/app/components/Toast/index.tsx | 4 +--
.../TransactionsTable/TransactionModal.tsx | 24 ++++++-------
.../components/TransactionsTable/index.tsx | 13 +++----
src/app/components/onboard/index.tsx | 13 +++----
src/app/icons/SatoshiIcon.tsx | 14 ++++++++
src/app/icons/popicons/BitcoinCircleLine.tsx | 27 ++++++++++++++
src/app/icons/popicons/CircleInfoLine.tsx | 31 ++++++++++++++++
src/app/icons/popicons/GlobeLine.tsx | 21 +++++++++++
src/app/screens/Accounts/index.tsx | 13 +++----
.../Bitcoin/ConfirmGetAddress/index.tsx | 4 +--
src/app/screens/Home/AllowanceView/index.tsx | 4 +--
src/app/screens/Home/DefaultView/index.tsx | 18 ++++------
src/app/screens/Keysend/index.tsx | 4 +--
src/app/screens/LNURLPay/index.tsx | 16 ++++-----
src/app/screens/LNURLRedeem/index.tsx | 4 +--
src/app/screens/Liquid/ConfirmGetAddress.tsx | 4 +--
src/app/screens/Liquid/ConfirmSignPset.tsx | 4 +--
src/app/screens/Nostr/ConfirmDecrypt.tsx | 4 +--
src/app/screens/Nostr/ConfirmGetPublicKey.tsx | 4 +--
src/app/screens/OnChainReceive/index.tsx | 4 +--
src/app/screens/Receive/index.tsx | 23 ++++++------
src/app/screens/ReceiveInvoice/index.tsx | 9 ++---
src/app/screens/ScanQRCode/index.tsx | 4 +--
src/app/screens/Send/index.tsx | 4 +--
.../screens/SendToBitcoinAddress/index.tsx | 10 +++---
.../connectors/ConnectCommando/index.tsx | 12 +++----
.../screens/connectors/ConnectLnd/index.tsx | 4 +--
src/i18n/locales/en/translation.json | 1 -
yarn.lock | 5 ---
46 files changed, 241 insertions(+), 190 deletions(-)
create mode 100644 src/app/icons/SatoshiIcon.tsx
create mode 100644 src/app/icons/popicons/BitcoinCircleLine.tsx
create mode 100644 src/app/icons/popicons/CircleInfoLine.tsx
create mode 100644 src/app/icons/popicons/GlobeLine.tsx
diff --git a/package.json b/package.json
index a2e59da10c..99bfae97b9 100644
--- a/package.json
+++ b/package.json
@@ -35,7 +35,6 @@
"prepare": "husky install"
},
"dependencies": {
- "@bitcoin-design/bitcoin-icons-react": "^0.1.10",
"@bitcoinerlab/secp256k1": "^1.1.1",
"@getalby/sdk": "^3.4.0",
"@headlessui/react": "^1.7.18",
diff --git a/src/app/components/AccountDetailLayout/index.tsx b/src/app/components/AccountDetailLayout/index.tsx
index 3d4e62e93f..39a6604c0d 100644
--- a/src/app/components/AccountDetailLayout/index.tsx
+++ b/src/app/components/AccountDetailLayout/index.tsx
@@ -1,6 +1,6 @@
-import { CaretLeftIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import Header from "@components/Header";
import IconButton from "@components/IconButton";
+import { PopiconsChevronLeftLine } from "@popicons/react";
import { useTranslation } from "react-i18next";
import { Outlet, useMatch, useNavigate, useParams } from "react-router-dom";
import Avatar from "~/app/components/Avatar";
@@ -31,7 +31,7 @@ function AccountDetailLayout() {
headerLeft={
}
+ icon={}
/>
}
>
diff --git a/src/app/components/AccountMenu/index.test.tsx b/src/app/components/AccountMenu/index.test.tsx
index 77a29c71fa..1a8c6970de 100644
--- a/src/app/components/AccountMenu/index.test.tsx
+++ b/src/app/components/AccountMenu/index.test.tsx
@@ -72,6 +72,5 @@ describe("AccountMenu", () => {
expect(screen.getByText("LND account")).toBeInTheDocument();
expect(screen.getByText("Galoy account")).toBeInTheDocument();
expect(screen.getByText("Connect a Wallet")).toBeInTheDocument();
- expect(screen.getByText("Manage Wallets")).toBeInTheDocument();
});
});
diff --git a/src/app/components/AccountMenu/index.tsx b/src/app/components/AccountMenu/index.tsx
index 9468fc6399..48c2eba1d2 100644
--- a/src/app/components/AccountMenu/index.tsx
+++ b/src/app/components/AccountMenu/index.tsx
@@ -1,10 +1,8 @@
import {
- AddressBookIcon,
- CaretDownIcon,
- GlobeIcon,
- PlusIcon,
- WalletIcon,
-} from "@bitcoin-design/bitcoin-icons-react/filled";
+ PopiconsChevronBottomLine,
+ PopiconsCirclePlusLine,
+ PopiconsWalletLine,
+} from "@popicons/react";
import { useEffect } from "react";
import { useTranslation } from "react-i18next";
import { useNavigate } from "react-router-dom";
@@ -16,6 +14,7 @@ import { useAccounts } from "~/app/context/AccountsContext";
import { isAlbyLNDHubAccount, isAlbyOAuthAccount } from "~/app/utils";
import utils from "~/common/lib/utils";
+import PopiconsGlobeLine from "~/app/icons/popicons/GlobeLine";
import Menu from "../Menu";
export type Props = {
@@ -58,7 +57,7 @@ function AccountMenu({ showOptions = true }: Props) {
}
return (
-
+
@@ -99,7 +98,7 @@ function AccountMenu({ showOptions = true }: Props) {
!title && !balancesDecorated ? "w-28" : ""
}`}
>
-
+
{tCommon("balance")}
@@ -110,7 +109,7 @@ function AccountMenu({ showOptions = true }: Props) {
balancesDecorated.accountBalance
)}
-
+
{accountLoading ? (
) : (
@@ -127,7 +126,7 @@ function AccountMenu({ showOptions = true }: Props) {
openOptions(`accounts/${authAccount?.id}`);
}}
>
-
+
{t("options.account.wallet_settings")}
{(isAlbyLNDHubAccount(
@@ -140,7 +139,7 @@ function AccountMenu({ showOptions = true }: Props) {
window.open(`https://getalby.com/user`, "_blank");
}}
>
-
+
{t("options.account.go_to_web_wallet")} →
)}
@@ -192,17 +191,9 @@ function AccountMenu({ showOptions = true }: Props) {
openOptions("accounts/new");
}}
>
-
+
{t("options.account.add")}
- {
- openOptions("accounts");
- }}
- >
-
- {t("options.account.manage")}
-
>
)}
diff --git a/src/app/components/CardButton/index.tsx b/src/app/components/CardButton/index.tsx
index 23c9fe2a6c..fbbae10181 100644
--- a/src/app/components/CardButton/index.tsx
+++ b/src/app/components/CardButton/index.tsx
@@ -1,14 +1,18 @@
-import React from "react";
+import { FunctionComponent, SVGProps } from "react";
export type Props = {
title: string;
description: string;
- icon: React.ComponentType<{
- className?: string;
- }>;
+ icon: IconType;
onClick: () => void;
};
+interface IconTypeProps {
+ className?: string;
+}
+
+type IconType = FunctionComponent>;
+
export default function CardButton({
title,
description,
diff --git a/src/app/components/Enable/AlbyEnable.tsx b/src/app/components/Enable/AlbyEnable.tsx
index 8db3fa7184..cc0262b0be 100644
--- a/src/app/components/Enable/AlbyEnable.tsx
+++ b/src/app/components/Enable/AlbyEnable.tsx
@@ -1,7 +1,7 @@
-import { CheckIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import ConfirmOrCancel from "@components/ConfirmOrCancel";
import Container from "@components/Container";
import PublisherCard from "@components/PublisherCard";
+import { PopiconsCheckLine } from "@popicons/react";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import Alert from "~/app/components/Alert";
@@ -76,11 +76,11 @@ function AlbyEnableComponent(props: Props) {
{tCommon("enable.allow")}
-
+
{tCommon("enable.request1")}
diff --git a/src/app/components/Enable/LiquidEnable.tsx b/src/app/components/Enable/LiquidEnable.tsx
index 7e63089526..78dc6d6b38 100644
--- a/src/app/components/Enable/LiquidEnable.tsx
+++ b/src/app/components/Enable/LiquidEnable.tsx
@@ -1,7 +1,7 @@
-import { CheckIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import ConfirmOrCancel from "@components/ConfirmOrCancel";
import Container from "@components/Container";
import PublisherCard from "@components/PublisherCard";
+import { PopiconsCheckLine } from "@popicons/react";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import Alert from "~/app/components/Alert";
@@ -76,11 +76,11 @@ function LiquidEnableComponent(props: Props) {
{tCommon("enable.allow")}
-
+
{tCommon("enable.request1")}
diff --git a/src/app/components/Enable/NostrEnable.tsx b/src/app/components/Enable/NostrEnable.tsx
index bfbbbba40e..f35e0f8d82 100644
--- a/src/app/components/Enable/NostrEnable.tsx
+++ b/src/app/components/Enable/NostrEnable.tsx
@@ -1,7 +1,7 @@
-import { CheckIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import ConfirmOrCancel from "@components/ConfirmOrCancel";
import Container from "@components/Container";
import PublisherCard from "@components/PublisherCard";
+import { PopiconsCheckLine } from "@popicons/react";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import Alert from "~/app/components/Alert";
@@ -76,11 +76,11 @@ function NostrEnableComponent(props: Props) {
{tCommon("enable.allow")}
diff --git a/src/app/components/Enable/WebbtcEnable.tsx b/src/app/components/Enable/WebbtcEnable.tsx
index 101ef891fa..353adf9fbe 100644
--- a/src/app/components/Enable/WebbtcEnable.tsx
+++ b/src/app/components/Enable/WebbtcEnable.tsx
@@ -1,7 +1,7 @@
-import { CheckIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import ConfirmOrCancel from "@components/ConfirmOrCancel";
import Container from "@components/Container";
import PublisherCard from "@components/PublisherCard";
+import { PopiconsCheckLine } from "@popicons/react";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import Alert from "~/app/components/Alert";
@@ -76,11 +76,11 @@ function WebbtcEnableComponent(props: Props) {
{tCommon("enable.allow")}
-
+
{tCommon("enable.request1")}
diff --git a/src/app/components/Enable/WeblnEnable.tsx b/src/app/components/Enable/WeblnEnable.tsx
index 8434fbe94b..11c0ee0095 100644
--- a/src/app/components/Enable/WeblnEnable.tsx
+++ b/src/app/components/Enable/WeblnEnable.tsx
@@ -1,7 +1,7 @@
-import { CheckIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import ConfirmOrCancel from "@components/ConfirmOrCancel";
import Container from "@components/Container";
import PublisherCard from "@components/PublisherCard";
+import { PopiconsCheckLine } from "@popicons/react";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import Alert from "~/app/components/Alert";
@@ -76,11 +76,11 @@ function WeblnEnableComponent(props: Props) {
{tCommon("enable.allow")}
-
+
{tCommon("enable.request1")}
diff --git a/src/app/components/IconLinkCard/IconLinkCard.tsx b/src/app/components/IconLinkCard/IconLinkCard.tsx
index 7c5da442bf..52639c6d11 100644
--- a/src/app/components/IconLinkCard/IconLinkCard.tsx
+++ b/src/app/components/IconLinkCard/IconLinkCard.tsx
@@ -1,4 +1,4 @@
-import { PopiconsChevronRightSolid } from "@popicons/react";
+import { PopiconsChevronRightLine } from "@popicons/react";
export type IconLinkCardProps = {
title: string;
@@ -18,7 +18,9 @@ export function IconLinkCard({
className="border border-gray-200 dark:border-neutral-800 rounded-xl p-4 bg-white dark:bg-surface-01dp hover:bg-gray-50 dark:hover:bg-surface-02dp text-gray-800 dark:text-neutral-200 cursor-pointer flex flex-row items-center gap-3"
onClick={onClick}
>
- {icon}
+
+ {icon}
+
{title}
@@ -28,7 +30,7 @@ export function IconLinkCard({
);
diff --git a/src/app/components/InputCopyButton/index.tsx b/src/app/components/InputCopyButton/index.tsx
index 274b6eb7c7..8b0011ec08 100644
--- a/src/app/components/InputCopyButton/index.tsx
+++ b/src/app/components/InputCopyButton/index.tsx
@@ -1,6 +1,5 @@
-import { CopyIcon as CopyFilledIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
-import { CopyIcon } from "@bitcoin-design/bitcoin-icons-react/outline";
-import { useState } from "react";
+import { PopiconsCopyLine } from "@popicons/react";
+import { t } from "i18next";
import toast from "~/app/components/Toast";
import { classNames } from "~/app/utils";
@@ -10,23 +9,19 @@ type Props = {
};
function InputCopyButton({ value, className }: Props) {
- const [copied, setCopied] = useState(false);
- const CurrentIcon = copied ? CopyFilledIcon : CopyIcon;
return (
);
}
diff --git a/src/app/components/Modal/index.tsx b/src/app/components/Modal/index.tsx
index 791a08257d..7d9580fe51 100644
--- a/src/app/components/Modal/index.tsx
+++ b/src/app/components/Modal/index.tsx
@@ -1,4 +1,4 @@
-import { CrossIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
+import { PopiconsXLine } from "@popicons/react";
import ReactModal from "react-modal";
import { classNames } from "~/app/utils";
@@ -42,7 +42,7 @@ export default function Modal({
onClick={closeModal}
className="absolute right-5 top-5 text-gray-600 dark:text-neutral-400 hover:text-gray-700 dark:hover:text-neutral-300"
>
-
+
{children}
diff --git a/src/app/components/PublishersTable/index.tsx b/src/app/components/PublishersTable/index.tsx
index e4aa098027..386f21c058 100644
--- a/src/app/components/PublishersTable/index.tsx
+++ b/src/app/components/PublishersTable/index.tsx
@@ -1,4 +1,4 @@
-import { CaretRightIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
+import { PopiconsChevronRightLine } from "@popicons/react";
import { useTranslation } from "react-i18next";
import BadgesList from "~/app/components/BadgesList";
import { useSettings } from "~/app/context/SettingsContext";
@@ -53,7 +53,7 @@ export default function PublishersTable({
-
+
{publisher.host}
•
@@ -84,7 +84,7 @@ export default function PublishersTable({
-
+
|
))}
diff --git a/src/app/components/QrcodeAdornment/index.tsx b/src/app/components/QrcodeAdornment/index.tsx
index 555514f3ae..297fe99330 100644
--- a/src/app/components/QrcodeAdornment/index.tsx
+++ b/src/app/components/QrcodeAdornment/index.tsx
@@ -1,4 +1,4 @@
-import { QrCodeIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
+import { PopiconsQrCodeMinimalLine } from "@popicons/react";
import { useTranslation } from "react-i18next";
import { useNavigate } from "react-router-dom";
@@ -20,7 +20,7 @@ export default function QrcodeAdornment({ route }: Props) {
navigate("/scanQRCode", { state: { route: route }, replace: true });
}}
>
-
+
);
}
diff --git a/src/app/components/QrcodeScanner/index.tsx b/src/app/components/QrcodeScanner/index.tsx
index a3c1b54c99..711721cf14 100644
--- a/src/app/components/QrcodeScanner/index.tsx
+++ b/src/app/components/QrcodeScanner/index.tsx
@@ -1,4 +1,4 @@
-import { QrCodeIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
+import { PopiconsQrCodeMinimalLine } from "@popicons/react";
import { Html5Qrcode, Html5QrcodeScannerState } from "html5-qrcode";
import { useEffect, useRef, useState } from "react";
import { useTranslation } from "react-i18next";
@@ -130,7 +130,7 @@ function QrcodeScanner({
onClick={handleRequestCameraPermissions}
/>
-
+
>
)}
diff --git a/src/app/components/SatButtons/index.tsx b/src/app/components/SatButtons/index.tsx
index 33e45ecdbc..8b746ddeb1 100644
--- a/src/app/components/SatButtons/index.tsx
+++ b/src/app/components/SatButtons/index.tsx
@@ -1,5 +1,4 @@
-import { SatoshiV2Icon } from "@bitcoin-design/bitcoin-icons-react/filled";
-
+import SatoshiIcon from "~/app/icons/SatoshiIcon";
import Button from "../Button";
type Props = {
@@ -17,7 +16,7 @@ function SatButtons({ onClick, disabled, min, max }: Props) {
{sizes.map((size) => (
}
+ icon={}
label={size / 1000 + "k"}
onClick={() => onClick(size.toString())}
fullWidth
diff --git a/src/app/components/Toast/index.tsx b/src/app/components/Toast/index.tsx
index e4247cbabd..405bbe0d3b 100644
--- a/src/app/components/Toast/index.tsx
+++ b/src/app/components/Toast/index.tsx
@@ -1,4 +1,4 @@
-import { CrossIcon } from "@bitcoin-design/bitcoin-icons-react/outline";
+import { PopiconsXLine } from "@popicons/react";
import { Transition } from "@headlessui/react";
import { ReactNode } from "react";
import {
@@ -47,7 +47,7 @@ const toast: ToastMethods = {
{children}
{/* Add close icons for toasts that are displayed for a longer time */}
{options?.duration && options?.duration > 10_000 && (
- hotToast.dismiss(t.id)}
/>
diff --git a/src/app/components/TransactionsTable/TransactionModal.tsx b/src/app/components/TransactionsTable/TransactionModal.tsx
index 2f291f40b1..220cb4fe45 100644
--- a/src/app/components/TransactionsTable/TransactionModal.tsx
+++ b/src/app/components/TransactionsTable/TransactionModal.tsx
@@ -1,11 +1,9 @@
import {
- CaretDownIcon,
- CaretUpIcon,
-} from "@bitcoin-design/bitcoin-icons-react/filled";
-import {
- ArrowDownIcon,
- ArrowUpIcon,
-} from "@bitcoin-design/bitcoin-icons-react/outline";
+ PopiconsArrowDownSolid,
+ PopiconsArrowUpSolid,
+ PopiconsChevronBottomLine,
+ PopiconsChevronTopLine,
+} from "@popicons/react";
import dayjs from "dayjs";
import { useEffect, useState } from "react";
import { useTranslation } from "react-i18next";
@@ -58,12 +56,12 @@ export default function TransactionModal({
{getTransactionType(transaction) == "outgoing" ? (
-
-
+
) : (
-
@@ -182,12 +180,12 @@ export default function TransactionModal({
{showMoreFields ? (
<>
{tCommon("actions.hide")}
-
+
>
) : (
<>
{tCommon("actions.more")}
-
+
>
)}
diff --git a/src/app/components/TransactionsTable/index.tsx b/src/app/components/TransactionsTable/index.tsx
index a9ac5a8f7e..b90d036bbd 100644
--- a/src/app/components/TransactionsTable/index.tsx
+++ b/src/app/components/TransactionsTable/index.tsx
@@ -1,8 +1,5 @@
-import {
- ArrowDownIcon,
- ArrowUpIcon,
-} from "@bitcoin-design/bitcoin-icons-react/outline";
import Loading from "@components/Loading";
+import { PopiconsArrowDownSolid, PopiconsArrowUpSolid } from "@popicons/react";
import { useState } from "react";
import { useTranslation } from "react-i18next";
@@ -61,12 +58,12 @@ export default function TransactionsTable({
{type == "outgoing" ? (
-
-
+
) : (
-
diff --git a/src/app/components/onboard/index.tsx b/src/app/components/onboard/index.tsx
index d5dfb14dc3..24b5f4a529 100644
--- a/src/app/components/onboard/index.tsx
+++ b/src/app/components/onboard/index.tsx
@@ -1,8 +1,4 @@
-import {
- ClockIcon,
- InfoCircleIcon,
- TwoKeysIcon,
-} from "@bitcoin-design/bitcoin-icons-react/outline";
+import { PopiconsClockLine, PopiconsKeyLeftLine } from "@popicons/react";
import { useTranslation } from "react-i18next";
import ConfirmOrCancel from "~/app/components/ConfirmOrCancel";
import Container from "~/app/components/Container";
@@ -10,6 +6,7 @@ import PublisherCard from "~/app/components/PublisherCard";
import ScreenHeader from "~/app/components/ScreenHeader";
import { useAccount } from "~/app/context/AccountContext";
import { useNavigationState } from "~/app/hooks/useNavigationState";
+import PopiconsCircleInfoLine from "~/app/icons/popicons/CircleInfoLine";
import { NO_KEYS_ERROR, USER_REJECTED_ERROR } from "~/common/constants";
import api from "~/common/lib/api";
import msg from "~/common/lib/msg";
@@ -60,15 +57,15 @@ export default function Onboard() {
/>
diff --git a/src/app/icons/SatoshiIcon.tsx b/src/app/icons/SatoshiIcon.tsx
new file mode 100644
index 0000000000..24cbf36607
--- /dev/null
+++ b/src/app/icons/SatoshiIcon.tsx
@@ -0,0 +1,14 @@
+import { SVGProps } from "react";
+
+const SatoshiIcon = (props: SVGProps
) => (
+
+);
+
+export default SatoshiIcon;
diff --git a/src/app/icons/popicons/BitcoinCircleLine.tsx b/src/app/icons/popicons/BitcoinCircleLine.tsx
new file mode 100644
index 0000000000..e7f9bcddb5
--- /dev/null
+++ b/src/app/icons/popicons/BitcoinCircleLine.tsx
@@ -0,0 +1,27 @@
+import { SVGProps } from "react";
+
+const PopiconsBitcoinCircleLine = (props: SVGProps) => (
+
+);
+
+export default PopiconsBitcoinCircleLine;
diff --git a/src/app/icons/popicons/CircleInfoLine.tsx b/src/app/icons/popicons/CircleInfoLine.tsx
new file mode 100644
index 0000000000..32b588509c
--- /dev/null
+++ b/src/app/icons/popicons/CircleInfoLine.tsx
@@ -0,0 +1,31 @@
+import { SVGProps } from "react";
+
+const PopiconsCircleInfoLine = (props: SVGProps) => (
+
+);
+
+export default PopiconsCircleInfoLine;
diff --git a/src/app/icons/popicons/GlobeLine.tsx b/src/app/icons/popicons/GlobeLine.tsx
new file mode 100644
index 0000000000..8209757e77
--- /dev/null
+++ b/src/app/icons/popicons/GlobeLine.tsx
@@ -0,0 +1,21 @@
+import { SVGProps } from "react";
+
+const PopiconsGlobeLine = (props: SVGProps) => (
+
+);
+
+export default PopiconsGlobeLine;
diff --git a/src/app/screens/Accounts/index.tsx b/src/app/screens/Accounts/index.tsx
index cac4f5b75b..283b0dcaee 100644
--- a/src/app/screens/Accounts/index.tsx
+++ b/src/app/screens/Accounts/index.tsx
@@ -1,9 +1,6 @@
-import {
- CaretRightIcon,
- PlusIcon,
-} from "@bitcoin-design/bitcoin-icons-react/filled";
import Button from "@components/Button";
import Container from "@components/Container";
+import { PopiconsChevronRightLine, PopiconsPlusSolid } from "@popicons/react";
import { useTranslation } from "react-i18next";
import { useNavigate } from "react-router-dom";
import Avatar from "~/app/components/Avatar";
@@ -23,7 +20,7 @@ function AccountsScreen() {
{t("title")}
}
+ icon={
}
label={t("actions.connect_a_wallet")}
primary
onClick={() => navigate(`/accounts/new`)}
@@ -50,17 +47,17 @@ function AccountsScreen() {
/>
-
+
{account.name}
-
+
{account.connector}
-
+
|
);
diff --git a/src/app/screens/Bitcoin/ConfirmGetAddress/index.tsx b/src/app/screens/Bitcoin/ConfirmGetAddress/index.tsx
index cceca157d4..59676eccc5 100644
--- a/src/app/screens/Bitcoin/ConfirmGetAddress/index.tsx
+++ b/src/app/screens/Bitcoin/ConfirmGetAddress/index.tsx
@@ -1,8 +1,8 @@
-import { CheckIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import ConfirmOrCancel from "@components/ConfirmOrCancel";
import Container from "@components/Container";
import PublisherCard from "@components/PublisherCard";
import Checkbox from "@components/form/Checkbox";
+import { PopiconsCheckLine } from "@popicons/react";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import ScreenHeader from "~/app/components/ScreenHeader";
@@ -66,7 +66,7 @@ function BitcoinConfirmGetAddress() {
{t("allow")}
-
+
{tPermissions("bitcoin.getaddress")}
diff --git a/src/app/screens/Home/AllowanceView/index.tsx b/src/app/screens/Home/AllowanceView/index.tsx
index 7f454498ae..fcdf64c161 100644
--- a/src/app/screens/Home/AllowanceView/index.tsx
+++ b/src/app/screens/Home/AllowanceView/index.tsx
@@ -1,4 +1,3 @@
-import { CaretLeftIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import Header from "@components/Header";
import IconButton from "@components/IconButton";
import Loading from "@components/Loading";
@@ -6,6 +5,7 @@ import Progressbar from "@components/Progressbar";
import PublisherCard from "@components/PublisherCard";
import SitePreferences from "@components/SitePreferences";
import TransactionsTable from "@components/TransactionsTable";
+import { PopiconsChevronLeftLine } from "@popicons/react";
import dayjs from "dayjs";
import relativeTime from "dayjs/plugin/relativeTime";
import { FC, useEffect, useState } from "react";
@@ -83,7 +83,7 @@ const AllowanceView: FC
= (props) => {
headerLeft={
}
+ icon={}
/>
}
>
diff --git a/src/app/screens/Home/DefaultView/index.tsx b/src/app/screens/Home/DefaultView/index.tsx
index 40e60ca13b..760dae4008 100644
--- a/src/app/screens/Home/DefaultView/index.tsx
+++ b/src/app/screens/Home/DefaultView/index.tsx
@@ -1,8 +1,9 @@
-import { ArrowRightIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
+import Button from "@components/Button";
import Loading from "@components/Loading";
import TransactionsTable from "@components/TransactionsTable";
import {
PopiconsArrowDownLine,
+ PopiconsArrowRightLine,
PopiconsBulbLine,
PopiconsKeyLine,
} from "@popicons/react";
@@ -13,7 +14,6 @@ import { useTranslation } from "react-i18next";
import { useNavigate } from "react-router-dom";
import Alert from "~/app/components/Alert";
import BalanceBox from "~/app/components/BalanceBox";
-import Button from "~/app/components/Button";
import Hyperlink from "~/app/components/Hyperlink";
import { IconLinkCard } from "~/app/components/IconLinkCard/IconLinkCard";
import SkeletonLoader from "~/app/components/SkeletonLoader";
@@ -198,9 +198,7 @@ const DefaultView: FC = (props) => {
description={t(
"default_view.actions.get_started.description"
)}
- icon={
-
- }
+ icon={}
onClick={() => {
utils.openUrl(
"https://guides.getalby.com/user-guide/v/alby-account-and-browser-extension/"
@@ -216,9 +214,7 @@ const DefaultView: FC = (props) => {
- }
+ icon={}
onClick={async () => {
openOptions(
`accounts/${currentAccount?.id}/secret-key/new`
@@ -233,9 +229,7 @@ const DefaultView: FC = (props) => {
description={t(
"default_view.actions.receive_bitcoin.description"
)}
- icon={
-
- }
+ icon={}
onClick={() => {
navigate("/receive");
}}
@@ -254,7 +248,7 @@ const DefaultView: FC = (props) => {
className="flex justify-center items-center mt-2"
>
{t("default_view.see_all")}
-
+
)}
diff --git a/src/app/screens/Keysend/index.tsx b/src/app/screens/Keysend/index.tsx
index 8f2cec79e7..d35e9775e1 100644
--- a/src/app/screens/Keysend/index.tsx
+++ b/src/app/screens/Keysend/index.tsx
@@ -1,4 +1,3 @@
-import { CaretLeftIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import Button from "@components/Button";
import ConfirmOrCancel from "@components/ConfirmOrCancel";
import ContentMessage from "@components/ContentMessage";
@@ -7,6 +6,7 @@ import IconButton from "@components/IconButton";
import ResultCard from "@components/ResultCard";
import SatButtons from "@components/SatButtons";
import DualCurrencyField from "@components/form/DualCurrencyField";
+import { PopiconsChevronLeftLine } from "@popicons/react";
import React, { useEffect, useState } from "react";
import { useTranslation } from "react-i18next";
import { useNavigate } from "react-router-dom";
@@ -103,7 +103,7 @@ function Keysend() {
headerLeft={
navigate("/send")}
- icon={}
+ icon={}
/>
}
>
diff --git a/src/app/screens/LNURLPay/index.tsx b/src/app/screens/LNURLPay/index.tsx
index e82f10f24c..43132b705a 100644
--- a/src/app/screens/LNURLPay/index.tsx
+++ b/src/app/screens/LNURLPay/index.tsx
@@ -1,8 +1,3 @@
-import {
- CaretDownIcon,
- CaretLeftIcon,
- CaretUpIcon,
-} from "@bitcoin-design/bitcoin-icons-react/filled";
import Button from "@components/Button";
import ConfirmOrCancel from "@components/ConfirmOrCancel";
import Container from "@components/Container";
@@ -12,6 +7,11 @@ import ResultCard from "@components/ResultCard";
import SatButtons from "@components/SatButtons";
import DualCurrencyField from "@components/form/DualCurrencyField";
import TextField from "@components/form/TextField";
+import {
+ PopiconsChevronBottomLine,
+ PopiconsChevronLeftLine,
+ PopiconsChevronTopLine,
+} from "@popicons/react";
import fetchAdapter from "@vespaiach/axios-fetch-adapter";
import axios from "axios";
import React, { Fragment, useEffect, useState } from "react";
@@ -390,7 +390,7 @@ function LNURLPay() {
headerLeft={
navigate(-1)}
- icon={}
+ icon={}
/>
}
>
@@ -481,9 +481,9 @@ function LNURLPay() {
{tCommon("actions.more")}{" "}
{showMoreFields ? (
-
+
) : (
-
+
)}
diff --git a/src/app/screens/LNURLRedeem/index.tsx b/src/app/screens/LNURLRedeem/index.tsx
index 7417e676ed..fbda28bd5f 100644
--- a/src/app/screens/LNURLRedeem/index.tsx
+++ b/src/app/screens/LNURLRedeem/index.tsx
@@ -1,9 +1,9 @@
-import { CaretLeftIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import Button from "@components/Button";
import Container from "@components/Container";
import Header from "@components/Header";
import IconButton from "@components/IconButton";
import TextField from "@components/form/TextField";
+import { PopiconsChevronLeftLine } from "@popicons/react";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import { useLocation, useNavigate } from "react-router-dom";
@@ -68,7 +68,7 @@ function LNURLRedeem() {
headerLeft={
navigate(-1)}
- icon={}
+ icon={}
/>
}
>
diff --git a/src/app/screens/Liquid/ConfirmGetAddress.tsx b/src/app/screens/Liquid/ConfirmGetAddress.tsx
index 969f4eb71c..e931291a03 100644
--- a/src/app/screens/Liquid/ConfirmGetAddress.tsx
+++ b/src/app/screens/Liquid/ConfirmGetAddress.tsx
@@ -1,7 +1,7 @@
-import { CheckIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import ConfirmOrCancel from "@components/ConfirmOrCancel";
import Container from "@components/Container";
import PublisherCard from "@components/PublisherCard";
+import { PopiconsCheckLine } from "@popicons/react";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import ScreenHeader from "~/app/components/ScreenHeader";
@@ -66,7 +66,7 @@ function LiquidConfirmGetAddress() {
{t("allow")}
-
+
{tPermissions("liquid.getaddress")}
diff --git a/src/app/screens/Liquid/ConfirmSignPset.tsx b/src/app/screens/Liquid/ConfirmSignPset.tsx
index 0e7c757011..1dd86ab63d 100644
--- a/src/app/screens/Liquid/ConfirmSignPset.tsx
+++ b/src/app/screens/Liquid/ConfirmSignPset.tsx
@@ -1,4 +1,3 @@
-import { InfoIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import ConfirmOrCancel from "@components/ConfirmOrCancel";
import Container from "@components/Container";
import PublisherCard from "@components/PublisherCard";
@@ -12,6 +11,7 @@ import Loading from "~/app/components/Loading";
import ScreenHeader from "~/app/components/ScreenHeader";
import toast from "~/app/components/Toast";
import { useNavigationState } from "~/app/hooks/useNavigationState";
+import PopiconsCircleInfoLine from "~/app/icons/popicons/CircleInfoLine";
import { USER_REJECTED_ERROR } from "~/common/constants";
import api from "~/common/lib/api";
import msg from "~/common/lib/msg";
@@ -113,7 +113,7 @@ function ConfirmSignPset() {
target="_blank"
>
diff --git a/src/app/screens/Nostr/ConfirmDecrypt.tsx b/src/app/screens/Nostr/ConfirmDecrypt.tsx
index 40c947e7a6..f0542e6136 100644
--- a/src/app/screens/Nostr/ConfirmDecrypt.tsx
+++ b/src/app/screens/Nostr/ConfirmDecrypt.tsx
@@ -1,7 +1,7 @@
-import { CheckIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import ConfirmOrCancel from "@components/ConfirmOrCancel";
import Container from "@components/Container";
import PublisherCard from "@components/PublisherCard";
+import { PopiconsCheckLine } from "@popicons/react";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import ScreenHeader from "~/app/components/ScreenHeader";
@@ -67,7 +67,7 @@ function NostrConfirmDecrypt() {
{t("allow", { host: origin.host })}
-
+
{tPermissions("nostr.nip04decrypt")}
diff --git a/src/app/screens/Nostr/ConfirmGetPublicKey.tsx b/src/app/screens/Nostr/ConfirmGetPublicKey.tsx
index 5f7abf1234..08d01314df 100644
--- a/src/app/screens/Nostr/ConfirmGetPublicKey.tsx
+++ b/src/app/screens/Nostr/ConfirmGetPublicKey.tsx
@@ -1,8 +1,8 @@
-import { CheckIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import ConfirmOrCancel from "@components/ConfirmOrCancel";
import Container from "@components/Container";
import PublisherCard from "@components/PublisherCard";
import Checkbox from "@components/form/Checkbox";
+import { PopiconsCheckLine } from "@popicons/react";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import ScreenHeader from "~/app/components/ScreenHeader";
@@ -66,7 +66,7 @@ function NostrConfirmGetPublicKey() {
{t("allow")}
-
+
{tPermissions("nostr.getpublickey")}
diff --git a/src/app/screens/OnChainReceive/index.tsx b/src/app/screens/OnChainReceive/index.tsx
index 6bb7fd4840..f6ba31b32a 100644
--- a/src/app/screens/OnChainReceive/index.tsx
+++ b/src/app/screens/OnChainReceive/index.tsx
@@ -1,5 +1,5 @@
-import { CaretLeftIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import Header from "@components/Header";
+import { PopiconsChevronLeftLine } from "@popicons/react";
import { Trans, useTranslation } from "react-i18next";
import { useNavigate } from "react-router-dom";
import Button from "~/app/components/Button";
@@ -20,7 +20,7 @@ export default function OnChainReceive() {
onClick={() => {
navigate(-1);
}}
- icon={
}
+ icon={
}
/>
}
>
diff --git a/src/app/screens/Receive/index.tsx b/src/app/screens/Receive/index.tsx
index 5c15b18ec7..93d570097c 100644
--- a/src/app/screens/Receive/index.tsx
+++ b/src/app/screens/Receive/index.tsx
@@ -1,11 +1,12 @@
-import {
- CaretLeftIcon,
- CopyIcon,
-} from "@bitcoin-design/bitcoin-icons-react/outline";
import Container from "@components/Container";
import Header from "@components/Header";
import IconButton from "@components/IconButton";
-import { PopiconsBoltLine, PopiconsWithdrawalLine } from "@popicons/react";
+import {
+ PopiconsBoltLine,
+ PopiconsChevronLeftLine,
+ PopiconsCopyLine,
+ PopiconsWithdrawalLine,
+} from "@popicons/react";
import { useEffect, useState } from "react";
import { useTranslation } from "react-i18next";
import { useNavigate } from "react-router-dom";
@@ -49,7 +50,7 @@ function Receive() {
onClick={() => {
navigate(-1);
}}
- icon={
}
+ icon={
}
/>
}
>
@@ -106,7 +107,7 @@ function Receive() {
}}
>
{lightningAddress}
-
+
)}
@@ -116,9 +117,7 @@ function Receive() {
- }
+ icon={
}
onClick={() => {
navigate("/receive/invoice");
}}
@@ -126,9 +125,7 @@ function Receive() {
- }
+ icon={
}
onClick={() => {
navigate("/lnurlRedeem");
}}
diff --git a/src/app/screens/ReceiveInvoice/index.tsx b/src/app/screens/ReceiveInvoice/index.tsx
index 5460dc8472..a1799106d1 100644
--- a/src/app/screens/ReceiveInvoice/index.tsx
+++ b/src/app/screens/ReceiveInvoice/index.tsx
@@ -1,7 +1,3 @@
-import {
- CaretLeftIcon,
- CopyIcon,
-} from "@bitcoin-design/bitcoin-icons-react/outline";
import Button from "@components/Button";
import Container from "@components/Container";
import Header from "@components/Header";
@@ -9,6 +5,7 @@ import IconButton from "@components/IconButton";
import Loading from "@components/Loading";
import DualCurrencyField from "@components/form/DualCurrencyField";
import TextField from "@components/form/TextField";
+import { PopiconsChevronLeftLine, PopiconsCopyLine } from "@popicons/react";
import { useEffect, useRef, useState } from "react";
import Confetti from "react-confetti";
import { useTranslation } from "react-i18next";
@@ -161,7 +158,7 @@ function ReceiveInvoice() {
}
}
}}
- icon={
}
+ icon={
}
label={tCommon("actions.copy_invoice")}
primary
/>
@@ -221,7 +218,7 @@ function ReceiveInvoice() {
onClick={() => {
invoice ? setDefaults() : navigate(-1);
}}
- icon={
}
+ icon={
}
/>
}
>
diff --git a/src/app/screens/ScanQRCode/index.tsx b/src/app/screens/ScanQRCode/index.tsx
index 2e244bfbbd..3a16404aac 100644
--- a/src/app/screens/ScanQRCode/index.tsx
+++ b/src/app/screens/ScanQRCode/index.tsx
@@ -1,4 +1,4 @@
-import { CrossIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
+import { PopiconsXLine } from "@popicons/react";
import { useTranslation } from "react-i18next";
import { useLocation, useNavigate } from "react-router-dom";
import Container from "~/app/components/Container";
@@ -24,7 +24,7 @@ export default function ScanQRCode() {
{ replace: true }
)
}
- icon={
}
+ icon={
}
/>
}
>
diff --git a/src/app/screens/Send/index.tsx b/src/app/screens/Send/index.tsx
index 4d9943ab85..3cec8c95e2 100644
--- a/src/app/screens/Send/index.tsx
+++ b/src/app/screens/Send/index.tsx
@@ -1,9 +1,9 @@
-import { CaretLeftIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import Button from "@components/Button";
import Container from "@components/Container";
import Header from "@components/Header";
import IconButton from "@components/IconButton";
import TextField from "@components/form/TextField";
+import { PopiconsChevronLeftLine } from "@popicons/react";
import lightningPayReq from "bolt11";
import { useState } from "react";
import { useTranslation } from "react-i18next";
@@ -120,7 +120,7 @@ function Send() {
headerLeft={
navigate(-1)}
- icon={}
+ icon={}
/>
}
>
diff --git a/src/app/screens/SendToBitcoinAddress/index.tsx b/src/app/screens/SendToBitcoinAddress/index.tsx
index 867707193d..bc27586c85 100644
--- a/src/app/screens/SendToBitcoinAddress/index.tsx
+++ b/src/app/screens/SendToBitcoinAddress/index.tsx
@@ -1,13 +1,11 @@
-import {
- CaretLeftIcon,
- ExportIcon,
-} from "@bitcoin-design/bitcoin-icons-react/filled";
+import { PopiconsLinkExternalSolid } from "@popicons/react";
import Button from "@components/Button";
import ConfirmOrCancel from "@components/ConfirmOrCancel";
import Header from "@components/Header";
import IconButton from "@components/IconButton";
import DualCurrencyField from "@components/form/DualCurrencyField";
import { CreateSwapResponse } from "@getalby/sdk/dist/types";
+import { PopiconsChevronLeftLine } from "@popicons/react";
import React, { useEffect, useState } from "react";
import { useTranslation } from "react-i18next";
import Skeleton from "react-loading-skeleton";
@@ -219,7 +217,7 @@ function SendToBitcoinAddress() {
headerLeft={
navigate("/send")}
- icon={}
+ icon={}
/>
}
>
@@ -381,7 +379,7 @@ function SendToBitcoinAddress() {
target="_blank"
>
{t("view_on_explorer")}
-
+
{timeEstimateAlert}
diff --git a/src/app/screens/connectors/ConnectCommando/index.tsx b/src/app/screens/connectors/ConnectCommando/index.tsx
index d197e667bf..5babb487de 100644
--- a/src/app/screens/connectors/ConnectCommando/index.tsx
+++ b/src/app/screens/connectors/ConnectCommando/index.tsx
@@ -1,11 +1,11 @@
-import {
- CaretDownIcon,
- CaretUpIcon,
-} from "@bitcoin-design/bitcoin-icons-react/outline";
import ConnectorForm from "@components/ConnectorForm";
import TextField from "@components/form/TextField";
import ConnectionErrorToast from "@components/toasts/ConnectionErrorToast";
import * as secp256k1 from "@noble/secp256k1";
+import {
+ PopiconsChevronBottomLine,
+ PopiconsChevronTopLine,
+} from "@popicons/react";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import { useNavigate } from "react-router-dom";
@@ -161,12 +161,12 @@ export default function ConnectCommando() {
{showAdvanced ? (
<>
{tCommon("hide_advanced")}
-
+
>
) : (
<>
{tCommon("advanced")}
-
+
>
)}
diff --git a/src/app/screens/connectors/ConnectLnd/index.tsx b/src/app/screens/connectors/ConnectLnd/index.tsx
index 49d9ee708a..d60925e71d 100644
--- a/src/app/screens/connectors/ConnectLnd/index.tsx
+++ b/src/app/screens/connectors/ConnectLnd/index.tsx
@@ -1,8 +1,8 @@
-import { SendIcon } from "@bitcoin-design/bitcoin-icons-react/filled";
import CompanionDownloadInfo from "@components/CompanionDownloadInfo";
import ConnectorForm from "@components/ConnectorForm";
import TextField from "@components/form/TextField";
import ConnectionErrorToast from "@components/toasts/ConnectionErrorToast";
+import { PopiconsShareLine } from "@popicons/react";
import { useRef, useState } from "react";
import { Trans, useTranslation } from "react-i18next";
import { useNavigate } from "react-router-dom";
@@ -204,7 +204,7 @@ export default function ConnectLnd() {
if (hiddenFileInput?.current) hiddenFileInput.current.click();
}}
>
-
+