1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

[MMI] update eth overview component (#18625)

* wip

* adds mmi stake button and portfolio

* removes unnecessary js icon

* prettier
This commit is contained in:
António Regadas 2023-04-21 12:16:09 +01:00 committed by GitHub
parent 16d8fc2908
commit 4f4e9fb29c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 182 additions and 86 deletions

View File

@ -3793,6 +3793,9 @@
"stableLowercase": { "stableLowercase": {
"message": "stable" "message": "stable"
}, },
"stake": {
"message": "Stake"
},
"stateLogError": { "stateLogError": {
"message": "Error in retrieving state logs." "message": "Error in retrieving state logs."
}, },

View File

@ -0,0 +1,14 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clipPath="url(#clip0_735_24127)">
<path
d="M3.99902 19C7.24796 17.5 8.87242 16.75 10.4969 16.75M16.9948 19C13.7458 17.5 12.1214 16.75 10.4969 16.75M10.4969 16.75V11.5M10.4969 11.5L10 10.4091M10.4969 11.5V9.5L10.9967 8.5M10 10.4091C10 10.4091 5.00889 11.0985 2.99935 9.5C1.29118 8.14126 1 4.5 1 4.5C1 4.5 5.55008 3.95155 7.54545 5.90909C8.91802 7.25563 10 10.4091 10 10.4091ZM10.9967 8.5C10.9967 8.5 11.5374 4.11404 13.4959 2.5C15.2137 1.08439 18.9941 1 18.9941 1C18.9941 1 19.1777 5.2683 17.4946 7C15.6792 8.86783 10.9967 8.5 10.9967 8.5Z"
strokeWidth="1.5"
strokeLinecap="round"
/>
</g>
<defs>
<clipPath id="clip0_735_24127">
<rect width="20" height="20" fill="white" />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 873 B

View File

@ -4,6 +4,13 @@ import { useDispatch, useSelector } from 'react-redux';
import classnames from 'classnames'; import classnames from 'classnames';
import { useHistory, useLocation } from 'react-router-dom'; import { useHistory, useLocation } from 'react-router-dom';
///: BEGIN:ONLY_INCLUDE_IN(mmi)
import {
getMmiPortfolioEnabled,
getMmiPortfolioUrl,
} from '../../../selectors/institutional/selectors';
///: END:ONLY_INCLUDE_IN
import Identicon from '../../ui/identicon'; import Identicon from '../../ui/identicon';
import { I18nContext } from '../../../contexts/i18n'; import { I18nContext } from '../../../contexts/i18n';
import { import {
@ -64,6 +71,56 @@ const EthOverview = ({ className }) => {
const primaryTokenImage = useSelector(getNativeCurrencyImage); const primaryTokenImage = useSelector(getNativeCurrencyImage);
const defaultSwapsToken = useSelector(getSwapsDefaultToken); const defaultSwapsToken = useSelector(getSwapsDefaultToken);
///: BEGIN:ONLY_INCLUDE_IN(mmi)
const mmiPortfolioEnabled = useSelector(getMmiPortfolioEnabled);
const mmiPortfolioUrl = useSelector(getMmiPortfolioUrl);
const portfolioEvent = () => {
trackEvent({
category: 'Navigation',
event: 'Clicked Portfolio Button',
});
};
const stakingEvent = () => {
trackEvent({
category: 'Navigation',
event: 'Clicked Stake Button',
});
};
const renderInstitutionalButtons = () => {
return (
<>
<IconButton
className="eth-overview__button"
Icon={<Icon name={IconName.Stake} color={IconColor.primaryDefault} />}
label={t('stake')}
onClick={() => {
stakingEvent();
global.platform.openTab({
url: 'https://metamask-institutional.io/staking',
});
}}
/>
{mmiPortfolioEnabled && (
<IconButton
className="eth-overview__button"
Icon={
<Icon name={IconName.Diagram} color={IconColor.primaryDefault} />
}
label={t('portfolio')}
onClick={() => {
portfolioEvent();
window.open(mmiPortfolioUrl, '_blank');
}}
/>
)}
</>
);
};
///: END:ONLY_INCLUDE_IN
const { openBuyCryptoInPdapp } = useRamps(); const { openBuyCryptoInPdapp } = useRamps();
return ( return (
@ -98,7 +155,9 @@ const EthOverview = ({ className }) => {
{balanceIsCached ? ( {balanceIsCached ? (
<span className="eth-overview__cached-star">*</span> <span className="eth-overview__cached-star">*</span>
) : null} ) : null}
{process.env.MULTICHAIN ? null : ( {
///: BEGIN:ONLY_INCLUDE_IN(main,beta,flask)
process.env.MULTICHAIN ? null : (
<ButtonIcon <ButtonIcon
className="eth-overview__portfolio-button" className="eth-overview__portfolio-button"
data-testid="home__portfolio-site" data-testid="home__portfolio-site"
@ -127,7 +186,9 @@ const EthOverview = ({ className }) => {
); );
}} }}
/> />
)} )
///: END:ONLY_INCLUDE_IN
}
</div> </div>
{showFiat && balance && ( {showFiat && balance && (
<UserPreferencedCurrencyDisplay <UserPreferencedCurrencyDisplay
@ -147,9 +208,13 @@ const EthOverview = ({ className }) => {
} }
buttons={ buttons={
<> <>
{
///: BEGIN:ONLY_INCLUDE_IN(main,beta,flask)
<IconButton <IconButton
className="eth-overview__button" className="eth-overview__button"
Icon={<Icon name={IconName.Add} color={IconColor.primaryInverse} />} Icon={
<Icon name={IconName.Add} color={IconColor.primaryInverse} />
}
disabled={!isBuyableChain} disabled={!isBuyableChain}
data-testid="eth-overview-buy" data-testid="eth-overview-buy"
label={t('buy')} label={t('buy')}
@ -165,6 +230,15 @@ const EthOverview = ({ className }) => {
}); });
}} }}
/> />
///: END:ONLY_INCLUDE_IN
}
{
///: BEGIN:ONLY_INCLUDE_IN(mmi)
renderInstitutionalButtons()
///: END:ONLY_INCLUDE_IN
}
<IconButton <IconButton
className="eth-overview__button" className="eth-overview__button"
data-testid="eth-overview-send" data-testid="eth-overview-send"
@ -234,6 +308,8 @@ const EthOverview = ({ className }) => {
) )
} }
/> />
{
///: BEGIN:ONLY_INCLUDE_IN(main,beta,flask)
<IconButton <IconButton
className="eth-overview__button" className="eth-overview__button"
disabled={!isBridgeChain} disabled={!isBridgeChain}
@ -274,6 +350,8 @@ const EthOverview = ({ className }) => {
) )
} }
/> />
///: END:ONLY_INCLUDE_IN
}
</> </>
} }
className={className} className={className}

View File

@ -132,6 +132,7 @@ export enum IconName {
Snaps = 'snaps', Snaps = 'snaps',
Speedometer = 'speedometer', Speedometer = 'speedometer',
Star = 'star', Star = 'star',
Stake = 'stake',
Student = 'student', Student = 'student',
SwapHorizontal = 'swap-horizontal', SwapHorizontal = 'swap-horizontal',
SwapVertical = 'swap-vertical', SwapVertical = 'swap-vertical',