diff --git a/android/app/build.gradle b/android/app/build.gradle index 8156462e..aac04388 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "com.mutinywallet.mutinywallet" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 54 - versionName "0.6.2" + versionCode 55 + versionName "0.6.3" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/ios/App/App.xcodeproj/project.pbxproj b/ios/App/App.xcodeproj/project.pbxproj index 1c95c851..c048ffab 100644 --- a/ios/App/App.xcodeproj/project.pbxproj +++ b/ios/App/App.xcodeproj/project.pbxproj @@ -360,7 +360,7 @@ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance"; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 1.6.2; + MARKETING_VERSION = 1.6.3; OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\""; PRODUCT_BUNDLE_IDENTIFIER = com.mutinywallet.mutiny; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -387,7 +387,7 @@ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance"; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 1.6.2; + MARKETING_VERSION = 1.6.3; PRODUCT_BUNDLE_IDENTIFIER = com.mutinywallet.mutiny; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/package.json b/package.json index 193ed783..efb02a13 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mutiny-wallet", - "version": "0.6.0", + "version": "0.6.3", "license": "MIT", "packageManager": "pnpm@8.6.6", "scripts": { @@ -54,7 +54,7 @@ "@capacitor/toast": "^5.0.6", "@kobalte/core": "^0.12.6", "@kobalte/tailwindcss": "^0.9.0", - "@mutinywallet/mutiny-wasm": "0.6.2", + "@mutinywallet/mutiny-wasm": "0.6.3", "@modular-forms/solid": "^0.20.0", "@solid-primitives/upload": "^0.0.117", "@solidjs/meta": "^0.29.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 20d8b8dd..f3353e32 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,8 +51,8 @@ dependencies: specifier: ^0.20.0 version: 0.20.0(solid-js@1.8.16) '@mutinywallet/mutiny-wasm': - specifier: 0.6.2 - version: 0.6.2 + specifier: 0.6.3 + version: 0.6.3 '@solid-primitives/upload': specifier: ^0.0.117 version: 0.0.117(solid-js@1.8.16) @@ -2085,8 +2085,8 @@ packages: solid-js: 1.8.16 dev: false - /@mutinywallet/mutiny-wasm@0.6.2: - resolution: {integrity: sha512-+49zGMM4o//Tjsniz7KyH3h/+2BckEGgCT30CQ4tX2VOz2r1omxABDD2OJ5Wl48fVB0I8h69q0i8ugm1ruTHBQ==} + /@mutinywallet/mutiny-wasm@0.6.3: + resolution: {integrity: sha512-mHcOoawa2HyYL1ssA0aOGN1IUVFmitiioe6XiwQiBPFtW3vE7Zg824xBZYPKnlf4jqdK1MSyRGaFoSPfe5QqCQ==} dev: false /@nodelib/fs.scandir@2.1.5: @@ -7567,6 +7567,7 @@ packages: /workbox-google-analytics@7.0.0: resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} + deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained dependencies: workbox-background-sync: 7.0.0 workbox-core: 7.0.0 diff --git a/src/components/layout/TextField.tsx b/src/components/layout/TextField.tsx index afc80859..730621f6 100644 --- a/src/components/layout/TextField.tsx +++ b/src/components/layout/TextField.tsx @@ -14,6 +14,7 @@ export type TextFieldProps = { required?: boolean; multiline?: boolean; disabled?: boolean; + autoCapitalize?: string; ref: (element: HTMLInputElement | HTMLTextAreaElement) => void; onInput: JSX.EventHandler< HTMLInputElement | HTMLTextAreaElement, @@ -32,7 +33,8 @@ export function TextField(props: TextFieldProps) { "ref", "onInput", "onChange", - "onBlur" + "onBlur", + "autoCapitalize" ]); return ( } > - + { + // @ts-expect-error autocapitalize isn't in the props for some reason + + } {props.error} diff --git a/src/routes/Feedback.tsx b/src/routes/Feedback.tsx index 4b567c59..ab4f3506 100644 --- a/src/routes/Feedback.tsx +++ b/src/routes/Feedback.tsx @@ -8,6 +8,7 @@ import { BackPop, Button, ButtonLink, + DefaultMain, LargeHeader, NiceP, TextField, @@ -172,7 +173,7 @@ export function Feedback() { const setupError = state?.setupError || undefined; return ( - + @@ -209,6 +210,6 @@ export function Feedback() { - + ); } diff --git a/src/routes/settings/LightningAddress.tsx b/src/routes/settings/LightningAddress.tsx index 525974c4..1ba0794e 100644 --- a/src/routes/settings/LightningAddress.tsx +++ b/src/routes/settings/LightningAddress.tsx @@ -1,6 +1,7 @@ import { Capacitor } from "@capacitor/core"; import { createForm, + custom, required, reset, SubmitHandler @@ -40,6 +41,12 @@ type HermesForm = { name: string; }; +const validateLowerCase = (value?: string) => { + if (!value) return false; + const valid = /^[a-z0-9-_.]+$/; + return valid.test(value); +}; + // todo(paul) put this somewhere else function HermesForm(props: { onSubmit: (name: string) => void }) { const [state, _] = useMegaStore(); @@ -62,7 +69,7 @@ function HermesForm(props: { onSubmit: (name: string) => void }) { setSuccess(""); setError(undefined); try { - const name = f.name.trim(); + const name = f.name.trim().toLowerCase(); const available = await state.mutiny_wallet?.check_available_lnurl_name(name); if (!available) { @@ -73,15 +80,12 @@ function HermesForm(props: { onSubmit: (name: string) => void }) { const formattedName = `${name}@${hermesDomain}`; - const existingProfile = state.mutiny_wallet?.get_nostr_profile(); - const _ = await state.mutiny_wallet?.edit_nostr_profile( undefined, undefined, // lnurl formattedName, - // nip05 if they don't have one - existingProfile?.nip05 ? undefined : formattedName + undefined ); reset(nameForm); props.onSubmit(name); @@ -94,19 +98,26 @@ function HermesForm(props: { onSubmit: (name: string) => void }) { return (
- + {(field, props) => (
-
+
@{hermesDomain}