gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] 01/02: prevent link nav


From: gnunet
Subject: [taler-wallet-core] 01/02: prevent link nav
Date: Thu, 18 Aug 2022 17:48:15 +0200

This is an automated email from the git hooks/post-receive script.

sebasjm pushed a commit to branch master
in repository wallet-core.

commit 62713c7e71e96e1f6875adb691927c68dc37dea7
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Thu Aug 18 12:35:36 2022 -0300

    prevent link nav
---
 packages/taler-wallet-webextension/src/stories.tsx | 43 +++++++++++++++++++---
 1 file changed, 37 insertions(+), 6 deletions(-)

diff --git a/packages/taler-wallet-webextension/src/stories.tsx 
b/packages/taler-wallet-webextension/src/stories.tsx
index 9fe0ca4e..a032222a 100644
--- a/packages/taler-wallet-webextension/src/stories.tsx
+++ b/packages/taler-wallet-webextension/src/stories.tsx
@@ -22,6 +22,7 @@ import { setupI18n } from "@gnu-taler/taler-util";
 import { styled } from "@linaria/react";
 import {
   ComponentChild,
+  ComponentChildren,
   Fragment,
   FunctionComponent,
   h,
@@ -242,33 +243,63 @@ function ExampleList({
   );
 }
 
+/**
+ * Prevents the UI from redirecting and inform the dev
+ * where the <a /> should have redirected
+ * @returns
+ */
+function PreventLinkNavigation({
+  children,
+}: {
+  children: ComponentChildren;
+}): VNode {
+  return (
+    <div
+      onClick={(e) => {
+        let t: any = e.target;
+        do {
+          if (t.localName === "a" && t.getAttribute("href")) {
+            alert(`should navigate to: ${t.attributes.href.value}`);
+            e.stopImmediatePropagation();
+            e.stopPropagation();
+            e.preventDefault();
+            return false;
+          }
+        } while ((t = t.parentNode));
+      }}
+    >
+      {children}
+    </div>
+  );
+}
+
 function getWrapperForGroup(group: string): FunctionComponent {
   switch (group) {
     case "popup":
       return function PopupWrapper({ children }: any) {
         return (
-          <Fragment>
+          <PreventLinkNavigation>
             <PopupNavBar />
             <PopupBox>{children}</PopupBox>
-          </Fragment>
+          </PreventLinkNavigation>
         );
       };
     case "wallet":
       return function WalletWrapper({ children }: any) {
         return (
-          <Fragment>
+          <PreventLinkNavigation>
             <LogoHeader />
             <WalletNavBar />
             <WalletBox>{children}</WalletBox>
-          </Fragment>
+          </PreventLinkNavigation>
         );
       };
     case "cta":
       return function WalletWrapper({ children }: any) {
         return (
-          <Fragment>
+          <PreventLinkNavigation>
             <WalletBox>{children}</WalletBox>
-          </Fragment>
+          </PreventLinkNavigation>
         );
       };
     default:

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]