Skip to content

Commit

Permalink
fix: hide webview loader from swap module (#7001)
Browse files Browse the repository at this point in the history
chore: add changest

chore: clean up
  • Loading branch information
liviuciulinaru committed Jun 4, 2024
1 parent 383a5f4 commit 8736e68
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 36 deletions.
5 changes: 5 additions & 0 deletions .changeset/angry-bees-dress.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"ledger-live-desktop": patch
---

hide webview loader from swap module
Original file line number Diff line number Diff line change
@@ -1,8 +1,22 @@
/* eslint-disable react/prop-types */

import { addPendingOperation } from "@ledgerhq/live-common/account/index";
import { useToasts } from "@ledgerhq/live-common/notifications/ToastProvider/index";
import { TrackFunction } from "@ledgerhq/live-common/platform/tracking";
import {
ExchangeType,
UiHook,
useConfig,
useWalletAPIServer,
} from "@ledgerhq/live-common/wallet-api/react";
import trackingWrapper, { TrackingAPI } from "@ledgerhq/live-common/wallet-api/tracking";
import { AppManifest, WalletAPIServer } from "@ledgerhq/live-common/wallet-api/types";
import { useDappLogic } from "@ledgerhq/live-common/wallet-api/useDappLogic";
import { Operation } from "@ledgerhq/types-live";
import { ipcRenderer } from "electron";
import React, {
forwardRef,
RefObject,
forwardRef,
useCallback,
useEffect,
useMemo,
Expand All @@ -11,39 +25,25 @@ import React, {
} from "react";
import { useTranslation } from "react-i18next";
import { useDispatch, useSelector } from "react-redux";
import { Operation } from "@ledgerhq/types-live";
import { addPendingOperation } from "@ledgerhq/live-common/account/index";
import { useToasts } from "@ledgerhq/live-common/notifications/ToastProvider/index";
import {
useWalletAPIServer,
useConfig,
UiHook,
ExchangeType,
} from "@ledgerhq/live-common/wallet-api/react";
import { AppManifest, WalletAPIServer } from "@ledgerhq/live-common/wallet-api/types";
import trackingWrapper, { TrackingAPI } from "@ledgerhq/live-common/wallet-api/tracking";
import { openModal } from "../../actions/modals";
import { updateAccountWithUpdater } from "../../actions/accounts";
import { flattenAccountsSelector } from "../../reducers/accounts";
import BigSpinner from "../BigSpinner";
import { setDrawer } from "~/renderer/drawers/Provider";
import { OperationDetails } from "~/renderer/drawers/OperationDetails";
import SelectAccountAndCurrencyDrawer from "~/renderer/drawers/DataSelector/SelectAccountAndCurrencyDrawer";
import getUser from "~/helpers/user";
import { openExchangeDrawer } from "~/renderer/actions/UI";
import { currentRouteNameRef } from "~/renderer/analytics/screenRefs";
import { track } from "~/renderer/analytics/segment";
import SelectAccountAndCurrencyDrawer from "~/renderer/drawers/DataSelector/SelectAccountAndCurrencyDrawer";
import { OperationDetails } from "~/renderer/drawers/OperationDetails";
import { setDrawer } from "~/renderer/drawers/Provider";
import { shareAnalyticsSelector } from "~/renderer/reducers/settings";
import { Loader } from "./styled";
import { WebviewAPI, WebviewProps, WebviewTag } from "./types";
import { useWebviewState } from "./helpers";
import { walletSelector } from "~/renderer/reducers/wallet";
import { getStoreValue, setStoreValue } from "~/renderer/store";
import { updateAccountWithUpdater } from "../../actions/accounts";
import { openModal } from "../../actions/modals";
import { flattenAccountsSelector } from "../../reducers/accounts";
import BigSpinner from "../BigSpinner";
import { NetworkErrorScreen } from "./NetworkError";
import getUser from "~/helpers/user";
import { openExchangeDrawer } from "~/renderer/actions/UI";
import { currentRouteNameRef } from "~/renderer/analytics/screenRefs";
import { TrackFunction } from "@ledgerhq/live-common/platform/tracking";
import { useDappLogic } from "@ledgerhq/live-common/wallet-api/useDappLogic";
import { NoAccountOverlay } from "./NoAccountOverlay";
import { ipcRenderer } from "electron";
import { walletSelector } from "~/renderer/reducers/wallet";
import { useWebviewState } from "./helpers";
import { Loader } from "./styled";
import { WebviewAPI, WebviewProps, WebviewTag } from "./types";

const wallet = { name: "ledger-live-desktop", version: __APP_VERSION__ };

Expand Down Expand Up @@ -347,7 +347,10 @@ function useWebView(
}

export const WalletAPIWebview = forwardRef<WebviewAPI, WebviewProps>(
({ manifest, inputs = {}, currentAccountHistDb, customHandlers, onStateChange }, ref) => {
(
{ manifest, inputs = {}, currentAccountHistDb, customHandlers, onStateChange, hideLoader },
ref,
) => {
const tracking = useMemo(
() =>
trackingWrapper(
Expand Down Expand Up @@ -431,7 +434,7 @@ export const WalletAPIWebview = forwardRef<WebviewAPI, WebviewProps>(
webpreferences={`nativeWindowOpen=no${isDapp ? ", contextIsolation=no" : ""}`}
{...webviewProps}
/>
{!widgetLoaded ? (
{!widgetLoaded && !hideLoader ? (
<Loader>
<BigSpinner size={50} />
</Loader>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
/* eslint-disable react/prop-types */

import semver from "semver";
import { WALLET_API_VERSION } from "@ledgerhq/live-common/wallet-api/constants";
import React, { forwardRef } from "react";
import { WalletAPIWebview } from "./WalletAPIWebview";
import { PlatformAPIWebview } from "./PlatformAPIWebview";
import semver from "semver";
import TrackPage from "~/renderer/analytics/TrackPage";
import { PlatformAPIWebview } from "./PlatformAPIWebview";
import { WalletAPIWebview } from "./WalletAPIWebview";
import { WebviewAPI, WebviewProps } from "./types";

export const Web3AppWebview = forwardRef<WebviewAPI, WebviewProps>(
({ manifest, currentAccountHistDb, inputs, customHandlers, onStateChange }, ref) => {
({ manifest, currentAccountHistDb, inputs, customHandlers, onStateChange, hideLoader }, ref) => {
<TrackPage category="Platform" name="App" appId={manifest.id} params={inputs} />;

if (semver.satisfies(WALLET_API_VERSION, manifest.apiVersion)) {
Expand All @@ -21,6 +21,7 @@ export const Web3AppWebview = forwardRef<WebviewAPI, WebviewProps>(
customHandlers={customHandlers}
onStateChange={onStateChange}
ref={ref}
hideLoader={hideLoader}
/>
);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { LiveAppManifest } from "@ledgerhq/live-common/platform/types";
import { WalletAPICustomHandlers } from "@ledgerhq/live-common/wallet-api/types";
import { CurrentAccountHistDB } from "@ledgerhq/live-common/wallet-api/react";
import { WalletAPICustomHandlers } from "@ledgerhq/live-common/wallet-api/types";
import { WebContents } from "electron";

export interface WebviewTag extends Electron.WebviewTag {
Expand All @@ -14,6 +14,7 @@ export type WebviewProps = {
onStateChange?: (webviewState: WebviewState) => void;
customHandlers?: WalletAPICustomHandlers;
currentAccountHistDb?: CurrentAccountHistDB;
hideLoader?: boolean;
};

export type WebviewState = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,7 @@ const SwapWebView = ({
onStateChange={onStateChange}
ref={webviewAPIRef}
customHandlers={customHandlers as never}
hideLoader
/>
</SwapWebAppWrapper>
</>
Expand Down

0 comments on commit 8736e68

Please sign in to comment.