summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/wallet/QrReader.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-webextension/src/wallet/QrReader.tsx')
-rw-r--r--packages/taler-wallet-webextension/src/wallet/QrReader.tsx26
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>