From e4a9058f649f65ce97df2cc520a0a5b952b85685 Mon Sep 17 00:00:00 2001 From: Zach Couchman Date: Thu, 20 Jul 2023 08:57:02 +1000 Subject: [PATCH] refactor rest for ConnectWidget --- .../components/ConnectLoader/ConnectLoader.tsx | 17 +++++++++-------- .../ConnectLoaderContext.ts | 5 +++-- .../src/widgets/connect/ConnectWidget.tsx | 2 +- .../widgets/connect/context/ConnectContext.ts | 13 ------------- .../widgets/connect/views/ReadyToConnect.tsx | 3 ++- .../widgets/connect/views/SwitchNetworkEth.tsx | 3 ++- 6 files changed, 17 insertions(+), 26 deletions(-) diff --git a/packages/checkout/widgets-lib/src/components/ConnectLoader/ConnectLoader.tsx b/packages/checkout/widgets-lib/src/components/ConnectLoader/ConnectLoader.tsx index c51d289e9d..c9acb9197d 100644 --- a/packages/checkout/widgets-lib/src/components/ConnectLoader/ConnectLoader.tsx +++ b/packages/checkout/widgets-lib/src/components/ConnectLoader/ConnectLoader.tsx @@ -33,6 +33,7 @@ import { addProviderChainListener, removeProviderEventListeners, } from '../../lib/providerEvents'; +import { SharedViews } from '../../context/view-context/ViewContext'; export interface ConnectLoaderProps { children?: React.ReactNode; @@ -97,12 +98,12 @@ export function ConnectLoader({ useEffect(() => { if (!web3Provider) { - connectLoaderDispatch({ - payload: { - type: ConnectLoaderActions.UPDATE_CONNECTION_STATUS, - connectionStatus: ConnectionStatus.NOT_CONNECTED_NO_PROVIDER, - }, - }); + // connectLoaderDispatch({ + // payload: { + // type: ConnectLoaderActions.UPDATE_CONNECTION_STATUS, + // connectionStatus: ConnectionStatus.NOT_CONNECTED_NO_PROVIDER, + // }, + // }); return () => {}; } @@ -146,7 +147,7 @@ export function ConnectLoader({ payload: { type: ConnectLoaderActions.UPDATE_CONNECTION_STATUS, connectionStatus: ConnectionStatus.CONNECTED_WRONG_NETWORK, - deepLink: ConnectWidgetViews.SWITCH_NETWORK, + deepLink: SharedViews.SWITCH_NETWORK, }, }); } @@ -248,7 +249,7 @@ export function ConnectLoader({ payload: { type: ConnectLoaderActions.UPDATE_CONNECTION_STATUS, connectionStatus: ConnectionStatus.CONNECTED_WRONG_NETWORK, - deepLink: ConnectWidgetViews.SWITCH_NETWORK, + deepLink: SharedViews.SWITCH_NETWORK, }, }); return; diff --git a/packages/checkout/widgets-lib/src/context/connect-loader-context/ConnectLoaderContext.ts b/packages/checkout/widgets-lib/src/context/connect-loader-context/ConnectLoaderContext.ts index 28f7053696..9145bc1792 100644 --- a/packages/checkout/widgets-lib/src/context/connect-loader-context/ConnectLoaderContext.ts +++ b/packages/checkout/widgets-lib/src/context/connect-loader-context/ConnectLoaderContext.ts @@ -1,5 +1,6 @@ import { createContext } from 'react'; import { ConnectWidgetViews } from '../view-context/ConnectViewContextTypes'; +import { SharedViews } from '../view-context/ViewContext'; export enum ConnectionStatus { NOT_CONNECTED_NO_PROVIDER = 'NOT_CONNECTED_NO_PROVIDER', @@ -12,7 +13,7 @@ export enum ConnectionStatus { export interface ConnectLoaderState { connectionStatus: ConnectionStatus; - deepLink?: ConnectWidgetViews; + deepLink?: ConnectWidgetViews | SharedViews; } export const initialConnectLoaderState: ConnectLoaderState = { @@ -37,7 +38,7 @@ export enum ConnectLoaderActions { export interface UpdateConnectionStatusPayload { type: ConnectLoaderActions.UPDATE_CONNECTION_STATUS; connectionStatus: ConnectionStatus; - deepLink?: ConnectWidgetViews; + deepLink?: ConnectWidgetViews | SharedViews; } // eslint-disable-next-line @typescript-eslint/naming-convention diff --git a/packages/checkout/widgets-lib/src/widgets/connect/ConnectWidget.tsx b/packages/checkout/widgets-lib/src/widgets/connect/ConnectWidget.tsx index 64e6d57025..0bc33c2ce1 100644 --- a/packages/checkout/widgets-lib/src/widgets/connect/ConnectWidget.tsx +++ b/packages/checkout/widgets-lib/src/widgets/connect/ConnectWidget.tsx @@ -43,7 +43,7 @@ import { ImmutableNetworkHero } from '../../components/Hero/ImmutableNetworkHero export interface ConnectWidgetProps { params?: ConnectWidgetParams; config: StrongCheckoutWidgetsConfig - deepLink?: ConnectWidgetViews; + deepLink?: ConnectWidgetViews | SharedViews; sendCloseEventOverride?: () => void; } diff --git a/packages/checkout/widgets-lib/src/widgets/connect/context/ConnectContext.ts b/packages/checkout/widgets-lib/src/widgets/connect/context/ConnectContext.ts index 6833af8d3d..9614121fe0 100644 --- a/packages/checkout/widgets-lib/src/widgets/connect/context/ConnectContext.ts +++ b/packages/checkout/widgets-lib/src/widgets/connect/context/ConnectContext.ts @@ -1,12 +1,10 @@ import { Web3Provider } from '@ethersproject/providers'; import { createContext } from 'react'; import { Checkout, WalletProviderName } from '@imtbl/checkout-sdk'; -// import { ProviderSubscription } from '../../../lib/providerSubscription'; export interface ConnectState { checkout: Checkout | null; provider: Web3Provider | null; - // providerSubscription: ProviderSubscription | null; walletProvider: WalletProviderName | null; sendCloseEvent: () => void; } @@ -14,7 +12,6 @@ export interface ConnectState { export const initialConnectState: ConnectState = { checkout: null, provider: null, - // providerSubscription: null, walletProvider: null, sendCloseEvent: () => {}, }; @@ -82,19 +79,9 @@ export const connectReducer: Reducer = ( checkout: action.payload.checkout, }; case ConnectActions.SET_PROVIDER: - // eslint-disable-next-line no-case-declarations - // let { providerSubscription } = state; - - // if (providerSubscription) { - // providerSubscription.unsubscribe(); - // } - // providerSubscription = new ProviderSubscription(action.payload.provider, () => {}, () => {}); - // providerSubscription.subscribe(); - return { ...state, provider: action.payload.provider, - // providerSubscription, }; case ConnectActions.SET_PROVIDER_NAME: return { diff --git a/packages/checkout/widgets-lib/src/widgets/connect/views/ReadyToConnect.tsx b/packages/checkout/widgets-lib/src/widgets/connect/views/ReadyToConnect.tsx index 7c4d866377..cc31dc8c4f 100644 --- a/packages/checkout/widgets-lib/src/widgets/connect/views/ReadyToConnect.tsx +++ b/packages/checkout/widgets-lib/src/widgets/connect/views/ReadyToConnect.tsx @@ -12,6 +12,7 @@ import { ConnectContext, ConnectActions } from '../context/ConnectContext'; import { ViewContext, ViewActions, + SharedViews, } from '../../../context/view-context/ViewContext'; export interface ReadyToConnectProps { @@ -39,7 +40,7 @@ export function ReadyToConnect({ targetChainId }: ReadyToConnectProps) { viewDispatch({ payload: { type: ViewActions.UPDATE_VIEW, - view: { type: ConnectWidgetViews.SWITCH_NETWORK }, + view: { type: SharedViews.SWITCH_NETWORK }, }, }); return; diff --git a/packages/checkout/widgets-lib/src/widgets/connect/views/SwitchNetworkEth.tsx b/packages/checkout/widgets-lib/src/widgets/connect/views/SwitchNetworkEth.tsx index ff50f50e11..a77385e5e5 100644 --- a/packages/checkout/widgets-lib/src/widgets/connect/views/SwitchNetworkEth.tsx +++ b/packages/checkout/widgets-lib/src/widgets/connect/views/SwitchNetworkEth.tsx @@ -11,13 +11,14 @@ import { getL1ChainId } from '../../../lib/networkUtils'; import { ViewContext, ViewActions, + SharedViews, } from '../../../context/view-context/ViewContext'; export function SwitchNetworkEth() { const { viewDispatch } = useContext(ViewContext); const { connectDispatch, connectState } = useContext(ConnectContext); const { checkout, provider, sendCloseEvent } = connectState; - const { heading, body, button } = text.views[ConnectWidgetViews.SWITCH_NETWORK].eth; + const { heading, body, button } = text.views[SharedViews.SWITCH_NETWORK].eth; const [buttonText, setButtonText] = useState(button.text);