Files
TheGame/packages/web/components/SwitchNetworkButton.tsx
δυς 2921a47ef0 Review: meTokens ₍wᵢₜₕ gᵣₐₙᵤₗₐᵣ 𝄴ₒₘₘᵢₜₛ₎ (#1552)
* linting 🃡

* removing MetaMask specificity 🃢

* moving `StrictMode` to Next.js 🃣

* compressing & commafying 🃤

* upgrading eslint 👘

* removing preface from guild name 🃥

* removing unnecessary ESLint `no-console` directives 🌂

* fixing a typo in a comment 🃦

* updating GraphQL codegen for paid subgraph 🦏

* replacing Discord invite link 📌

* passing through The Graph API token to Docker ♾

* setting Docker ARG to set ENV 📟

* missed a file rename in frontend Docker config 🦀

* adding ts-node to fix Docker build issue ⸙

* trying to narrow down the 500 error's source in the test instance 

* exposing The Graph API token on Cloud Run 🦃

* more logging to try & find server error 🐠

* more logging 🧱

* trying to run Node.js in development mode on Cloud Run 🎁

* reconfiguring frontend Dockerfile to also run the dev environment 🌿

* dev mode seems to function 🧨

* 768MiB wasn't enough memory 🍁

* 1GiB wasn't enough memory 🔱

* 1.5GiB was interpreted as 1GiB 🥃

* 1536MiB wasn't enough memory 👾

* 2GiB wasn't enough memory 🧲

* 3GiB wasn't enough memory 🆎

* 4GiB might have been enough, but it still doesn't load 🧻

* 5GiB requires two CPUs 📝

* giving up on dev server; unexplained HTTP 429s 🎨

* disabling Honeybadger in test instances 📮

* trying an `ErrorBoundary` to gather more info 🕷

* setting GraphQL endpoint 🇲🇰

* exposing environment variables ⛈

* trying to expose `` 📻

* the Next compiled version still references `node_modules` 🦢

* removing Alchemy API key from sources 

* trying a different Docker build action 💉

* removing logging 🍿

* switching to Docker Buildx 👠

* missed an escaped newline 🗿

* trying a newer gcloud setup action 🦝

* hopefully fixing authentication 📴

* bunch of changes to the meTokens profile section 🦜

* need credentials file 🐆

* hunting for layout load error & pushing debug statements to testing 🥁

* updating eslint 💓

* trying to debug the missing Breadchain Coop 🧀

* apparently chose the wrong changeset 🐚

* removing logging 🥀
2023-05-15 09:12:03 -06:00

42 lines
1.0 KiB
TypeScript

import { Button, MetaMaskIcon, Tooltip } from '@metafam/ds';
import { useWeb3 } from 'lib/hooks';
import React, { useCallback, useState } from 'react';
import { switchChain } from 'utils/metamask';
import { NETWORK_INFO } from 'utils/networks';
export const SwitchNetworkButton: React.FC<{ chainId?: string }> = ({
chainId = '0x1',
}) => {
const { connected } = useWeb3();
const networkInfo = NETWORK_INFO[chainId];
const [isLoading, setLoading] = useState(false);
const onClick = useCallback(async () => {
if (connected) {
setLoading(true);
await switchChain(chainId);
setLoading(false);
}
}, [connected, chainId]);
if (!connected || !networkInfo) return null;
const { name } = networkInfo;
return (
<Tooltip label="Click to switch network." hasArrow>
<Button
size="sm"
fontSize="md"
px={2}
colorScheme="pink"
leftIcon={<MetaMaskIcon />}
{...{ isLoading, onClick }}
>
{name}
</Button>
</Tooltip>
);
};