aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/popupEntryPoint.tsx
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2022-03-25 16:57:27 -0300
committerSebastian <sebasjm@gmail.com>2022-03-25 16:58:00 -0300
commitddfb40e50cef0abddc7690b23562b1ca5aeb3fdd (patch)
tree231427a713e86b5fbdcdbc8cbcfc8b6c00392170 /packages/taler-wallet-webextension/src/popupEntryPoint.tsx
parent00fb648269c166c4995b38fe640748834fac7b18 (diff)
downloadwallet-core-ddfb40e50cef0abddc7690b23562b1ca5aeb3fdd.tar.xz
new dev environment
Diffstat (limited to 'packages/taler-wallet-webextension/src/popupEntryPoint.tsx')
-rw-r--r--packages/taler-wallet-webextension/src/popupEntryPoint.tsx186
1 files changed, 14 insertions, 172 deletions
diff --git a/packages/taler-wallet-webextension/src/popupEntryPoint.tsx b/packages/taler-wallet-webextension/src/popupEntryPoint.tsx
index dfb12666b..d68918f7f 100644
--- a/packages/taler-wallet-webextension/src/popupEntryPoint.tsx
+++ b/packages/taler-wallet-webextension/src/popupEntryPoint.tsx
@@ -21,29 +21,23 @@
*/
import { setupI18n } from "@gnu-taler/taler-util";
-import { createHashHistory } from "history";
-import { Fragment, h, render, VNode } from "preact";
-import Router, { route, Route } from "preact-router";
-import { Match } from "preact-router/match";
-import { useEffect, useState } from "preact/hooks";
-import PendingTransactions from "./components/PendingTransactions";
-import { PopupBox } from "./components/styled";
-import { DevContextProvider } from "./context/devContext";
-import { IoCProviderForRuntime } from "./context/iocContext";
-import {
- TranslationProvider,
- useTranslationContext,
-} from "./context/translation";
-import { useTalerActionURL } from "./hooks/useTalerActionURL";
+import { Fragment, h, render } from "preact";
import { strings } from "./i18n/strings";
-import { Pages, PopupNavBar } from "./NavigationBar";
-import { platform, setupPlatform } from "./platform/api";
+import { setupPlatform } from "./platform/api";
import chromeAPI from "./platform/chrome";
import firefoxAPI from "./platform/firefox";
-import { BalancePage } from "./popup/BalancePage";
-import { TalerActionFound } from "./popup/TalerActionFound";
-import { BackupPage } from "./wallet/BackupPage";
-import { ProviderDetailPage } from "./wallet/ProviderDetailPage";
+import { Application } from "./popup/Application";
+
+//FIXME: create different entry point for any platform instead of
+//switching in runtime
+const isFirefox = typeof (window as any)["InstallTrigger"] !== "undefined";
+if (isFirefox) {
+ console.log("Wallet setup for Firefox API");
+ setupPlatform(firefoxAPI);
+} else {
+ console.log("Wallet setup for Chrome API");
+ setupPlatform(chromeAPI);
+}
function main(): void {
try {
@@ -62,160 +56,8 @@ function main(): void {
setupI18n("en", strings);
-//FIXME: create different entry point for any platform instead of
-//switching in runtime
-const isFirefox = typeof (window as any)["InstallTrigger"] !== "undefined";
-if (isFirefox) {
- console.log("Wallet setup for Firefox API");
- setupPlatform(firefoxAPI);
-} else {
- console.log("Wallet setup for Chrome API");
- setupPlatform(chromeAPI);
-}
-
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", main);
} else {
main();
}
-
-function CheckTalerActionComponent(): VNode {
- const [talerActionUrl] = useTalerActionURL();
-
- useEffect(() => {
- if (talerActionUrl)
- route(Pages.cta.replace(":action", encodeURIComponent(talerActionUrl)));
- }, [talerActionUrl]);
-
- return <Fragment />;
-}
-
-function Application(): VNode {
- const hash_history = createHashHistory();
- return (
- <TranslationProvider>
- <DevContextProvider>
- {({ devMode }: { devMode: boolean }) => (
- <IoCProviderForRuntime>
- <PendingTransactions
- goToTransaction={(txId: string) =>
- route(Pages.balance_transaction.replace(":tid", txId))
- }
- />
- <Match>
- {({ path }: { path: string }) => <PopupNavBar path={path} />}
- </Match>
- <CheckTalerActionComponent />
- <PopupBox devMode={devMode}>
- <Router history={hash_history}>
- <Route
- path={Pages.balance}
- component={BalancePage}
- goToWalletManualWithdraw={() =>
- route(
- Pages.balance_manual_withdraw.replace(":currency?", ""),
- )
- }
- goToWalletDeposit={(currency: string) =>
- route(Pages.balance_deposit.replace(":currency", currency))
- }
- goToWalletHistory={(currency: string) =>
- route(Pages.balance_history.replace(":currency?", currency))
- }
- />
-
- <Route
- path={Pages.cta}
- component={function Action({ action }: { action: string }) {
- const [, setDismissed] = useTalerActionURL();
-
- return (
- <TalerActionFound
- url={decodeURIComponent(action)}
- onDismiss={() => {
- setDismissed(true);
- route(Pages.balance);
- }}
- />
- );
- }}
- />
-
- <Route
- path={Pages.backup}
- component={BackupPage}
- onAddProvider={() => {
- route(Pages.backup_provider_add);
- }}
- />
- <Route
- path={Pages.backup_provider_detail}
- component={ProviderDetailPage}
- onBack={() => {
- route(Pages.backup);
- }}
- />
-
- <Route
- path={Pages.balance_transaction}
- component={RedirectToWalletPage}
- />
- <Route
- path={Pages.balance_manual_withdraw}
- component={RedirectToWalletPage}
- />
- <Route
- path={Pages.balance_deposit}
- component={RedirectToWalletPage}
- />
- <Route
- path={Pages.balance_history}
- component={RedirectToWalletPage}
- />
- <Route
- path={Pages.backup_provider_add}
- component={RedirectToWalletPage}
- />
- <Route path={Pages.settings} component={RedirectToWalletPage} />
- <Route
- path={Pages.settings_exchange_add}
- component={RedirectToWalletPage}
- />
- <Route path={Pages.dev} component={RedirectToWalletPage} />
-
- <Route default component={Redirect} to={Pages.balance} />
- </Router>
- </PopupBox>
- </IoCProviderForRuntime>
- )}
- </DevContextProvider>
- </TranslationProvider>
- );
-}
-
-function RedirectToWalletPage(): VNode {
- const page = (document.location.hash || "#/").replace("#", "");
- const [showText, setShowText] = useState(false);
- useEffect(() => {
- platform.openWalletPageFromPopup(page);
- setTimeout(() => {
- setShowText(true);
- }, 250);
- });
- const { i18n } = useTranslationContext();
- if (!showText) return <Fragment />;
- return (
- <span>
- <i18n.Translate>
- this popup is being closed and you are being redirected to {page}
- </i18n.Translate>
- </span>
- );
-}
-
-function Redirect({ to }: { to: string }): null {
- useEffect(() => {
- route(to, true);
- });
- return null;
-}