2.0.0 • Published 8 months ago

@airdao/ui-library v2.0.0

Weekly downloads
-
License
-
Repository
-
Last release
8 months ago

Installation checklist

  • Install peer dependencies
  • Wrap app with WagmiProvider and TanstackProvider
  • Swap all occurences of useWeb3React with wagmi's useAccount for read data
  • Use useEthersProvider for write actions
  • (optional) use new Header props

Install peer dependencies

yarn add wagmi@2.12.16 viem@2.21.15 @tanstack/react-query@5.51.24
npm install wagmi@2.12.16 viem@2.21.15 @tanstack/react-query@5.51.24

Wrap app with WagmiProvider and TanstackProvider

import { WagmiProvider } from "wagmi";
import { QueryClientProvider, QueryClient } from "@tanstack/react-query";
import { createAirdaoConfigWithChainId, createAirdaoConfig } from "@airdao/ui-library";

const queryClient = new QueryClient();

// store this in env variables
const { REACT_APP_WC_PROJECT_ID: projectId, REACT_APP_CHAIN_ID: chainId } =
  process.env;

const WC_PARAMS = {
  projectId: projectId,
  metadata: {
    name: "Project name",
    description: "Project description",
    url: "project url",
    icons: ["https://airdao.io/favicon.svg"]
  },
};

// for specific chain
const config = createAirdaoConfigWithChainId(+chainId, WC_PARAMS); //chainId must be a number

// for all AirDAO chains (mainnet, testnet, devnet)
const allNetworksConfig = createAirdaoConfig(WC_PARAMS);

export default function ConfiguredWagmiProvider({ children }) {
  return (
    <WagmiProvider config={config}>
      <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
    </WagmiProvider>
  );
}

Use Wagmi hooks instead of useWeb3React

Before

import { useWeb3React } from "@web3-react/core";

function MyComponent() {
  const { 
    connector, 
    chainId, 
    accounts, 
    isActivating,
    account, 
    isActive,
  } = useWeb3React();
  
  return (...)
}

After

import { useAccount } from "wagmi";
import { useEthersSigner } from "@airdao/ui-library";

const {
  address, // account
  addresses, // accounts
  chainId,
  connector,
  isConnecting, // isActivating
  isConnected, // isActive
  ...
} = useAccount()

const signer = useEthersSigner({ chainId }) //chainId optional

https://wagmi.sh/react/api/hooks/useAccount

Update Header

Before

import { Header } from "@airdao/ui-library";

import {
  useAutoLogin,
  useAuthorization,
} from "airdao-components-and-tools/hooks";

import {
  switchToAmb,
  metamaskConnector,
  walletconnectConnector,
  bitgetWalletConnector,
} from "airdao-components-and-tools/utils";

function Layout() {

  const { account, connector, provider, isActive, chainId } = useWeb3React();

  const { loginMetamask, loginWalletConnect, loginSafepal, loginBitget, logout } = useAuthorization(
    metamaskConnector,
    walletconnectConnector,
    bitgetWalletConnector,
  );
  
  return (
    <main>
      <Header
        loginSafepal={loginSafepal}
        loginMetamask={loginMetamask}
        loginBitget={loginBitget}
        loginWalletConnect={loginWalletConnect}
        disconnect={logout}
        account={account}
        connector={connector}
        ... // other props
      />
      ...
    </main>
  )
}

After

import { Header } from "@airdao/ui-library";

const { REACT_APP_CHAIN_ID: chainId } = process.env;

function Layout() {
  return (
    <main>
      <Header
        chainId={+chainId} //number
      />
      ...
    </main>
  )

Note: Despite that new version of Header implements all the necessary logic under the hood, you can override it passing additional props to it. Here is the list of props that you can pass to Header:

export interface HeaderProps {
  disabled?: boolean;
  logotype?: LogoProps;
  chainId: number;
  balance?: string; 
  isSupportedChain?: boolean; 
  connectors?: Connector[]; // list of connectors to use in ConnectWalletModal
  currentConnector?: Connector;
  disconnect?: () => void;
  switchToAmb?: () => void;
}

For more info check ./src/components/Header/Header.types.ts

Replace old 'airdao-components-and-tools' utils

Before

import { switchToAmb } from "airdao-components-and-tools/utils";
switchToAmb(chainId);

After

import { useSwitchToConfiguredChain } from "@airdao/ui-library";

const switchToAmb = useSwitchToConfiguredChain();
switchToAmb();
2.0.0

8 months ago

2.0.0-beta.14

8 months ago

2.0.0-beta.9

8 months ago

2.0.0-beta.8

8 months ago

2.0.0-beta.11

8 months ago

2.0.0-beta.13

8 months ago

2.0.0-beta.12

8 months ago

2.0.0-beta.7

8 months ago

2.0.0-beta.6

8 months ago

2.0.0-beta.2

8 months ago

2.0.0-beta.1

8 months ago

2.0.0-beta.4

8 months ago

2.0.0-beta.3

8 months ago

1.7.6

10 months ago

1.7.5

10 months ago

1.6.4

10 months ago

1.6.3

10 months ago

1.6.2

10 months ago

1.6.1

10 months ago

1.6.0

11 months ago

1.4.20

1 year ago

1.5.9

11 months ago

1.5.8

11 months ago

1.5.7

11 months ago

1.7.4

10 months ago

1.5.6

11 months ago

1.7.3

10 months ago

1.5.5

12 months ago

1.7.2

10 months ago

1.5.4

12 months ago

1.5.3

12 months ago

1.5.2

12 months ago

1.5.1

12 months ago

1.5.0

12 months ago

1.4.19

1 year ago

1.4.18

1 year ago

1.4.17

1 year ago

1.4.16

1 year ago

1.4.15

1 year ago

1.4.13

1 year ago

1.4.14

1 year ago

1.4.11

1 year ago

1.4.10

1 year ago

1.4.12

1 year ago

1.4.9

1 year ago

1.4.8

1 year ago

1.4.7

1 year ago

1.4.6

1 year ago

1.4.5

1 year ago

1.4.4

1 year ago

1.4.3

1 year ago

1.4.2

1 year ago

1.4.1

1 year ago

1.4.0

1 year ago

1.3.3

1 year ago

1.3.2

1 year ago

1.2.8

1 year ago

1.2.7

1 year ago

1.3.0

1 year ago

1.2.6

1 year ago

1.2.5

1 year ago

1.2.4

1 year ago

1.2.3

1 year ago

1.2.0

1 year ago

1.2.1

1 year ago

1.1.23

1 year ago

1.1.22

1 year ago

1.1.21

1 year ago

1.1.20

1 year ago

1.1.19

2 years ago

1.1.16

2 years ago

1.1.15

2 years ago

1.1.14

2 years ago

1.1.13

2 years ago

1.1.18

2 years ago

1.1.17

2 years ago

1.1.12

2 years ago

1.1.11

2 years ago

1.1.10

2 years ago

1.1.9

2 years ago

1.1.8

2 years ago

1.1.7

2 years ago

1.1.6

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

0.0.1

2 years ago