diff options
author | Sebastian <sebasjm@gmail.com> | 2023-05-02 09:56:44 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2023-05-02 09:57:12 -0300 |
commit | a957e61a9ca05c35e6f40697a343f8c815b6edea (patch) | |
tree | 54f8a83831c6949aabbc785c455c7264d8c086b4 /packages/taler-wallet-webextension/src/wallet/QrReader.tsx | |
parent | 23fca6d8677a1e88dad426691fbe1033595f16a3 (diff) | |
download | wallet-core-a957e61a9ca05c35e6f40697a343f8c815b6edea.tar.xz |
fix #7828
Diffstat (limited to 'packages/taler-wallet-webextension/src/wallet/QrReader.tsx')
-rw-r--r-- | packages/taler-wallet-webextension/src/wallet/QrReader.tsx | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/packages/taler-wallet-webextension/src/wallet/QrReader.tsx b/packages/taler-wallet-webextension/src/wallet/QrReader.tsx index 10916496c..81f879a62 100644 --- a/packages/taler-wallet-webextension/src/wallet/QrReader.tsx +++ b/packages/taler-wallet-webextension/src/wallet/QrReader.tsx @@ -15,22 +15,21 @@ */ import { - classifyTalerUri, - TalerUriType, + parseTalerUri, + TalerUri, TranslatedString, } from "@gnu-taler/taler-util"; -import { styled } from "@linaria/react"; +import { useTranslationContext } from "@gnu-taler/web-util/lib/index.browser"; import { css } from "@linaria/core"; +import { styled } from "@linaria/react"; +import jsQR, * as pr from "jsqr"; import { Fragment, h, VNode } from "preact"; -import { Ref, useEffect, useMemo, useRef, useState } from "preact/hooks"; -import { useTranslationContext } from "@gnu-taler/web-util/lib/index.browser"; +import { useRef, useState } from "preact/hooks"; import { Alert } from "../mui/Alert.js"; import { Button } from "../mui/Button.js"; -import { TextField } from "../mui/TextField.js"; -import jsQR, * as pr from "jsqr"; -import { InputFile } from "../mui/InputFile.js"; import { Grid } from "../mui/Grid.js"; -import { notDeepEqual } from "assert"; +import { InputFile } from "../mui/InputFile.js"; +import { TextField } from "../mui/TextField.js"; const QrCanvas = css` width: 80%; @@ -51,7 +50,7 @@ const Container = styled.div` `; export interface Props { - onDetected: (url: string) => void; + onDetected: (url: TalerUri) => void; } type XY = { x: number; y: number }; @@ -214,7 +213,7 @@ export function QrReaderPage({ onDetected }: Props): VNode { function onChange(str: string) { if (!!str) { - if (classifyTalerUri(str) === TalerUriType.Unknown) { + if (!parseTalerUri(str)) { setError( i18n.str`URI is not valid. Taler URI should start with "taler://"`, ); @@ -318,7 +317,10 @@ export function QrReaderPage({ onDetected }: Props): VNode { disabled={!!error} variant="contained" color="success" - onClick={async () => onDetected(value)} + onClick={async () => { + const uri = parseTalerUri(value); + if (uri) onDetected(uri); + }} > <i18n.Translate>Open</i18n.Translate> </Button> |