1.3.34 • Published 23 hours ago

@dcentralab/wc-network-switcher v1.3.34

Weekly downloads
-
License
MIT
Repository
-
Last release
23 hours ago

Networks icons

Instalation

npm install @dcentralab/wc-network-switcher

or

yarn add @dcentralab/wc-network-switcher

Getting started

Network switcher provides a way for handling app network switching (both evm and cardano) chains.

Exports

{
  NetworkIcon
  NetworksDropdown,
  INetworkSwitcher,
  NetworkSwitcher,
  NetworkSwitcherContext,
  NetworkSwitcherContextProvider,
}

NetworkIcon

will render the passed network object icon by prop chainInfo which is type of INetworkOption.

this code snippet will render the current selected chain icon

import {
  NetworkIcon,
  NetworkSwitcherContext,
} from "@dcentralab/wc-network-switcher";

const { networkInfo } = useContext(NetworkSwitcherContext);
<NetworkIcon chainInfo={networkInfo} />;

NetworksDropdown

will render a list of networks staked over each other and highlight on the selected one.

it's internally used in NetworkSwitcher

import {
  NetworkIcon,
  NetworkSwitcherContext,
} from "@dcentralab/wc-network-switcher";

function NetworkSwitcher({ children }: INetworkSwitcher) {
  const { networksList } = useContext(NetworkSwitcherContext);
  return(
    <InlineModal
      onToggle={setDropdownOpened}
      closeOnContentClick
      content={<NetworksDropdown />}
    >
      {children}
    </InlineModal>)

NetworkSwitcherContextProvider

App should be wrapped with NetworkSwitcherContextProvider and used networks will be passed to it.

import { NetworkSwitcherContextProvider } from "@dcentralab/wc-network-switcher";

<NetworkSwitcherContextProvider networks={appNetworks}>
  <App />
</NetworkSwitcherContextProvider>;

NetworkSwitcher

the main UI component for switching network. located in header and been added to duf header beside the wallet connect component

Note: it's hidden on mobile

import { NetworkSwitcher } from "@dcentralab/wc-network-switcher";

<div className="duf-header-wallet-container">
  <NetworkSwitcher />
  {walletComponent}
  <ContextMenu links={menuLinks} rtl profileImage={profileImage} />
</div>;

Interfaces

import { BLOCKCHAIN_TYPE, TWalletType } from "@dcentralab/common";
import { ReactNode } from "react";
import { IMessage, IValues } from "../formatMessage";

export interface IIntl {
  formatMessage: (msg: IMessage, values?: IValues) => string;
}

export interface INetwork {
  rpcUrl: string;
  networkId: number;
  derivationPath?: string;
  blockchainType: BLOCKCHAIN_TYPE;
}

export interface IWallet {
  type: TWalletType;
  blockchainType: BLOCKCHAIN_TYPE;
  mobile?: boolean;
  hwWallet?: boolean;
}
export interface INetworkOption extends INetwork {
  Icon?: JSX.Element | string;
  logo?: JSX.Element | string;
  title?: string;
  chainName?: string;
  explorerUrl?: string;
}

export interface IContextState {
  account: string;
  connectingWalletType: TWalletType | null;
  connectedWalletType: TWalletType | null;
  accountType: string;
  connectionType: string | null;
  connectingWallet: boolean;
  connectionError: string;
  isModalOpen: boolean;
  supportedWallets: IWallet[];
  lsKey?: string;
}

export interface INetworkSwitcherContextProps {
  children: ReactNode;
  networks?: INetworkOption[];
  defaultChainId?: number;
  defaultBlockchainType?: BLOCKCHAIN_TYPE;
  useStoredNetId?: boolean; // pass to store netwotkId and blockchainType in localstorage automaticly
  onNetworkChange?: (networkInfo?: INetworkOption) => void;
}

export interface IHDWalletProps {
  afterConnect: () => void;
}
1.3.32

24 hours ago

1.3.34

23 hours ago

1.3.31

13 days ago

1.3.30

20 days ago

1.3.29

20 days ago

1.3.26

22 days ago

1.3.27

22 days ago

1.3.25

1 month ago

1.3.24

1 month ago

1.3.22

1 month ago

1.3.23

1 month ago

1.3.21

1 month ago

1.3.20

1 month ago

1.3.18

1 month ago

1.3.19

1 month ago

1.3.17

2 months ago

1.3.15

2 months ago

1.3.16

2 months ago

1.3.13

2 months ago

1.3.14

2 months ago

1.3.12

2 months ago

1.3.11

3 months ago

1.3.10

3 months ago

1.3.9

3 months ago

1.3.8

3 months ago

1.3.7

3 months ago

1.3.6

3 months ago

1.3.5

3 months ago

1.3.4

3 months ago

1.3.3

3 months ago

1.3.2

4 months ago

1.3.1

4 months ago

1.3.0

5 months ago

1.2.9

5 months ago

1.2.8

5 months ago

1.2.7

5 months ago

1.2.6

5 months ago

1.2.5

5 months ago

1.2.0

6 months ago

1.2.4

6 months ago

1.2.3

6 months ago

1.2.2

6 months ago

1.2.1

6 months ago

1.1.34

6 months ago

1.1.33

6 months ago

1.1.32

6 months ago

1.1.31

6 months ago

1.1.30

6 months ago

1.1.29

6 months ago

1.1.28

6 months ago

1.1.27

6 months ago

1.1.26

6 months ago

1.1.25

6 months ago

1.1.25-alpha.0

6 months ago

1.1.24-alpha.0

7 months ago

1.1.23-alpha.0

7 months ago

1.1.22-alpha.0

7 months ago

1.1.21-alpha.0

7 months ago

1.1.20-alpha.0

7 months ago

1.1.19-alpha.0

7 months ago

1.1.18-alpha.0

8 months ago

1.1.17-alpha.0

8 months ago

1.1.16-alpha.0

8 months ago

1.1.15-alpha.0

8 months ago

1.1.14-alpha.0

8 months ago

1.1.13-alpha.0

8 months ago

1.1.12-alpha.0

9 months ago

1.1.11-alpha.0

9 months ago

1.1.10-alpha.0

9 months ago

1.1.9-alpha.0

9 months ago

1.1.8-alpha.0

9 months ago

1.1.7-alpha.0

9 months ago

1.1.6-alpha.0

9 months ago

1.1.5-alpha.0

9 months ago

1.1.4-alpha.0

10 months ago

1.1.3-alpha.2

10 months ago

1.1.3-alpha.0

10 months ago

1.1.2-alpha.0

10 months ago

1.1.1-alpha.0

10 months ago

1.1.0-alpha.0

10 months ago

1.0.29-alpha.0

10 months ago

1.0.28-alpha.0

10 months ago

1.0.27-alpha.0

10 months ago

1.0.26-alpha.0

10 months ago

1.0.25-alpha.0

10 months ago

1.0.24-alpha.0

10 months ago

1.0.23-alpha.0

10 months ago

1.0.22-alpha.0

10 months ago

1.0.21-alpha.0

10 months ago

1.0.20-alpha.0

10 months ago

1.0.19-alpha.0

11 months ago

1.0.18-alpha.0

11 months ago

1.0.17-alpha.0

11 months ago

1.0.16-alpha.0

11 months ago

1.0.15-alpha.0

11 months ago

1.0.14-alpha.5

11 months ago

1.0.14-alpha.4

11 months ago

1.0.14-alpha.3

11 months ago

1.0.14-alpha.2

11 months ago

1.0.14-alpha.1

11 months ago

1.0.14-alpha.0

11 months ago

1.0.13-alpha.0

11 months ago

1.0.12-alpha.0

11 months ago

1.0.11-alpha.0

11 months ago

1.0.10-alpha.0

11 months ago

1.0.9-alpha.0

11 months ago

1.0.8-alpha.0

11 months ago

1.0.7-alpha.0

11 months ago

1.0.6-alpha.0

11 months ago

1.0.5-alpha.0

11 months ago

1.0.4-alpha.0

11 months ago

1.0.3-alpha.0

11 months ago

1.0.2-alpha.0

11 months ago

1.0.1-alpha.0

11 months ago

1.0.0-alpha.0

11 months ago