From 009e05fbed261926eb4cccba30e735250786a903 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ti=E1=BA=BFn=20Nguy=E1=BB=85n=20Kh=E1=BA=AFc?= Date: Thu, 21 Nov 2024 23:51:26 +1300 Subject: [PATCH] fix: vite static asset URL --- .changeset/few-eagles-know.md | 5 ++ packages/dot-connect/assets/imgs/ledger.svg | 7 --- packages/dot-connect/assets/imgs/nova.svg | 39 --------------- .../dot-connect/assets/imgs/polkadot-js.svg | 25 ---------- .../dot-connect/assets/imgs/subwallet.svg | 44 ---------------- packages/dot-connect/assets/imgs/talisman.svg | 45 ----------------- .../dot-connect/assets/imgs/walletconnect.svg | 16 ------ packages/dot-connect/package.json | 3 +- packages/dot-connect/src/utils.ts | 11 ++++ packages/dot-connect/src/wallets/ledger.ts | 19 ++++++- packages/dot-connect/src/wallets/nova.ts | 44 +++++++++++++++- .../dot-connect/src/wallets/polkadot-js.ts | 30 ++++++++++- packages/dot-connect/src/wallets/subwallet.ts | 49 +++++++++++++++++- packages/dot-connect/src/wallets/talisman.ts | 50 ++++++++++++++++++- .../dot-connect/src/wallets/walletconnect.ts | 21 +++++++- 15 files changed, 224 insertions(+), 184 deletions(-) create mode 100644 .changeset/few-eagles-know.md delete mode 100644 packages/dot-connect/assets/imgs/ledger.svg delete mode 100644 packages/dot-connect/assets/imgs/nova.svg delete mode 100644 packages/dot-connect/assets/imgs/polkadot-js.svg delete mode 100644 packages/dot-connect/assets/imgs/subwallet.svg delete mode 100644 packages/dot-connect/assets/imgs/talisman.svg delete mode 100644 packages/dot-connect/assets/imgs/walletconnect.svg diff --git a/.changeset/few-eagles-know.md b/.changeset/few-eagles-know.md new file mode 100644 index 0000000..e7a6076 --- /dev/null +++ b/.changeset/few-eagles-know.md @@ -0,0 +1,5 @@ +--- +"dot-connect": patch +--- + +Applied workaround for Vite static asset URL [bug](https://github.com/vitejs/vite/issues/8427). diff --git a/packages/dot-connect/assets/imgs/ledger.svg b/packages/dot-connect/assets/imgs/ledger.svg deleted file mode 100644 index 6e51195..0000000 --- a/packages/dot-connect/assets/imgs/ledger.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/packages/dot-connect/assets/imgs/nova.svg b/packages/dot-connect/assets/imgs/nova.svg deleted file mode 100644 index b672676..0000000 --- a/packages/dot-connect/assets/imgs/nova.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/packages/dot-connect/assets/imgs/polkadot-js.svg b/packages/dot-connect/assets/imgs/polkadot-js.svg deleted file mode 100644 index b3b7bc3..0000000 --- a/packages/dot-connect/assets/imgs/polkadot-js.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/packages/dot-connect/assets/imgs/subwallet.svg b/packages/dot-connect/assets/imgs/subwallet.svg deleted file mode 100644 index 668c42e..0000000 --- a/packages/dot-connect/assets/imgs/subwallet.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/packages/dot-connect/assets/imgs/talisman.svg b/packages/dot-connect/assets/imgs/talisman.svg deleted file mode 100644 index fdb6c94..0000000 --- a/packages/dot-connect/assets/imgs/talisman.svg +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/packages/dot-connect/assets/imgs/walletconnect.svg b/packages/dot-connect/assets/imgs/walletconnect.svg deleted file mode 100644 index 0edcfed..0000000 --- a/packages/dot-connect/assets/imgs/walletconnect.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/packages/dot-connect/package.json b/packages/dot-connect/package.json index 1844891..189adc8 100644 --- a/packages/dot-connect/package.json +++ b/packages/dot-connect/package.json @@ -26,8 +26,7 @@ "./font.css": "./assets/fonts/index.css" }, "files": [ - "build", - "assets" + "build" ], "scripts": { "dev": "tsc --build --watch", diff --git a/packages/dot-connect/src/utils.ts b/packages/dot-connect/src/utils.ts index 3f63a80..2468534 100644 --- a/packages/dot-connect/src/utils.ts +++ b/packages/dot-connect/src/utils.ts @@ -1,4 +1,5 @@ import type { InjectedWalletInfo, Platform } from "./wallets/types.js"; +import type { HTMLTemplateResult } from "lit"; export function logAndThrow(error: unknown): never { console.error(error); @@ -60,3 +61,13 @@ export function getDownloadUrl(walletInfo: InjectedWalletInfo) { return { platform, url }; } + +// TODO: replace with `new URL("logo.svg", import.meta.url)` +// once Vite fixes https://github.com/vitejs/vite/issues/8427 +export function urlFromSvg(svg: HTMLTemplateResult) { + return new URL( + URL.createObjectURL( + new Blob([svg.strings.join()], { type: "image/svg+xml" }), + ), + ); +} diff --git a/packages/dot-connect/src/wallets/ledger.ts b/packages/dot-connect/src/wallets/ledger.ts index cbca744..f32ae3e 100644 --- a/packages/dot-connect/src/wallets/ledger.ts +++ b/packages/dot-connect/src/wallets/ledger.ts @@ -1,7 +1,24 @@ +import { urlFromSvg } from "../utils.js"; import type { BaseWalletInfo, WalletConfig } from "./types.js"; +import { html } from "lit"; export const ledger: WalletConfig = { selector: (wallet) => wallet.id === "ledger", name: "Ledger", - logo: new URL("../../assets/imgs/ledger.svg", import.meta.url), + logo: urlFromSvg( + html` + + + + `, + ), }; diff --git a/packages/dot-connect/src/wallets/nova.ts b/packages/dot-connect/src/wallets/nova.ts index 6f1fc50..3540da5 100644 --- a/packages/dot-connect/src/wallets/nova.ts +++ b/packages/dot-connect/src/wallets/nova.ts @@ -1,11 +1,53 @@ +import { urlFromSvg } from "../utils.js"; import type { InjectedWalletInfo, WalletConfig } from "./types.js"; import type { Wallet } from "@reactive-dot/core/wallets.js"; +import { html } from "lit"; export const nova: WalletConfig = { selector: (_wallet: Wallet) => false, name: "Nova Wallet", platforms: ["ios", "android"], - logo: new URL("../../assets/imgs/nova.svg", import.meta.url), + logo: urlFromSvg( + html` + + + + + + + + + + + + `, + ), downloadUrl: { ios: "https://apps.apple.com/us/app/nova-polkadot-wallet/id1597119355", android: diff --git a/packages/dot-connect/src/wallets/polkadot-js.ts b/packages/dot-connect/src/wallets/polkadot-js.ts index a551fcb..224b41c 100644 --- a/packages/dot-connect/src/wallets/polkadot-js.ts +++ b/packages/dot-connect/src/wallets/polkadot-js.ts @@ -1,11 +1,39 @@ +import { urlFromSvg } from "../utils.js"; import type { InjectedWalletInfo, WalletConfig } from "./types.js"; import type { Wallet } from "@reactive-dot/core/wallets.js"; +import { html } from "lit"; export const polkadotJs: WalletConfig = { selector: (wallet: Wallet) => wallet.id === "injected/polkadot-js", name: "Polkadot{.js}", platforms: ["chrome", "firefox"], - logo: new URL("../../assets/imgs/polkadot-js.svg", import.meta.url), + logo: urlFromSvg( + html` + + + + + + + + `, + ), downloadUrl: { chrome: "https://chrome.google.com/webstore/detail/polkadot%7Bjs%7D-extension/mopnmbcafieddcagagdcbnhejhlodfdd", diff --git a/packages/dot-connect/src/wallets/subwallet.ts b/packages/dot-connect/src/wallets/subwallet.ts index f44c70c..f8d066e 100644 --- a/packages/dot-connect/src/wallets/subwallet.ts +++ b/packages/dot-connect/src/wallets/subwallet.ts @@ -1,11 +1,58 @@ +import { urlFromSvg } from "../utils.js"; import type { InjectedWalletInfo, WalletConfig } from "./types.js"; import type { Wallet } from "@reactive-dot/core/wallets.js"; +import { html } from "lit"; export const subWallet: WalletConfig = { selector: (wallet: Wallet) => wallet.id === "injected/subwallet-js", name: "SubWallet", platforms: ["chrome", "firefox", "ios", "android"], - logo: new URL("../../assets/imgs/subwallet.svg", import.meta.url), + logo: urlFromSvg( + html` + + + + + + + + + + + + + + + + + + + `, + ), downloadUrl: { chrome: "https://chrome.google.com/webstore/detail/subwallet-polkadot-extens/onhogfjeacnfoofkfgppdlbmlmnplgbn", diff --git a/packages/dot-connect/src/wallets/talisman.ts b/packages/dot-connect/src/wallets/talisman.ts index be17a53..00e378b 100644 --- a/packages/dot-connect/src/wallets/talisman.ts +++ b/packages/dot-connect/src/wallets/talisman.ts @@ -1,10 +1,58 @@ +import { urlFromSvg } from "../utils.js"; import type { InjectedWalletInfo, WalletConfig } from "./types.js"; import type { Wallet } from "@reactive-dot/core/wallets.js"; +import { html } from "lit"; export const talisman: WalletConfig = { selector: (wallet: Wallet) => wallet.id === "injected/talisman", name: "Talisman", platforms: ["chrome", "firefox"], - logo: new URL("../../assets/imgs/talisman.svg", import.meta.url), + logo: urlFromSvg( + html` + + + + + + + + + + + + `, + ), downloadUrl: "https://talisman.xyz/download", }; diff --git a/packages/dot-connect/src/wallets/walletconnect.ts b/packages/dot-connect/src/wallets/walletconnect.ts index aa86807..3c8cf2f 100644 --- a/packages/dot-connect/src/wallets/walletconnect.ts +++ b/packages/dot-connect/src/wallets/walletconnect.ts @@ -1,7 +1,26 @@ +import { urlFromSvg } from "../utils.js"; import type { BaseWalletInfo, WalletConfig } from "./types.js"; +import { html } from "lit"; export const walletConnect: WalletConfig = { selector: (wallet) => wallet.id === "wallet-connect", name: "WalletConnect", - logo: new URL("../../assets/imgs/walletconnect.svg", import.meta.url), + logo: urlFromSvg( + html` + + + + + + + + `, + ), };