2.0.32 • Published 8 months ago

@dcentralab/wc-network-switcher v2.0.32

Weekly downloads
-
License
MIT
Repository
-
Last release
8 months 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;
  enableSearch?: boolean; // enable search input
}

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

8 months ago

2.0.32

8 months ago

2.0.30

9 months ago

2.0.29

10 months ago

2.0.28

10 months ago

2.0.27

10 months ago

2.0.0-alpha.7

12 months ago

2.0.0-alpha.8

12 months ago

2.0.0-alpha.9

12 months ago

2.0.3

11 months ago

2.0.2

11 months ago

2.0.0-alpha.4

12 months ago

2.0.5

11 months ago

2.0.0-alpha.5

12 months ago

2.0.0-alpha.6

12 months ago

2.0.7

11 months ago

2.0.6

11 months ago

2.0.9

11 months ago

2.0.8

11 months ago

2.0.0-alpha.2

12 months ago

2.0.1

11 months ago

2.0.0

12 months ago

2.0.0-alpha.12

12 months ago

1.3.35

12 months ago

2.0.15

10 months ago

2.0.16

10 months ago

2.0.13

11 months ago

2.0.1-alpha.0

12 months ago

2.0.14

10 months ago

2.0.11

11 months ago

2.0.12

11 months ago

2.0.10

11 months ago

2.0.19

10 months ago

2.0.17

10 months ago

2.0.18

10 months ago

2.0.26

10 months ago

2.0.24

10 months ago

2.0.25

10 months ago

2.0.22

10 months ago

2.0.23

10 months ago

2.0.20

10 months ago

2.0.21

10 months ago

1.3.32

1 year ago

1.3.34

1 year ago

1.3.31

1 year ago

1.3.30

1 year ago

1.3.29

1 year ago

1.3.26

1 year ago

1.3.27

1 year ago

1.3.25

1 year ago

1.3.24

1 year ago

1.3.22

1 year ago

1.3.23

1 year ago

1.3.21

1 year ago

1.3.20

1 year ago

1.3.18

1 year ago

1.3.19

1 year ago

1.3.17

1 year ago

1.3.15

1 year ago

1.3.16

1 year ago

1.3.13

1 year ago

1.3.14

1 year ago

1.3.12

1 year ago

1.3.11

1 year ago

1.3.10

1 year ago

1.3.9

1 year ago

1.3.8

1 year ago

1.3.7

1 year ago

1.3.6

1 year ago

1.3.5

1 year ago

1.3.4

1 year ago

1.3.3

1 year ago

1.3.2

1 year ago

1.3.1

1 year ago

1.3.0

1 year ago

1.2.9

1 year ago

1.2.8

1 year ago

1.2.7

1 year ago

1.2.6

1 year ago

1.2.5

1 year ago

1.2.0

2 years ago

1.2.4

2 years ago

1.2.3

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.1.34

2 years ago

1.1.33

2 years ago

1.1.32

2 years ago

1.1.31

2 years ago

1.1.30

2 years ago

1.1.29

2 years ago

1.1.28

2 years ago

1.1.27

2 years ago

1.1.26

2 years ago

1.1.25

2 years ago

1.1.25-alpha.0

2 years ago

1.1.24-alpha.0

2 years ago

1.1.23-alpha.0

2 years ago

1.1.22-alpha.0

2 years ago

1.1.21-alpha.0

2 years ago

1.1.20-alpha.0

2 years ago

1.1.19-alpha.0

2 years ago

1.1.18-alpha.0

2 years ago

1.1.17-alpha.0

2 years ago

1.1.16-alpha.0

2 years ago

1.1.15-alpha.0

2 years ago

1.1.14-alpha.0

2 years ago

1.1.13-alpha.0

2 years ago

1.1.12-alpha.0

2 years ago

1.1.11-alpha.0

2 years ago

1.1.10-alpha.0

2 years ago

1.1.9-alpha.0

2 years ago

1.1.8-alpha.0

2 years ago

1.1.7-alpha.0

2 years ago

1.1.6-alpha.0

2 years ago

1.1.5-alpha.0

2 years ago

1.1.4-alpha.0

2 years ago

1.1.3-alpha.2

2 years ago

1.1.3-alpha.0

2 years ago

1.1.2-alpha.0

2 years ago

1.1.1-alpha.0

2 years ago

1.1.0-alpha.0

2 years ago

1.0.29-alpha.0

2 years ago

1.0.28-alpha.0

2 years ago

1.0.27-alpha.0

2 years ago

1.0.26-alpha.0

2 years ago

1.0.25-alpha.0

2 years ago

1.0.24-alpha.0

2 years ago

1.0.23-alpha.0

2 years ago

1.0.22-alpha.0

2 years ago

1.0.21-alpha.0

2 years ago

1.0.20-alpha.0

2 years ago

1.0.19-alpha.0

2 years ago

1.0.18-alpha.0

2 years ago

1.0.17-alpha.0

2 years ago

1.0.16-alpha.0

2 years ago

1.0.15-alpha.0

2 years ago

1.0.14-alpha.5

2 years ago

1.0.14-alpha.4

2 years ago

1.0.14-alpha.3

2 years ago

1.0.14-alpha.2

2 years ago

1.0.14-alpha.1

2 years ago

1.0.14-alpha.0

2 years ago

1.0.13-alpha.0

2 years ago

1.0.12-alpha.0

2 years ago

1.0.11-alpha.0

2 years ago

1.0.10-alpha.0

2 years ago

1.0.9-alpha.0

2 years ago

1.0.8-alpha.0

2 years ago

1.0.7-alpha.0

2 years ago

1.0.6-alpha.0

2 years ago

1.0.5-alpha.0

2 years ago

1.0.4-alpha.0

2 years ago

1.0.3-alpha.0

2 years ago

1.0.2-alpha.0

2 years ago

1.0.1-alpha.0

2 years ago

1.0.0-alpha.0

2 years ago