From 7492ae5bd6c9bc87ff653fb70b6c35fcdc84b2d1 Mon Sep 17 00:00:00 2001 From: Hammad Jutt Date: Mon, 18 Jan 2021 11:44:52 -0700 Subject: [PATCH] Remove unused pages / components and fix usage of Wrap with WrapItem (#284) * Remove unused pages / components * Add WrapItem around components inside Wrap component New version of Chakra requires WrapItem around any components that have Wrap * Update LoginButton to link to own profile and show Avatar (#285) * Update LoginButton to link to own profile and show Avatar * Change SetupUsername to explicitly mention "username" --- packages/design-system/src/index.ts | 1 + packages/web/components/Guild/GuildLinks.tsx | 48 ++++++------ packages/web/components/Guild/GuildTile.tsx | 10 ++- packages/web/components/Link.tsx | 4 +- packages/web/components/LoginButton.tsx | 69 ++++++++++------ .../web/components/Player/PlayerContacts.tsx | 78 ++++++++++--------- packages/web/components/Player/PlayerTile.tsx | 68 +++++++++------- .../Player/Section/PlayerSkills.tsx | 23 +++--- .../web/components/Setup/SetupMemberships.tsx | 17 +++- .../web/components/Setup/SetupUsername.tsx | 2 +- .../web/components/Welcome/RegisterPlayer.tsx | 40 ---------- .../web/components/Welcome/WelcomeHeader.tsx | 20 ----- .../web/components/Welcome/WelcomePlayer.tsx | 23 ------ packages/web/pages/register.tsx | 24 ------ packages/web/pages/welcome.tsx | 24 ------ packages/web/utils/playerHelpers.ts | 8 +- 16 files changed, 194 insertions(+), 265 deletions(-) delete mode 100644 packages/web/components/Welcome/RegisterPlayer.tsx delete mode 100644 packages/web/components/Welcome/WelcomeHeader.tsx delete mode 100644 packages/web/components/Welcome/WelcomePlayer.tsx delete mode 100644 packages/web/pages/register.tsx delete mode 100644 packages/web/pages/welcome.tsx diff --git a/packages/design-system/src/index.ts b/packages/design-system/src/index.ts index dc18eb32..5efef971 100644 --- a/packages/design-system/src/index.ts +++ b/packages/design-system/src/index.ts @@ -31,6 +31,7 @@ export { Stack, Text, Wrap, + WrapItem, HStack, VStack, useTheme, diff --git a/packages/web/components/Guild/GuildLinks.tsx b/packages/web/components/Guild/GuildLinks.tsx index 55ab063a..17b92dfa 100644 --- a/packages/web/components/Guild/GuildLinks.tsx +++ b/packages/web/components/Guild/GuildLinks.tsx @@ -1,4 +1,4 @@ -import { Button, Wrap } from '@metafam/ds'; +import { Button, Wrap, WrapItem } from '@metafam/ds'; import { GuildFragmentFragment } from 'graphql/autogen/types'; import React from 'react'; import { FaDiscord, FaGlobe } from 'react-icons/fa'; @@ -11,29 +11,33 @@ export const GuildLinks: React.FC = ({ guild }) => { return ( {guild.website_url ? ( - + + + ) : null} {guild.discord_invite_url ? ( - + + + ) : null} ); diff --git a/packages/web/components/Guild/GuildTile.tsx b/packages/web/components/Guild/GuildTile.tsx index b06792f4..a33ac273 100644 --- a/packages/web/components/Guild/GuildTile.tsx +++ b/packages/web/components/Guild/GuildTile.tsx @@ -1,5 +1,6 @@ import { Avatar, + Box, Flex, Heading, HStack, @@ -7,7 +8,6 @@ import { MetaTag, Text, VStack, - Wrap, } from '@metafam/ds'; import { GuildLinks } from 'components/Guild/GuildLinks'; import { GuildFragmentFragment } from 'graphql/autogen/types'; @@ -42,9 +42,11 @@ export const GuildTile: React.FC = ({ guild }) => ( {guild.name} - - {guild.type ? {guild.type} GUILD : null} - + {guild.type ? ( + + {guild.type} GUILD + + ) : null} {guild.description ? ( diff --git a/packages/web/components/Link.tsx b/packages/web/components/Link.tsx index 724284d8..4837304a 100644 --- a/packages/web/components/Link.tsx +++ b/packages/web/components/Link.tsx @@ -10,9 +10,8 @@ export const MetaLink: React.FC = ({ href, as, passHref, - prefetch, replace, - scroll, + scroll = true, shallow, isExternal, ...props @@ -30,7 +29,6 @@ export const MetaLink: React.FC = ({ href={href} as={as} passHref={passHref || true} - prefetch={prefetch} replace={replace} scroll={scroll} shallow={shallow} diff --git a/packages/web/components/LoginButton.tsx b/packages/web/components/LoginButton.tsx index 676814c6..0f96477a 100644 --- a/packages/web/components/LoginButton.tsx +++ b/packages/web/components/LoginButton.tsx @@ -1,44 +1,69 @@ -import { Box, Button, HStack, MetaButton, Text } from '@metafam/ds'; +import { + Avatar, + Box, + Button, + HStack, + MetaButton, + Spinner, + Text, +} from '@metafam/ds'; import { MetaLink } from 'components/Link'; import { Web3Context } from 'contexts/Web3Context'; import React, { useCallback, useContext } from 'react'; -import { formatAddress } from '../utils/playerHelpers'; +import { useUser } from '../lib/hooks'; +import { getPlayerImage, getPlayerName } from '../utils/playerHelpers'; export const LoginButton: React.FC = () => { - const { connectWeb3, disconnect, isConnected, address } = useContext( - Web3Context, - ); + const { connectWeb3, disconnect, isConnected } = useContext(Web3Context); + + const { user, fetching } = useUser(); const handleLoginClick = useCallback(async () => { await connectWeb3(); }, [connectWeb3]); if (isConnected) { + if (fetching) { + return ; + } + if (!user?.player) return null; return ( - - - {formatAddress(address)} - - - Setup profile - | - - - + {user.player ? getPlayerName(user.player) : 'Unknown'} + + + Setup profile + | + + + + ); } return ( - Connect wallet + Connect ); }; diff --git a/packages/web/components/Player/PlayerContacts.tsx b/packages/web/components/Player/PlayerContacts.tsx index cb9aecbb..429fe8d4 100644 --- a/packages/web/components/Player/PlayerContacts.tsx +++ b/packages/web/components/Player/PlayerContacts.tsx @@ -1,4 +1,4 @@ -import { Button, Wrap } from '@metafam/ds'; +import { Button, Wrap, WrapItem } from '@metafam/ds'; import { PlayerFragmentFragment } from 'graphql/autogen/types'; import React from 'react'; import { FaEthereum, FaGithub, FaTwitter } from 'react-icons/fa'; @@ -16,52 +16,56 @@ export const PlayerContacts: React.FC = ({ player }) => { if (acc.type === 'TWITTER') { const link = `https://twitter.com/${acc.identifier}`; return ( - + + + ); } if (acc.type === 'GITHUB') { const link = `https://github.com/${acc.identifier}`; return ( - + + + ); } return null; })} {player.ethereum_address ? ( - + + + ) : null} ); diff --git a/packages/web/components/Player/PlayerTile.tsx b/packages/web/components/Player/PlayerTile.tsx index 7daa9fe8..a9211571 100644 --- a/packages/web/components/Player/PlayerTile.tsx +++ b/packages/web/components/Player/PlayerTile.tsx @@ -8,6 +8,7 @@ import { Text, VStack, Wrap, + WrapItem, } from '@metafam/ds'; import { MetaLink } from 'components/Link'; import { PlayerContacts } from 'components/Player/PlayerContacts'; @@ -71,18 +72,26 @@ export const PlayerTile: React.FC = ({ player }) => ( {player.playerType?.title ? ( - {player.playerType?.title.toUpperCase()} + + + {player.playerType?.title.toUpperCase()} + + ) : null} {player.rank && ( - - {player.rank} - + + + {player.rank} + + )} - XP: {Math.floor(player.total_xp)} + + XP: {Math.floor(player.total_xp)} + {player.box_profile?.description ? ( @@ -101,19 +110,22 @@ export const PlayerTile: React.FC = ({ player }) => ( {player.Player_Skills.slice(0, SHOW_SKILLS).map(({ Skill }) => ( - - {Skill.name} - + + + {Skill.name} + + ))} {player.Player_Skills.length > SHOW_SKILLS && ( - - {`+${player.Player_Skills.length - SHOW_SKILLS}`} - + + + {`+${player.Player_Skills.length - SHOW_SKILLS}`} + + )} @@ -128,14 +140,18 @@ export const PlayerTile: React.FC = ({ player }) => ( {player.daohausMemberships .slice(0, SHOW_MEMBERSHIPS) .map((member) => ( - - {member.moloch.title} - + + + {member.moloch.title} + + ))} {player.daohausMemberships.length > SHOW_MEMBERSHIPS && ( - - {`+${player.daohausMemberships.length - SHOW_MEMBERSHIPS}`} - + + + {`+${player.daohausMemberships.length - SHOW_MEMBERSHIPS}`} + + )} diff --git a/packages/web/components/Player/Section/PlayerSkills.tsx b/packages/web/components/Player/Section/PlayerSkills.tsx index cdfa5dc9..173ac8ed 100644 --- a/packages/web/components/Player/Section/PlayerSkills.tsx +++ b/packages/web/components/Player/Section/PlayerSkills.tsx @@ -1,4 +1,4 @@ -import { MetaTag, Wrap } from '@metafam/ds'; +import { MetaTag, Wrap, WrapItem } from '@metafam/ds'; import { PlayerFragmentFragment } from 'graphql/autogen/types'; import { SkillColors } from 'graphql/types'; import React from 'react'; @@ -14,18 +14,15 @@ export const PlayerSkills: React.FC = ({ player, onRemoveClick }) => { {(player.Player_Skills || []).map(({ Skill }) => ( - - {Skill.name} - + + + {Skill.name} + + ))} diff --git a/packages/web/components/Setup/SetupMemberships.tsx b/packages/web/components/Setup/SetupMemberships.tsx index 9220f63d..1b74d485 100644 --- a/packages/web/components/Setup/SetupMemberships.tsx +++ b/packages/web/components/Setup/SetupMemberships.tsx @@ -1,4 +1,11 @@ -import { MetaButton, MetaHeading, MetaTag, Text, Wrap } from '@metafam/ds'; +import { + MetaButton, + MetaHeading, + MetaTag, + Text, + Wrap, + WrapItem, +} from '@metafam/ds'; import { FlexContainer } from 'components/Container'; import { useSetupFlow } from 'contexts/SetupContext'; import { getMemberships } from 'graphql/getMemberships'; @@ -44,9 +51,11 @@ export const SetupMemberships: React.FC = () => { {memberships.map((member) => ( - - {member.moloch.title} - + + + {member.moloch.title} + + ))} diff --git a/packages/web/components/Setup/SetupUsername.tsx b/packages/web/components/Setup/SetupUsername.tsx index 9f9e5f5a..885b790f 100644 --- a/packages/web/components/Setup/SetupUsername.tsx +++ b/packages/web/components/Setup/SetupUsername.tsx @@ -52,7 +52,7 @@ export const SetupUsername: React.FC = () => { return ( - What do we call you? + What username would you like? { - return ( - - Register your Player account - - Connect Wallet - - - ); -}; - -type ButtonProps = React.ComponentProps; - -const RegisterButton: React.FC = ({ children, ...props }) => { - const { connectWeb3 } = useWeb3(); - const router = useRouter(); - const login = async () => { - await connectWeb3(); - router.push('/profile/success'); - }; - return ( - - ); -}; diff --git a/packages/web/components/Welcome/WelcomeHeader.tsx b/packages/web/components/Welcome/WelcomeHeader.tsx deleted file mode 100644 index db249eae..00000000 --- a/packages/web/components/Welcome/WelcomeHeader.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { Flex, Image, SimpleGrid, Text } from '@metafam/ds'; -import MetaGameImage from 'assets/metagame.png'; -import { MetaLink } from 'components/Link'; -import React from 'react'; - -export const WelcomeHeader: React.FC = () => { - return ( - - How to play MetaGame - - MetaGame - - - - Already a Player? Sign in - - - - ); -}; diff --git a/packages/web/components/Welcome/WelcomePlayer.tsx b/packages/web/components/Welcome/WelcomePlayer.tsx deleted file mode 100644 index 0484675d..00000000 --- a/packages/web/components/Welcome/WelcomePlayer.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Image, MetaButton, MetaHeading, Text } from '@metafam/ds'; -import PlayersImage from 'assets/players.png'; -import { FlexContainer } from 'components/Container'; -import { MetaLink } from 'components/Link'; -import React from 'react'; - -export const WelcomePlayer: React.FC = () => { - return ( - - Player - Become a Player - - MetaGame is an idea we can build a new world, a layer atop of the old - one. A more collaborative, transparent & caring world. A world in which - self-interest is better aligned with the common good & the ones creating - value are more directly rewarded. - - - Register - - - ); -}; diff --git a/packages/web/pages/register.tsx b/packages/web/pages/register.tsx deleted file mode 100644 index 7417efc5..00000000 --- a/packages/web/pages/register.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import BackgroundImage from 'assets/login-background.jpg'; -import { PageContainer } from 'components/Container'; -import { RegisterPlayer } from 'components/Welcome/RegisterPlayer'; -import { WelcomeHeader } from 'components/Welcome/WelcomeHeader'; -import React from 'react'; - -export const getStaticProps = async () => { - return { - props: { - hideAppDrawer: true, - }, - }; -}; - -const Register: React.FC = () => { - return ( - - - - - ); -}; - -export default Register; diff --git a/packages/web/pages/welcome.tsx b/packages/web/pages/welcome.tsx deleted file mode 100644 index f647648e..00000000 --- a/packages/web/pages/welcome.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import BackgroundImage from 'assets/login-background.jpg'; -import { PageContainer } from 'components/Container'; -import { WelcomeHeader } from 'components/Welcome/WelcomeHeader'; -import { WelcomePlayer } from 'components/Welcome/WelcomePlayer'; -import React from 'react'; - -export const getStaticProps = async () => { - return { - props: { - hideAppDrawer: true, - }, - }; -}; - -const Welcome: React.FC = () => { - return ( - - - - - ); -}; - -export default Welcome; diff --git a/packages/web/utils/playerHelpers.ts b/packages/web/utils/playerHelpers.ts index 53862308..7260c478 100644 --- a/packages/web/utils/playerHelpers.ts +++ b/packages/web/utils/playerHelpers.ts @@ -1,4 +1,5 @@ import BackgroundImage from 'assets/tile-background.jpg'; +import { ethers } from 'ethers'; import { PlayerFragmentFragment } from '../graphql/autogen/types'; @@ -10,10 +11,13 @@ export const getPlayerCoverImage = (player: PlayerFragmentFragment): string => player.box_profile?.coverImageUrl || BackgroundImage; export const getPlayerName = (player: PlayerFragmentFragment): string => - player.box_profile?.name || player.username; + player.box_profile?.name || formatUsernameIfAddress(player.username); export const getPlayerDescription = (player: PlayerFragmentFragment): string => player.box_profile?.description || ''; -export const formatAddress = (address = '') => +export const formatAddress = (address = ''): string => `${address.slice(0, 6)}...${address.slice(-4)}`; + +export const formatUsernameIfAddress = (username = ''): string => + ethers.utils.isAddress(username) ? formatAddress(username) : username;