fixed LinkOverlay issues

This commit is contained in:
dan13ram
2021-08-04 16:41:06 +05:30
committed by Alec LaLonde
parent 5dc067f31c
commit ea3db28b66
15 changed files with 930 additions and 613 deletions

View File

@@ -33,7 +33,7 @@
"body-parser": "1.19.0",
"bottleneck": "2.19.5",
"discord.js": "12.5.3",
"ethers": "5.4.1",
"ethers": "5.4.3",
"express": "4.17.1",
"express-graphql": "0.12.0",
"graphql": "15.5.0",

View File

@@ -24,9 +24,9 @@
"react": ">=16"
},
"dependencies": {
"@chakra-ui/icons": "1.0.13",
"@chakra-ui/react": "1.6.3",
"@chakra-ui/theme-tools": "1.1.7",
"@chakra-ui/icons": "1.0.14",
"@chakra-ui/react": "1.6.5",
"@chakra-ui/theme-tools": "1.1.8",
"@emotion/react": "11.4.0",
"@emotion/styled": "11.3.0",
"@types/react": "17.0.6",

View File

@@ -15,6 +15,7 @@ export const MetaButton: React.FC<
size="lg"
fontSize="sm"
bg="purple.400"
color="white"
ref={ref}
{...props}
>

View File

@@ -32,6 +32,7 @@ export const MetaTile: React.FC<FlexProps> = ({ children, ...props }) => (
p={6}
maxW="25rem" // (2 / 3.5) = ~0.571 aspect ratio desired
w="100%"
h="100%"
align="stretch"
position="relative"
overflow="hidden"

View File

@@ -19,13 +19,13 @@
"author": "",
"license": "ISC",
"dependencies": {
"@types/express": "4.17.11",
"@types/node-fetch": "2.5.10",
"@metafam/utils": "1.0.0",
"@typeit/discord": "4.0.10",
"@types/express": "4.17.11",
"@types/node-fetch": "2.5.10",
"discord.js": "12.5.3",
"dotenv": "9.0.2",
"ethers": "5.4.1",
"ethers": "5.4.3",
"express": "4.17.1",
"graphql": "15.5.0",
"graphql-request": "3.4.0",

View File

@@ -15,9 +15,9 @@
"dependencies": {
"@types/uuid": "8.3.0",
"bignumber.js": "9.0.1",
"ethers": "5.4.1",
"ethers": "5.4.3",
"js-base64": "3.6.1",
"uuid": "8.3.2",
"sourcecred": "0.9.0"
"sourcecred": "0.9.0",
"uuid": "8.3.2"
}
}

View File

@@ -2,6 +2,8 @@ import {
Avatar,
Box,
Heading,
LinkBox,
LinkOverlay,
MetaButton,
MetaTag,
MetaTile,
@@ -10,8 +12,8 @@ import {
Text,
VStack,
} from '@metafam/ds';
import { MetaLink } from 'components/Link';
import { GuildFragmentFragment } from 'graphql/autogen/types';
import NextLink from 'next/link';
import React from 'react';
type Props = {
@@ -19,51 +21,53 @@ type Props = {
};
export const GuildTile: React.FC<Props> = ({ guild }) => (
<MetaTile>
<MetaTileHeader>
<MetaLink
<LinkBox>
<MetaTile>
<NextLink
as={`/guild/${guild.guildname}`}
href="/guild/[guildname]"
key={guild.id}
passHref
>
<VStack>
{guild.logo ? (
<Avatar size="xl" src={guild.logo} name={guild.name} />
) : null}
<LinkOverlay>
<MetaTileHeader>
<VStack>
{guild.logo ? (
<Avatar size="xl" src={guild.logo} name={guild.name} />
) : null}
<Heading size="sm" color="white">
{guild.name}
</Heading>
</VStack>
</MetaLink>
{guild.type ? (
<Box align="center" mt={0}>
<MetaTag size="md">{guild.type} GUILD</MetaTag>
</Box>
) : null}
{guild.position ? (
<Box align="center" mt={0}>
<MetaTag size="md">{guild.position} GUILD</MetaTag>
</Box>
) : null}
{guild.description ? (
<VStack spacing={2} align="stretch">
<Text textStyle="caption">ABOUT</Text>
<Text fontSize="sm">{guild.description}</Text>
</VStack>
) : null}
</MetaTileHeader>
<MetaTileBody>
{guild.join_button_url ? (
<MetaButton
as="a"
href={guild.join_button_url}
target="_blank"
fontFamily="mono"
>
Join
</MetaButton>
) : null}
</MetaTileBody>
</MetaTile>
<Heading size="sm" color="white">
{guild.name}
</Heading>
</VStack>
{guild.type ? (
<Box align="center">
<MetaTag size="md">
{guild.type}
GUILD
</MetaTag>
</Box>
) : null}
{guild.description ? (
<VStack spacing={2} align="stretch">
<Text textStyle="caption">ABOUT</Text>
<Text fontSize="sm">{guild.description}</Text>
</VStack>
) : null}
</MetaTileHeader>
</LinkOverlay>
</NextLink>
<MetaTileBody>
{guild.join_button_url ? (
<MetaButton
as="a"
href={guild.join_button_url}
target="_blank"
fontFamily="mono"
>
Join
</MetaButton>
) : null}
</MetaTileBody>
</MetaTile>
</LinkBox>
);

View File

@@ -2,6 +2,8 @@ import {
Box,
Heading,
HStack,
LinkBox,
LinkOverlay,
MetaTag,
MetaTile,
MetaTileBody,
@@ -12,7 +14,6 @@ import {
WrapItem,
} from '@metafam/ds';
import { computeRank } from '@metafam/utils';
import { MetaLink } from 'components/Link';
import { PlayerAvatar } from 'components/Player/PlayerAvatar';
import { PlayerContacts } from 'components/Player/PlayerContacts';
import { PlayerTileMemberships } from 'components/Player/PlayerTileMemberships';
@@ -24,6 +25,7 @@ import {
Skill,
} from 'graphql/autogen/types';
import { Patron } from 'graphql/types';
import NextLink from 'next/link';
import React, { useMemo } from 'react';
import { FaGlobe } from 'react-icons/fa';
import { getPlayerTimeZoneDisplay } from 'utils/dateHelpers';
@@ -62,98 +64,104 @@ export const PatronTile: React.FC<Props> = ({ index, patron }) => {
? `${description.substring(0, MAX_BIO_LENGTH - 9)}`
: description;
return (
<MetaTile>
<Box
bgImage={`url(${getPlayerCoverImage(player)})`}
bgSize="cover"
bgPosition="center"
position="absolute"
top="0"
left="0"
w="100%"
h="4.5rem"
/>
<MetaTileHeader>
<MetaLink
<LinkBox>
<MetaTile>
<Box
bgImage={`url(${getPlayerCoverImage(player)})`}
bgSize="cover"
bgPosition="center"
position="absolute"
top="0"
left="0"
w="100%"
h="4.5rem"
/>
<NextLink
as={`/player/${player.username}`}
href="/player/[username]"
key={player.id}
passHref
>
<VStack>
<PlayerAvatar player={player} size="xl" />
<Heading size="xs" color="white">
{getPlayerName(player)}
</Heading>
</VStack>
</MetaLink>
<Wrap w="100%" justify="center">
{patron.pSeedBalance ? (
<WrapItem>
<MetaTag size="md">
{`pSEED: ${Math.floor(
Number(utils.formatEther(patron.pSeedBalance)),
)}`}
</MetaTag>
</WrapItem>
<LinkOverlay>
<MetaTileHeader>
<VStack>
<PlayerAvatar player={player} size="xl" />
<Heading size="xs" color="white">
{getPlayerName(player)}
</Heading>
</VStack>
<Wrap w="100%" justify="center">
{patron.pSeedBalance ? (
<WrapItem>
<MetaTag size="md">
{`pSEED: ${Math.floor(
Number(utils.formatEther(patron.pSeedBalance)),
)}`}
</MetaTag>
</WrapItem>
) : null}
{patronRank ? (
<WrapItem>
<MetaTag
backgroundColor={patronRank?.toLowerCase()}
size="md"
color="blackAlpha.600"
>
{patronRank}
</MetaTag>
</WrapItem>
) : null}
<WrapItem>
<MetaTag size="md">{`XP: ${Math.floor(
player.total_xp,
)}`}</MetaTag>
</WrapItem>
</Wrap>
{tzDisplay?.timeZone ? (
<HStack alignItems="baseline" w="auto" justify="center">
<FaGlobe color="blueLight" fontSize="0.875rem" />
<Text fontSize="lg">{tzDisplay?.timeZone || '-'}</Text>
{tzDisplay?.offset ? (
<Text fontSize="sm">{tzDisplay?.offset}</Text>
) : (
''
)}
</HStack>
) : null}
{displayDescription ? (
<VStack spacing={2} align="stretch" pt="0.5rem">
<Text textStyle="caption">ABOUT</Text>
<Text fontSize="sm">{displayDescription}</Text>
</VStack>
) : null}
</MetaTileHeader>
</LinkOverlay>
</NextLink>
<MetaTileBody>
{player.Player_Skills.length ? (
<VStack spacing={2} align="stretch">
<Text textStyle="caption">SKILLS</Text>
<SkillsTags
skills={player.Player_Skills.map((s) => s.Skill) as Skill[]}
/>
</VStack>
) : null}
{patronRank ? (
<WrapItem>
<MetaTag
backgroundColor={patronRank?.toLowerCase()}
size="md"
color="blackAlpha.600"
>
{patronRank}
</MetaTag>
</WrapItem>
) : null}
<WrapItem>
<MetaTag size="md">{`XP: ${Math.floor(player.total_xp)}`}</MetaTag>
</WrapItem>
</Wrap>
{tzDisplay?.timeZone ? (
<HStack alignItems="baseline" w="auto" justify="center">
<FaGlobe color="blueLight" fontSize="0.875rem" />
<Text fontSize="lg">{tzDisplay?.timeZone || '-'}</Text>
{tzDisplay?.offset ? (
<Text fontSize="sm">{tzDisplay?.offset}</Text>
) : (
''
)}
</HStack>
) : null}
{displayDescription ? (
<VStack spacing={2} align="stretch" pt="0.5rem">
<Text textStyle="caption">ABOUT</Text>
<Text fontSize="sm">{displayDescription}</Text>
</VStack>
) : null}
</MetaTileHeader>
<MetaTileBody>
{player.Player_Skills.length ? (
<VStack spacing={2} align="stretch">
<Text textStyle="caption">SKILLS</Text>
<SkillsTags
skills={player.Player_Skills.map((s) => s.Skill) as Skill[]}
/>
</VStack>
) : null}
{player.daohausMemberships.length ? (
<VStack spacing={2} align="stretch">
<Text textStyle="caption">MEMBER OF</Text>
<PlayerTileMemberships player={player} />
</VStack>
) : null}
{player.Accounts.length ? (
<VStack spacing={2} align="stretch">
<Text textStyle="caption">CONTACT</Text>
<HStack mt="2">
<PlayerContacts player={player} />
</HStack>
</VStack>
) : null}
</MetaTileBody>
</MetaTile>
{player.daohausMemberships.length ? (
<VStack spacing={2} align="stretch">
<Text textStyle="caption">MEMBER OF</Text>
<PlayerTileMemberships player={player} />
</VStack>
) : null}
{player.Accounts.length ? (
<VStack spacing={2} align="stretch">
<Text textStyle="caption">CONTACT</Text>
<HStack mt="2">
<PlayerContacts player={player} />
</HStack>
</VStack>
) : null}
</MetaTileBody>
</MetaTile>
</LinkBox>
);
};

View File

@@ -0,0 +1,167 @@
import {
Box,
Heading,
HStack,
MetaTag,
MetaTile,
MetaTileBody,
MetaTileHeader,
LinkBox,
LinkOverlay,
Text,
VStack,
Wrap,
WrapItem,
} from '@metafam/ds';
import { computeRank } from '@metafam/utils';
import { MetaLink } from 'components/Link';
import { PlayerAvatar } from 'components/Player/PlayerAvatar';
import { PlayerContacts } from 'components/Player/PlayerContacts';
import { PlayerTileMemberships } from 'components/Player/PlayerTileMemberships';
import { SkillsTags } from 'components/Skills';
import { utils } from 'ethers';
import {
PlayerFragmentFragment,
PlayerRank_Enum,
Skill,
} from 'graphql/autogen/types';
import { Patron } from 'graphql/types';
import React, { useMemo } from 'react';
import { FaGlobe } from 'react-icons/fa';
import { getPlayerTimeZoneDisplay } from 'utils/dateHelpers';
import {
getPlayerCoverImage,
getPlayerDescription,
getPlayerName,
} from 'utils/playerHelpers';
const PATRON_RANKS = [
PlayerRank_Enum.Diamond,
PlayerRank_Enum.Platinum,
PlayerRank_Enum.Gold,
PlayerRank_Enum.Silver,
PlayerRank_Enum.Bronze,
];
const PATRONS_PER_RANK = [7, 7, 7, 14, 21];
type Props = {
patron: Patron;
index: number;
};
const MAX_BIO_LENGTH = 240;
export const PatronTile: React.FC<Props> = ({ index, patron }) => {
const player = patron as PlayerFragmentFragment;
const patronRank = computeRank(index, PATRONS_PER_RANK, PATRON_RANKS);
const tzDisplay = useMemo(() => getPlayerTimeZoneDisplay(player.timezone), [
player.timezone,
]);
const description = getPlayerDescription(player);
const displayDescription =
description && description.length > MAX_BIO_LENGTH
? `${description.substring(0, MAX_BIO_LENGTH - 9)}`
: description;
return (
<LinkBox>
<LinkOverlay href={`/player/${player.username}`}>
<MetaTile>
<Box
bgImage={`url(${getPlayerCoverImage(player)})`}
bgSize="cover"
bgPosition="center"
position="absolute"
top="0"
left="0"
w="100%"
h="4.5rem"
/>
<MetaTileHeader>
<MetaLink
as={`/player/${player.username}`}
href="/player/[username]"
key={player.id}
>
<VStack>
<PlayerAvatar player={player} size="xl" />
<Heading size="xs" color="white">
{getPlayerName(player)}
</Heading>
</VStack>
</MetaLink>
<Wrap w="100%" justify="center">
{patron.pSeedBalance ? (
<WrapItem>
<MetaTag size="md">
{`pSEED: ${Math.floor(
Number(utils.formatEther(patron.pSeedBalance)),
)}`}
</MetaTag>
</WrapItem>
) : null}
{patronRank ? (
<WrapItem>
<MetaTag
backgroundColor={patronRank?.toLowerCase()}
size="md"
color="blackAlpha.600"
>
{patronRank}
</MetaTag>
</WrapItem>
) : null}
<WrapItem>
<MetaTag size="md">{`XP: ${Math.floor(
player.total_xp,
)}`}</MetaTag>
</WrapItem>
</Wrap>
{tzDisplay?.timeZone ? (
<HStack alignItems="baseline" w="auto" justify="center">
<FaGlobe color="blueLight" fontSize="0.875rem" />
<Text fontSize="lg">{tzDisplay?.timeZone || '-'}</Text>
{tzDisplay?.offset ? (
<Text fontSize="sm">{tzDisplay?.offset}</Text>
) : (
''
)}
</HStack>
) : null}
{displayDescription ? (
<VStack spacing={2} align="stretch" pt="0.5rem">
<Text textStyle="caption">ABOUT</Text>
<Text fontSize="sm">{displayDescription}</Text>
</VStack>
) : null}
</MetaTileHeader>
<MetaTileBody>
{player.Player_Skills.length ? (
<VStack spacing={2} align="stretch">
<Text textStyle="caption">SKILLS</Text>
<SkillsTags
skills={player.Player_Skills.map((s) => s.Skill) as Skill[]}
/>
</VStack>
) : null}
{player.daohausMemberships.length ? (
<VStack spacing={2} align="stretch">
<Text textStyle="caption">MEMBER OF</Text>
<PlayerTileMemberships player={player} />
</VStack>
) : null}
{player.Accounts.length ? (
<VStack spacing={2} align="stretch">
<Text textStyle="caption">CONTACT</Text>
<HStack mt="2">
<PlayerContacts player={player} />
</HStack>
</VStack>
) : null}
</MetaTileBody>
</MetaTile>
</LinkOverlay>
</LinkBox>
);
};

View File

@@ -31,6 +31,7 @@ export const PlayerContacts: React.FC<Props> = ({
rel="noreferrer noopener"
size="xs"
colorScheme="twitter"
color="white"
leftIcon={<FaTwitter />}
>
{acc.identifier}
@@ -51,6 +52,7 @@ export const PlayerContacts: React.FC<Props> = ({
colorScheme="blackAlpha"
backgroundColor="black"
leftIcon={<FaGithub />}
color="white"
>
{acc.identifier}
</Button>
@@ -76,6 +78,7 @@ export const PlayerContacts: React.FC<Props> = ({
size="xs"
colorScheme="blackAlpha"
leftIcon={<FaEthereum />}
color="white"
>
{formatAddress(player.ethereum_address)}
</Button>
@@ -89,6 +92,7 @@ export const PlayerContacts: React.FC<Props> = ({
size="xs"
colorScheme="brightIdOrange"
leftIcon={<BrightIdIcon />}
color="white"
>
Verified
</Button>

View File

@@ -21,6 +21,7 @@ import {
PlayerFragmentFragment,
/* Player_Update_Column, */ Skill,
} from 'graphql/autogen/types';
import NextLink from 'next/link';
import React, { useMemo } from 'react';
import { FaGlobe } from 'react-icons/fa';
import { getPlayerTimeZoneDisplay } from 'utils/dateHelpers';
@@ -62,56 +63,73 @@ export const PlayerTile: React.FC<Props> = ({
w="100%"
h="4.5rem"
/>
<LinkOverlay href={`/player/${player.username}`}>
<MetaTileHeader>
<VStack>
<PlayerAvatar player={player} size="xl" />
<Heading size="xs" color="white">
{getPlayerName(player)}
</Heading>
</VStack>
<Wrap w="100%" justify="center">
{player.playerType?.title ? (
<WrapItem>
<MetaTag size="md">
{player.playerType?.title.toUpperCase()}
</MetaTag>
</WrapItem>
) : null}
{player.rank && (
<WrapItem>
<MetaTag
backgroundColor={player.rank?.toLowerCase()}
size="md"
color="blackAlpha.600"
>
{player.rank}
</MetaTag>
</WrapItem>
)}
<WrapItem>
<MetaTag size="md">XP: {Math.floor(player.total_xp)}</MetaTag>
</WrapItem>
</Wrap>
{tzDisplay?.timeZone ? (
<HStack alignItems="baseline" w="auto" justify="center">
<FaGlobe color="blueLight" fontSize="0.875rem" />
<Text fontSize="lg">{tzDisplay?.timeZone || '-'}</Text>
{tzDisplay?.offset ? (
<Text fontSize="sm">{tzDisplay?.offset}</Text>
) : (
''
)}
</HStack>
) : null}
{displayDescription ? (
<VStack spacing={2} align="stretch" pt="0.5rem">
<Text textStyle="caption">ABOUT</Text>
<Text fontSize="sm">{displayDescription}</Text>
<NextLink
as={`/player/${player.username}`}
href="/player/[username]"
passHref
>
<LinkOverlay>
<MetaTileHeader>
<VStack>
<PlayerAvatar player={player} size="xl" />
<Heading size="xs" color="white">
{getPlayerName(player)}
</Heading>
</VStack>
) : null}
</MetaTileHeader>
</LinkOverlay>
<Wrap w="100%" justify="center">
{player.playerType?.title ? (
<WrapItem>
<MetaTag size="md">
{player.playerType?.title.toUpperCase()}
</MetaTag>
</WrapItem>
) : null}
{player.rank && (
<WrapItem>
<MetaTag
backgroundColor={player.rank?.toLowerCase()}
size="md"
color="blackAlpha.600"
>
{player.rank}
</MetaTag>
</WrapItem>
)}
{player.rank && (
<WrapItem>
<MetaTag
backgroundColor={player.rank?.toLowerCase()}
size="md"
color="blackAlpha.600"
>
{player.rank}
</MetaTag>
</WrapItem>
)}
<WrapItem>
<MetaTag size="md">XP: {Math.floor(player.total_xp)}</MetaTag>
</WrapItem>
</Wrap>
{tzDisplay?.timeZone ? (
<HStack alignItems="baseline" w="auto" justify="center">
<FaGlobe color="blueLight" fontSize="0.875rem" />
<Text fontSize="lg">{tzDisplay?.timeZone || '-'}</Text>
{tzDisplay?.offset ? (
<Text fontSize="sm">{tzDisplay?.offset}</Text>
) : (
''
)}
</HStack>
) : null}
{displayDescription ? (
<VStack spacing={2} align="stretch" pt="0.5rem">
<Text textStyle="caption">ABOUT</Text>
<Text fontSize="sm">{displayDescription}</Text>
</VStack>
) : null}
</MetaTileHeader>
</LinkOverlay>
</NextLink>
<MetaTileBody>
{player.Player_Skills.length ? (
<VStack spacing={2} align="stretch">

View File

@@ -96,6 +96,7 @@ export const QuestFilter: React.FC<Props> = ({
variant="outline"
borderWidth="2px"
borderRadius="4px"
color="cyan.500"
px={4}
onClick={() =>
setQueryVariable(

View File

@@ -4,6 +4,8 @@ import {
Flex,
Heading,
HStack,
LinkBox,
LinkOverlay,
MetaTile,
MetaTileBody,
MetaTileHeader,
@@ -11,9 +13,9 @@ import {
VStack,
} from '@metafam/ds';
import BackgroundImage from 'assets/main-background.jpg';
import { MetaLink } from 'components/Link';
import { QuestFragmentFragment, Skill } from 'graphql/autogen/types';
import moment from 'moment';
import NextLink from 'next/link';
import React from 'react';
import { SkillsTags } from '../Skills';
@@ -24,55 +26,59 @@ type Props = {
};
export const QuestTile: React.FC<Props> = ({ quest }) => (
<MetaTile>
<Box
bgImage={`url(${BackgroundImage})`}
bgSize="cover"
bgPosition="center"
position="absolute"
top="0"
left="0"
w="100%"
h="3.5rem"
/>
<Flex justify="center" mb={4}>
<Avatar
size="lg"
src={quest.guild.logo || undefined}
name={quest.guild.name}
<LinkBox>
<MetaTile>
<Box
bgImage={`url(${BackgroundImage})`}
bgSize="cover"
bgPosition="center"
position="absolute"
top="0"
left="0"
w="100%"
h="3.5rem"
/>
</Flex>
<MetaTileHeader>
<VStack>
<MetaLink as={`/quest/${quest.id}`} href="/quest/[id]">
<Heading size="sm" color="white" align="center">
{quest.title}
</Heading>
</MetaLink>
<HStack mt={2}>
<RepetitionTag
repetition={quest.repetition}
cooldown={quest.cooldown}
/>
<StatusTag status={quest.status} />
<Text>
<i>{moment(quest.created_at).fromNow()}</i>
</Text>
</HStack>
</VStack>
</MetaTileHeader>
<MetaTileBody flex={1}>
<VStack spacing={2} align="stretch">
<Text textStyle="caption">DESCRIPTION</Text>
<Text noOfLines={4}>{quest.description}</Text>
<Text textStyle="caption">SKILLS</Text>
<SkillsTags
skills={quest.quest_skills.map((s) => s.skill) as Skill[]}
maxSkills={4}
<Flex justify="center" mb={4}>
<Avatar
size="lg"
src={quest.guild.logo || undefined}
name={quest.guild.name}
/>
</VStack>
</MetaTileBody>
</MetaTile>
</Flex>
<NextLink as={`/quest/${quest.id}`} href="/quest/[id]" passHref>
<LinkOverlay>
<MetaTileHeader>
<VStack>
<Heading size="sm" color="white" align="center">
{quest.title}
</Heading>
<HStack mt={2}>
<RepetitionTag
repetition={quest.repetition}
cooldown={quest.cooldown}
/>
<StatusTag status={quest.status} />
<Text>
<i>{moment(quest.created_at).fromNow()}</i>
</Text>
</HStack>
</VStack>
</MetaTileHeader>
</LinkOverlay>
</NextLink>
<MetaTileBody flex={1}>
<VStack spacing={2} align="stretch">
<Text textStyle="caption">DESCRIPTION</Text>
<Text noOfLines={4}>{quest.description}</Text>
<Text textStyle="caption">SKILLS</Text>
<SkillsTags
skills={quest.quest_skills.map((s) => s.skill) as Skill[]}
maxSkills={4}
/>
</VStack>
</MetaTileBody>
</MetaTile>
</LinkBox>
);

View File

@@ -18,7 +18,7 @@
"@urql/exchange-retry": "0.2.1",
"@walletconnect/web3-provider": "1.5.2",
"copy-to-clipboard": "3.3.1",
"ethers": "5.4.1",
"ethers": "5.4.3",
"fake-tag": "3.0.0",
"graphql": "15.5.0",
"isomorphic-unfetch": "3.1.0",
@@ -35,6 +35,6 @@
"react-icons": "4.2.0",
"react-qr-svg": "2.3.0",
"urql": "2.0.2",
"web3modal": "1.9.3"
"web3modal": "1.9.4"
}
}

845
yarn.lock

File diff suppressed because it is too large Load Diff