Commit 2fde0bba authored by Max Alekseenko's avatar Max Alekseenko

rewards button styles refactoring

parent 487dfb33
...@@ -54,8 +54,8 @@ const HeroBanner = () => { ...@@ -54,8 +54,8 @@ const HeroBanner = () => {
} }
</Heading> </Heading>
{ config.UI.navigation.layout === 'vertical' && ( { config.UI.navigation.layout === 'vertical' && (
<Box display={{ base: 'none', lg: 'block' }}> <Box display={{ base: 'none', lg: 'flex' }} gap={ 2 }>
{ config.features.rewards.isEnabled && <RewardsButton isHomePage/> } { config.features.rewards.isEnabled && <RewardsButton variant="hero"/> }
{ {
(config.features.account.isEnabled && <UserProfileDesktop buttonVariant="hero"/>) || (config.features.account.isEnabled && <UserProfileDesktop buttonVariant="hero"/>) ||
(config.features.blockchainInteraction.isEnabled && <UserWalletDesktop buttonVariant="hero"/>) (config.features.blockchainInteraction.isEnabled && <UserWalletDesktop buttonVariant="hero"/>)
......
import { chakra, Flex, Tooltip, Skeleton, Box } from '@chakra-ui/react'; import { chakra, Flex, Tooltip, Skeleton } from '@chakra-ui/react';
import React from 'react'; import React from 'react';
import type { MarketplaceAppOverview, MarketplaceAppSecurityReport, ContractListTypes } from 'types/client/marketplace'; import type { MarketplaceAppOverview, MarketplaceAppSecurityReport, ContractListTypes } from 'types/client/marketplace';
...@@ -99,13 +99,13 @@ const MarketplaceAppTopBar = ({ appId, data, isLoading, securityReport }: Props) ...@@ -99,13 +99,13 @@ const MarketplaceAppTopBar = ({ appId, data, isLoading, securityReport }: Props)
source="App page" source="App page"
/> />
{ !isMobile && ( { !isMobile && (
<Box ml="auto"> <Flex ml="auto" gap={ 2 }>
{ config.features.rewards.isEnabled && <RewardsButton size="sm"/> } { config.features.rewards.isEnabled && <RewardsButton size="sm"/> }
{ {
(config.features.account.isEnabled && <UserProfileDesktop buttonSize="sm"/>) || (config.features.account.isEnabled && <UserProfileDesktop buttonSize="sm"/>) ||
(config.features.blockchainInteraction.isEnabled && <UserWalletDesktop buttonSize="sm"/>) (config.features.blockchainInteraction.isEnabled && <UserWalletDesktop buttonSize="sm"/>)
} }
</Box> </Flex>
) } ) }
</Flex> </Flex>
{ contractListType && ( { contractListType && (
......
import type { ButtonProps } from '@chakra-ui/react';
import { Button, chakra, Tooltip } from '@chakra-ui/react'; import { Button, chakra, Tooltip } from '@chakra-ui/react';
import React from 'react'; import React from 'react';
import { route } from 'nextjs-routes'; import { route } from 'nextjs-routes';
import { useRewardsContext } from 'lib/contexts/rewards'; import { useRewardsContext } from 'lib/contexts/rewards';
import useIsMobile from 'lib/hooks/useIsMobile';
import IconSvg from 'ui/shared/IconSvg'; import IconSvg from 'ui/shared/IconSvg';
import LinkInternal from 'ui/shared/links/LinkInternal'; import LinkInternal from 'ui/shared/links/LinkInternal';
type Props = { type Props = {
isHomePage?: boolean; size?: ButtonProps['size'];
isMobile?: boolean; variant?: ButtonProps['variant'];
size?: 'sm' | 'md';
}; };
const RewardsButton = ({ isHomePage, isMobile, size }: Props) => { const RewardsButton = ({ variant = 'header', size }: Props) => {
const { apiToken, openLoginModal, dailyReward, balance, isDailyRewardLoading, isBalanceLoading } = useRewardsContext(); const { apiToken, openLoginModal, dailyReward, balance, isDailyRewardLoading, isBalanceLoading } = useRewardsContext();
const isMobile = useIsMobile();
return ( return (
<Tooltip <Tooltip
label="Earn merits for using Blockscout" label="Earn merits for using Blockscout"
textAlign="center" textAlign="center"
padding={ 2 } padding={ 2 }
openDelay={ 500 } openDelay={ 500 }
display={ isMobile ? 'none' : 'flex' } isDisabled={ isMobile }
width="150px" width="150px"
> >
<Button <Button
variant={ isHomePage ? 'hero' : 'header' } variant={ variant }
data-selected={ Boolean(apiToken) } data-selected={ Boolean(apiToken) }
flexShrink={ 0 } flexShrink={ 0 }
as={ apiToken ? LinkInternal : 'button' } as={ apiToken ? LinkInternal : 'button' }
...@@ -33,8 +35,7 @@ const RewardsButton = ({ isHomePage, isMobile, size }: Props) => { ...@@ -33,8 +35,7 @@ const RewardsButton = ({ isHomePage, isMobile, size }: Props) => {
onClick={ apiToken ? undefined : openLoginModal } onClick={ apiToken ? undefined : openLoginModal }
fontSize="sm" fontSize="sm"
size={ size } size={ size }
mr={ isMobile ? 0 : 2 } px={ 2.5 }
boxSize={ isMobile ? '40px' : 'auto' }
isLoading={ isDailyRewardLoading || isBalanceLoading } isLoading={ isDailyRewardLoading || isBalanceLoading }
loadingText={ isMobile ? undefined : 'Merits' } loadingText={ isMobile ? undefined : 'Merits' }
textDecoration="none !important" textDecoration="none !important"
...@@ -45,7 +46,7 @@ const RewardsButton = ({ isHomePage, isMobile, size }: Props) => { ...@@ -45,7 +46,7 @@ const RewardsButton = ({ isHomePage, isMobile, size }: Props) => {
flexShrink={ 0 } flexShrink={ 0 }
mx={ -1 } mx={ -1 }
/> />
<chakra.span display={ isMobile ? 'none' : 'inline' } ml={ 2 }> <chakra.span display={{ base: 'none', md: 'inline' }} ml={ 2 }>
{ apiToken ? balance?.total : 'Merits' } { apiToken ? balance?.total : 'Merits' }
</chakra.span> </chakra.span>
</Button> </Button>
......
...@@ -38,7 +38,7 @@ const HeaderDesktop = ({ renderSearchBar, isMarketplaceAppPage }: Props) => { ...@@ -38,7 +38,7 @@ const HeaderDesktop = ({ renderSearchBar, isMarketplaceAppPage }: Props) => {
{ searchBar } { searchBar }
</Box> </Box>
{ config.UI.navigation.layout === 'vertical' && ( { config.UI.navigation.layout === 'vertical' && (
<Box display="flex" flexShrink={ 0 }> <Box display="flex" gap={ 2 } flexShrink={ 0 }>
{ config.features.rewards.isEnabled && <RewardsButton/> } { config.features.rewards.isEnabled && <RewardsButton/> }
{ {
(config.features.account.isEnabled && <UserProfileDesktop/>) || (config.features.account.isEnabled && <UserProfileDesktop/>) ||
......
...@@ -49,7 +49,7 @@ const HeaderMobile = ({ hideSearchBar, renderSearchBar }: Props) => { ...@@ -49,7 +49,7 @@ const HeaderMobile = ({ hideSearchBar, renderSearchBar }: Props) => {
<Burger/> <Burger/>
<NetworkLogo ml={ 2 } mr="auto"/> <NetworkLogo ml={ 2 } mr="auto"/>
<Flex columnGap={ 2 }> <Flex columnGap={ 2 }>
{ config.features.rewards.isEnabled && <RewardsButton isMobile/> } { config.features.rewards.isEnabled && <RewardsButton/> }
{ {
(config.features.account.isEnabled && <UserProfileMobile/>) || (config.features.account.isEnabled && <UserProfileMobile/>) ||
(config.features.blockchainInteraction.isEnabled && <UserWalletMobile/>) || (config.features.blockchainInteraction.isEnabled && <UserWalletMobile/>) ||
......
...@@ -39,11 +39,13 @@ const NavigationDesktop = () => { ...@@ -39,11 +39,13 @@ const NavigationDesktop = () => {
}) } }) }
</Flex> </Flex>
</chakra.nav> </chakra.nav>
{ config.features.rewards.isEnabled && <RewardsButton size="sm"/> } <Flex gap={ 2 }>
{ { config.features.rewards.isEnabled && <RewardsButton size="sm"/> }
(config.features.account.isEnabled && <UserProfileDesktop buttonSize="sm"/>) || {
(config.features.blockchainInteraction.isEnabled && <UserWalletDesktop buttonSize="sm"/>) (config.features.account.isEnabled && <UserProfileDesktop buttonSize="sm"/>) ||
} (config.features.blockchainInteraction.isEnabled && <UserWalletDesktop buttonSize="sm"/>)
}
</Flex>
</Flex> </Flex>
</Box> </Box>
); );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment