mirror of
https://github.com/aljazceru/mutiny-web.git
synced 2026-02-01 04:24:32 +01:00
add check-types command and fix type errors
This commit is contained in:
38
package.json
38
package.json
@@ -8,55 +8,55 @@
|
||||
"host": "solid-start dev --host",
|
||||
"build": "solid-start build && node insertHead.js",
|
||||
"start": "solid-start start",
|
||||
"lint": "eslint src --ext .ts,.tsx,.js",
|
||||
"check-types": "tsc --noemit",
|
||||
"eslint": "eslint src",
|
||||
"lint": "pnpm run eslint && pnpm run check-types",
|
||||
"format": "npx prettier --write \"src/**/*.{ts,tsx,js,jsx,json,css,scss,md}\""
|
||||
},
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
"@capacitor/assets": "^2.0.4",
|
||||
"@capacitor/cli": "^5.2.1",
|
||||
"@playwright/test": "^1.35.1",
|
||||
"@types/node": "^18.16.19",
|
||||
"@typescript-eslint/eslint-plugin": "^5.61.0",
|
||||
"@typescript-eslint/parser": "^5.61.0",
|
||||
"@capacitor/cli": "^5.2.2",
|
||||
"@playwright/test": "^1.36.2",
|
||||
"@types/node": "^18.17.1",
|
||||
"@typescript-eslint/eslint-plugin": "^6.2.0",
|
||||
"@typescript-eslint/parser": "^6.2.0",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"esbuild": "^0.14.54",
|
||||
"eslint": "^8.44.0",
|
||||
"eslint": "^8.46.0",
|
||||
"eslint-import-resolver-typescript": "2.7.1",
|
||||
"eslint-plugin-import": "2.27.5",
|
||||
"eslint-plugin-prettier": "4.2.1",
|
||||
"eslint-plugin-solid": "0.11.0",
|
||||
"postcss": "^8.4.25",
|
||||
"postcss": "^8.4.27",
|
||||
"prettier": "^2.8.8",
|
||||
"solid-start-node": "^0.2.26",
|
||||
"tailwindcss": "^3.3.2",
|
||||
"typescript": "^4.9.5",
|
||||
"vite": "^4.4.2",
|
||||
"solid-start-node": "^0.2.29",
|
||||
"tailwindcss": "^3.3.3",
|
||||
"typescript": "^5.1.6",
|
||||
"vite": "^4.4.7",
|
||||
"vite-plugin-pwa": "^0.14.7",
|
||||
"vite-plugin-wasm": "^3.2.2",
|
||||
"workbox-window": "^6.6.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@capacitor/android": "^5.2.1",
|
||||
"@capacitor/android": "^5.2.2",
|
||||
"@capacitor/clipboard": "^5.0.6",
|
||||
"@capacitor/core": "^5.2.1",
|
||||
"@capacitor/core": "^5.2.2",
|
||||
"@kobalte/core": "^0.9.8",
|
||||
"@kobalte/tailwindcss": "^0.5.0",
|
||||
"@modular-forms/solid": "^0.18.0",
|
||||
"@modular-forms/solid": "^0.18.1",
|
||||
"@mutinywallet/barcode-scanner": "5.0.0-beta.3",
|
||||
"@mutinywallet/mutiny-wasm": "0.4.6",
|
||||
"@mutinywallet/waila-wasm": "^0.2.1",
|
||||
"@solid-primitives/upload": "^0.0.111",
|
||||
"@solidjs/meta": "^0.28.5",
|
||||
"@solidjs/router": "^0.8.2",
|
||||
"@thisbeyond/solid-select": "^0.14.0",
|
||||
"class-variance-authority": "^0.4.0",
|
||||
"i18next": "^22.5.1",
|
||||
"i18next-browser-languagedetector": "^7.1.0",
|
||||
"qr-scanner": "^1.4.2",
|
||||
"solid-js": "^1.7.7",
|
||||
"solid-js": "^1.7.8",
|
||||
"solid-qr-code": "^0.0.8",
|
||||
"solid-start": "^0.2.26",
|
||||
"solid-start": "^0.2.29",
|
||||
"undici": "^5.22.1"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
1904
pnpm-lock.yaml
generated
1904
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -21,8 +21,8 @@ import { DIALOG_CONTENT, DIALOG_POSITIONER } from "~/styles/dialogs";
|
||||
import { InfoBox } from "./InfoBox";
|
||||
import { Network } from "~/logic/mutinyWalletSetup";
|
||||
import { FeesModal } from "./MoreInfoModal";
|
||||
import { useNavigate } from "@solidjs/router";
|
||||
import { useI18n } from "~/i18n/context";
|
||||
import { useNavigate } from "solid-start";
|
||||
|
||||
const FIXED_AMOUNTS_SATS = [
|
||||
{ label: "10k", amount: "10000" },
|
||||
@@ -70,7 +70,7 @@ function SingleDigitButton(props: {
|
||||
fiat: boolean;
|
||||
}) {
|
||||
const i18n = useI18n();
|
||||
let holdTimer: number;
|
||||
let holdTimer: ReturnType<typeof setTimeout> | undefined;
|
||||
const holdThreshold = 500;
|
||||
|
||||
function onHold() {
|
||||
|
||||
@@ -2,12 +2,11 @@ import { onCleanup, onMount } from "solid-js";
|
||||
import {
|
||||
BarcodeScanner,
|
||||
BarcodeFormat,
|
||||
CameraPermissionState,
|
||||
CameraPermissionType,
|
||||
CameraPluginPermissions,
|
||||
PermissionStates
|
||||
PermissionStates,
|
||||
ScanResult
|
||||
} from "@mutinywallet/barcode-scanner";
|
||||
import QrScanner from "qr-scanner";
|
||||
import { Capacitor } from "@capacitor/core";
|
||||
|
||||
export default function Scanner(props: { onResult: (result: string) => void }) {
|
||||
let container: HTMLVideoElement | undefined;
|
||||
@@ -22,7 +21,7 @@ export default function Scanner(props: { onResult: (result: string) => void }) {
|
||||
const permissions: PermissionStates =
|
||||
await BarcodeScanner.checkPermissions();
|
||||
if (permissions.camera === "granted") {
|
||||
const callback = (result: ScanResult, err?: any) => {
|
||||
const callback = (result: ScanResult, err?: unknown) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
return;
|
||||
@@ -33,7 +32,7 @@ export default function Scanner(props: { onResult: (result: string) => void }) {
|
||||
}
|
||||
};
|
||||
await BarcodeScanner.start(
|
||||
{ targetedFormats: [BarcodeFormat.QR_CODE] },
|
||||
{ formats: [BarcodeFormat.QR_CODE] },
|
||||
callback
|
||||
);
|
||||
} else if (permissions.camera === "prompt") {
|
||||
|
||||
@@ -29,8 +29,7 @@ export default {
|
||||
"A lightning setup fee will be charged if paid over lightning.",
|
||||
too_big_for_beta:
|
||||
"That's a lot of sats. You do know Mutiny Wallet is still in beta, yeah?",
|
||||
more_than_21m:
|
||||
"There are only 21 million bitcoin.",
|
||||
more_than_21m: "There are only 21 million bitcoin.",
|
||||
set_amount: "Set amount",
|
||||
max: "MAX"
|
||||
}
|
||||
|
||||
@@ -42,14 +42,33 @@ export function getExistingSettings(): MutinyWalletSettingStrings {
|
||||
localStorage.getItem("MUTINY_SETTINGS_scorer") ||
|
||||
import.meta.env.VITE_SCORER;
|
||||
|
||||
return { network, proxy, esplora, rgs, lsp, auth, subscriptions, storage, scorer };
|
||||
return {
|
||||
network,
|
||||
proxy,
|
||||
esplora,
|
||||
rgs,
|
||||
lsp,
|
||||
auth,
|
||||
subscriptions,
|
||||
storage,
|
||||
scorer
|
||||
};
|
||||
}
|
||||
|
||||
export async function setAndGetMutinySettings(
|
||||
settings?: MutinyWalletSettingStrings
|
||||
): Promise<MutinyWalletSettingStrings> {
|
||||
let { network, proxy, esplora, rgs, lsp, auth, subscriptions, storage, scorer } =
|
||||
settings || {};
|
||||
let {
|
||||
network,
|
||||
proxy,
|
||||
esplora,
|
||||
rgs,
|
||||
lsp,
|
||||
auth,
|
||||
subscriptions,
|
||||
storage,
|
||||
scorer
|
||||
} = settings || {};
|
||||
|
||||
const existingSettings = getExistingSettings();
|
||||
|
||||
@@ -98,7 +117,7 @@ export async function setAndGetMutinySettings(
|
||||
auth,
|
||||
subscriptions,
|
||||
storage,
|
||||
scorer
|
||||
scorer
|
||||
};
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
@@ -152,8 +171,17 @@ export async function setupMutinyWallet(
|
||||
password?: string
|
||||
): Promise<MutinyWallet> {
|
||||
console.log("Starting setup...");
|
||||
const { network, proxy, esplora, rgs, lsp, auth, subscriptions, storage, scorer } =
|
||||
await setAndGetMutinySettings(settings);
|
||||
const {
|
||||
network,
|
||||
proxy,
|
||||
esplora,
|
||||
rgs,
|
||||
lsp,
|
||||
auth,
|
||||
subscriptions,
|
||||
storage,
|
||||
scorer
|
||||
} = await setAndGetMutinySettings(settings);
|
||||
console.log("Initializing Mutiny Manager");
|
||||
console.log("Using network", network);
|
||||
console.log("Using proxy", proxy);
|
||||
|
||||
@@ -382,9 +382,10 @@ export default function Redshift() {
|
||||
return (await state.mutiny_wallet?.list_utxos()) as UtxoItem[];
|
||||
};
|
||||
|
||||
// TODO: FIXME: this is old code needs to be revisited!
|
||||
const getChannels = async () => {
|
||||
console.log("Getting channels");
|
||||
await state.mutiny_wallet?.sync();
|
||||
// await state.mutiny_wallet?.sync();
|
||||
const channels =
|
||||
(await state.mutiny_wallet?.list_channels()) as Promise<
|
||||
MutinyChannel[]
|
||||
|
||||
@@ -29,9 +29,7 @@ export default function Scanner() {
|
||||
let text;
|
||||
|
||||
if (Capacitor.isNativePlatform()) {
|
||||
const { value } = await Clipboard.read({
|
||||
type: "string"
|
||||
});
|
||||
const { value } = await Clipboard.read();
|
||||
text = value;
|
||||
} else {
|
||||
text = await navigator.clipboard.readText();
|
||||
|
||||
@@ -391,9 +391,7 @@ export default function Send() {
|
||||
let text;
|
||||
|
||||
if (Capacitor.isNativePlatform()) {
|
||||
const { value } = await Clipboard.read({
|
||||
type: "string"
|
||||
});
|
||||
const { value } = await Clipboard.read();
|
||||
text = value;
|
||||
} else {
|
||||
if (!navigator.clipboard.readText) {
|
||||
|
||||
@@ -12,11 +12,11 @@ export default function NotFound() {
|
||||
const i18n = useI18n();
|
||||
return (
|
||||
<SafeArea>
|
||||
<Title>{i18n.t("not_found.title")}</Title>
|
||||
<Title>{i18n.t("error.not_found.title")}</Title>
|
||||
<HttpStatusCode code={404} />
|
||||
<DefaultMain>
|
||||
<LargeHeader>{i18n.t("not_found.title")}</LargeHeader>
|
||||
<p>{i18n.t("not_found.wtf_paul")}</p>
|
||||
<LargeHeader>{i18n.t("error.not_found.title")}</LargeHeader>
|
||||
<p>{i18n.t("error.not_found.wtf_paul")}</p>
|
||||
<div class="h-full" />
|
||||
<ButtonLink href="/" intent="red">
|
||||
{i18n.t("common.dangit")}
|
||||
|
||||
@@ -97,9 +97,7 @@ function TwelveWordsEntry() {
|
||||
let text;
|
||||
|
||||
if (Capacitor.isNativePlatform()) {
|
||||
const { value } = await Clipboard.read({
|
||||
type: "string"
|
||||
});
|
||||
const { value } = await Clipboard.read();
|
||||
text = value;
|
||||
} else {
|
||||
if (!navigator.clipboard.readText) {
|
||||
|
||||
@@ -12,7 +12,7 @@ export const useCopy = ({ copiedTimeout = 2000 }: UseCopyProps = {}): [
|
||||
copied: Accessor<boolean>
|
||||
] => {
|
||||
const [copied, setCopied] = createSignal(false);
|
||||
let timeout: number;
|
||||
let timeout: ReturnType<typeof setTimeout> | undefined;
|
||||
const copy: CopyFn = async (text) => {
|
||||
if (Capacitor.isNativePlatform()) {
|
||||
await Clipboard.write({
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
{
|
||||
"include": [
|
||||
"global.d.ts",
|
||||
"src/**/*",
|
||||
"src/routes/**/*",
|
||||
"tailwind.config.cjs",
|
||||
".eslintrc.cjs"
|
||||
],
|
||||
"compilerOptions": {
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"esModuleInterop": true,
|
||||
@@ -15,10 +8,29 @@
|
||||
"jsxImportSource": "solid-js",
|
||||
"jsx": "preserve",
|
||||
"strict": true,
|
||||
"types": ["solid-start/env"],
|
||||
"types": ["solid-start/env", "node"],
|
||||
"baseUrl": "./",
|
||||
"paths": {
|
||||
"~/*": ["./src/*"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"skipLibCheck": true
|
||||
},
|
||||
"include": [
|
||||
"global.d.ts",
|
||||
"src/**/*",
|
||||
"src/routes/**/*",
|
||||
"tailwind.config.cjs",
|
||||
".eslintrc.cjs"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"./node_modules",
|
||||
"./node_modules/*",
|
||||
"./node_modules/**/*",
|
||||
"./node_modules/@types/node/index.d.ts",
|
||||
"node_modules/.pnpm/solid-js@1.7.7/node_modules/solid-js/types/*",
|
||||
"build",
|
||||
"dist",
|
||||
"public"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "Node",
|
||||
"allowSyntheticDefaultImports": true
|
||||
},
|
||||
"include": ["vite.config.ts"]
|
||||
}
|
||||
Reference in New Issue
Block a user