From 8736e68acc063af1662b527628d5e99e679584ca Mon Sep 17 00:00:00 2001 From: Liviu Ciulinaru Date: Tue, 4 Jun 2024 15:40:07 +0300 Subject: [PATCH] fix: hide webview loader from swap module (#7001) chore: add changest chore: clean up --- .changeset/angry-bees-dress.md | 5 ++ .../Web3AppWebview/WalletAPIWebview.tsx | 65 ++++++++++--------- .../components/Web3AppWebview/index.tsx | 9 +-- .../components/Web3AppWebview/types.ts | 3 +- .../exchange/Swap2/Form/SwapWebView.tsx | 1 + 5 files changed, 47 insertions(+), 36 deletions(-) create mode 100644 .changeset/angry-bees-dress.md diff --git a/.changeset/angry-bees-dress.md b/.changeset/angry-bees-dress.md new file mode 100644 index 00000000000..68eaa009e84 --- /dev/null +++ b/.changeset/angry-bees-dress.md @@ -0,0 +1,5 @@ +--- +"ledger-live-desktop": patch +--- + +hide webview loader from swap module diff --git a/apps/ledger-live-desktop/src/renderer/components/Web3AppWebview/WalletAPIWebview.tsx b/apps/ledger-live-desktop/src/renderer/components/Web3AppWebview/WalletAPIWebview.tsx index 85a3316e7b5..a57b8b79d1c 100644 --- a/apps/ledger-live-desktop/src/renderer/components/Web3AppWebview/WalletAPIWebview.tsx +++ b/apps/ledger-live-desktop/src/renderer/components/Web3AppWebview/WalletAPIWebview.tsx @@ -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, @@ -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__ }; @@ -347,7 +347,10 @@ function useWebView( } export const WalletAPIWebview = forwardRef( - ({ manifest, inputs = {}, currentAccountHistDb, customHandlers, onStateChange }, ref) => { + ( + { manifest, inputs = {}, currentAccountHistDb, customHandlers, onStateChange, hideLoader }, + ref, + ) => { const tracking = useMemo( () => trackingWrapper( @@ -431,7 +434,7 @@ export const WalletAPIWebview = forwardRef( webpreferences={`nativeWindowOpen=no${isDapp ? ", contextIsolation=no" : ""}`} {...webviewProps} /> - {!widgetLoaded ? ( + {!widgetLoaded && !hideLoader ? ( diff --git a/apps/ledger-live-desktop/src/renderer/components/Web3AppWebview/index.tsx b/apps/ledger-live-desktop/src/renderer/components/Web3AppWebview/index.tsx index a6e46d90ea7..afaf197ae74 100644 --- a/apps/ledger-live-desktop/src/renderer/components/Web3AppWebview/index.tsx +++ b/apps/ledger-live-desktop/src/renderer/components/Web3AppWebview/index.tsx @@ -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( - ({ manifest, currentAccountHistDb, inputs, customHandlers, onStateChange }, ref) => { + ({ manifest, currentAccountHistDb, inputs, customHandlers, onStateChange, hideLoader }, ref) => { ; if (semver.satisfies(WALLET_API_VERSION, manifest.apiVersion)) { @@ -21,6 +21,7 @@ export const Web3AppWebview = forwardRef( customHandlers={customHandlers} onStateChange={onStateChange} ref={ref} + hideLoader={hideLoader} /> ); } diff --git a/apps/ledger-live-desktop/src/renderer/components/Web3AppWebview/types.ts b/apps/ledger-live-desktop/src/renderer/components/Web3AppWebview/types.ts index ae50eba7960..c7ab7f81674 100644 --- a/apps/ledger-live-desktop/src/renderer/components/Web3AppWebview/types.ts +++ b/apps/ledger-live-desktop/src/renderer/components/Web3AppWebview/types.ts @@ -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 { @@ -14,6 +14,7 @@ export type WebviewProps = { onStateChange?: (webviewState: WebviewState) => void; customHandlers?: WalletAPICustomHandlers; currentAccountHistDb?: CurrentAccountHistDB; + hideLoader?: boolean; }; export type WebviewState = { diff --git a/apps/ledger-live-desktop/src/renderer/screens/exchange/Swap2/Form/SwapWebView.tsx b/apps/ledger-live-desktop/src/renderer/screens/exchange/Swap2/Form/SwapWebView.tsx index 917d83b54e7..7fc6ccb0ba8 100644 --- a/apps/ledger-live-desktop/src/renderer/screens/exchange/Swap2/Form/SwapWebView.tsx +++ b/apps/ledger-live-desktop/src/renderer/screens/exchange/Swap2/Form/SwapWebView.tsx @@ -296,6 +296,7 @@ const SwapWebView = ({ onStateChange={onStateChange} ref={webviewAPIRef} customHandlers={customHandlers as never} + hideLoader />