aboutsummaryrefslogtreecommitdiff
path: root/packages/demobank-ui/src/utils.ts
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2022-12-07 09:29:36 -0300
committerSebastian <sebasjm@gmail.com>2022-12-07 16:08:14 -0300
commit54c8d0db31851e9dd0667da77b119994dee38770 (patch)
treeb42f8428e06144b448b3bb99adc343888f64acbf /packages/demobank-ui/src/utils.ts
parentbb0955d89c32471fb228326e96a721fcd346d0d1 (diff)
downloadwallet-core-54c8d0db31851e9dd0667da77b119994dee38770.tar.xz
no-fix: move out useBackend hook
Diffstat (limited to 'packages/demobank-ui/src/utils.ts')
-rw-r--r--packages/demobank-ui/src/utils.ts49
1 files changed, 49 insertions, 0 deletions
diff --git a/packages/demobank-ui/src/utils.ts b/packages/demobank-ui/src/utils.ts
new file mode 100644
index 000000000..d812f2ec9
--- /dev/null
+++ b/packages/demobank-ui/src/utils.ts
@@ -0,0 +1,49 @@
+
+/**
+ * Validate (the number part of) an amount. If needed,
+ * replace comma with a dot. Returns 'false' whenever
+ * the input is invalid, the valid amount otherwise.
+ */
+export function validateAmount(maybeAmount: string): any {
+ const amountRegex = "^[0-9]+(.[0-9]+)?$";
+ if (!maybeAmount) {
+ console.log(`Entered amount (${maybeAmount}) mismatched <input> pattern.`);
+ return;
+ }
+ if (typeof maybeAmount !== "undefined" || maybeAmount !== "") {
+ console.log(`Maybe valid amount: ${maybeAmount}`);
+ // tolerating comma instead of point.
+ const re = RegExp(amountRegex);
+ if (!re.test(maybeAmount)) {
+ console.log(`Not using invalid amount '${maybeAmount}'.`);
+ return false;
+ }
+ }
+ return maybeAmount;
+}
+
+/**
+ * Extract IBAN from a Payto URI.
+ */
+export function getIbanFromPayto(url: string): string {
+ const pathSplit = new URL(url).pathname.split("/");
+ let lastIndex = pathSplit.length - 1;
+ // Happens if the path ends with "/".
+ if (pathSplit[lastIndex] === "") lastIndex--;
+ const iban = pathSplit[lastIndex];
+ return iban;
+}
+
+export function getBankBackendBaseUrl(): string {
+ const overrideUrl = localStorage.getItem("bank-base-url");
+ if (overrideUrl) {
+ console.log(
+ `using bank base URL ${overrideUrl} (override via bank-base-url localStorage)`,
+ );
+ return overrideUrl;
+ }
+ const maybeRootPath = "https://bank.demo.taler.net/demobanks/default/";
+ if (!maybeRootPath.endsWith("/")) return `${maybeRootPath}/`;
+ console.log(`using bank base URL (${maybeRootPath})`);
+ return maybeRootPath;
+}