diff --git a/ui/components/app/edit-gas-display/edit-gas-display.component.js b/ui/components/app/edit-gas-display/edit-gas-display.component.js index 4699ea0e6..9bb7ec113 100644 --- a/ui/components/app/edit-gas-display/edit-gas-display.component.js +++ b/ui/components/app/edit-gas-display/edit-gas-display.component.js @@ -15,7 +15,7 @@ import RadioGroup from '../../ui/radio-group/radio-group.component'; import AdvancedGasControls from '../advanced-gas-controls/advanced-gas-controls.component'; import { I18nContext } from '../../../contexts/i18n'; -import ActionableMessage from '../../../pages/swaps/actionable-message'; +import ActionableMessage from '../../ui/actionable-message/actionable-message'; export default function EditGasDisplay({ alwaysShowForm, diff --git a/ui/pages/swaps/actionable-message/__snapshots__/actionable-message.test.js.snap b/ui/components/ui/actionable-message/__snapshots__/actionable-message.test.js.snap similarity index 100% rename from ui/pages/swaps/actionable-message/__snapshots__/actionable-message.test.js.snap rename to ui/components/ui/actionable-message/__snapshots__/actionable-message.test.js.snap diff --git a/ui/pages/swaps/actionable-message/actionable-message.js b/ui/components/ui/actionable-message/actionable-message.js similarity index 79% rename from ui/pages/swaps/actionable-message/actionable-message.js rename to ui/components/ui/actionable-message/actionable-message.js index 2d4c9da5c..39826ea04 100644 --- a/ui/pages/swaps/actionable-message/actionable-message.js +++ b/ui/components/ui/actionable-message/actionable-message.js @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; -import InfoTooltip from '../../../components/ui/info-tooltip'; +import InfoTooltip from '../info-tooltip'; const CLASSNAME_WARNING = 'actionable-message--warning'; const CLASSNAME_DANGER = 'actionable-message--danger'; @@ -20,16 +20,31 @@ export default function ActionableMessage({ infoTooltipText = '', withRightButton = false, type = false, + useIcon = false, + iconFill = '#b8b8b8', }) { const actionableMessageClassName = classnames( 'actionable-message', typeHash[type], withRightButton ? CLASSNAME_WITH_RIGHT_BUTTON : null, className, + { 'actionable-message--with-icon': useIcon }, ); return (
+ {useIcon && ( + + + + )} {infoTooltipText && ( ( />
); + +export const withIcon = () => ( +
+ +
+); diff --git a/ui/pages/swaps/actionable-message/actionable-message.test.js b/ui/components/ui/actionable-message/actionable-message.test.js similarity index 100% rename from ui/pages/swaps/actionable-message/actionable-message.test.js rename to ui/components/ui/actionable-message/actionable-message.test.js diff --git a/ui/pages/swaps/actionable-message/index.js b/ui/components/ui/actionable-message/index.js similarity index 100% rename from ui/pages/swaps/actionable-message/index.js rename to ui/components/ui/actionable-message/index.js diff --git a/ui/pages/swaps/actionable-message/index.scss b/ui/components/ui/actionable-message/index.scss similarity index 88% rename from ui/pages/swaps/actionable-message/index.scss rename to ui/components/ui/actionable-message/index.scss index 4838489d4..abcf3ee0b 100644 --- a/ui/pages/swaps/actionable-message/index.scss +++ b/ui/components/ui/actionable-message/index.scss @@ -9,6 +9,21 @@ align-items: center; position: relative; + &--with-icon { + padding-inline-start: 32px; + } + + &--with-icon.actionable-message--warning { + justify-content: normal; + } + + &__icon { + width: 16px; + height: 16px; + position: absolute; + left: 8px; + } + @include H7; &__message { @@ -69,6 +84,7 @@ &--left-aligned { .actionable-message__message, .actionable-message__actions { + text-align: left; } } diff --git a/ui/components/ui/ui-components.scss b/ui/components/ui/ui-components.scss index 9f4616726..0dd1ad72e 100644 --- a/ui/components/ui/ui-components.scss +++ b/ui/components/ui/ui-components.scss @@ -1,5 +1,6 @@ /** Please import your files in alphabetical order **/ @import 'account-mismatch-warning/index'; +@import 'actionable-message/index'; @import 'alert-circle-icon/index'; @import 'alert/index'; @import 'box/box'; diff --git a/ui/pages/add-token/add-token.component.js b/ui/pages/add-token/add-token.component.js index 36c215e2a..57852de20 100644 --- a/ui/pages/add-token/add-token.component.js +++ b/ui/pages/add-token/add-token.component.js @@ -9,7 +9,7 @@ import PageContainer from '../../components/ui/page-container'; import { Tabs, Tab } from '../../components/ui/tabs'; import { addHexPrefix } from '../../../app/scripts/lib/util'; import { isValidHexAddress } from '../../../shared/modules/hexstring-utils'; -import ActionableMessage from '../swaps/actionable-message'; +import ActionableMessage from '../../components/ui/actionable-message/actionable-message'; import Typography from '../../components/ui/typography'; import { TYPOGRAPHY, FONT_WEIGHT } from '../../helpers/constants/design-system'; import Button from '../../components/ui/button'; diff --git a/ui/pages/swaps/build-quote/build-quote.js b/ui/pages/swaps/build-quote/build-quote.js index 0ac479977..1d5220258 100644 --- a/ui/pages/swaps/build-quote/build-quote.js +++ b/ui/pages/swaps/build-quote/build-quote.js @@ -18,7 +18,7 @@ import DropdownSearchList from '../dropdown-search-list'; import SlippageButtons from '../slippage-buttons'; import { getTokens, getConversionRate } from '../../../ducks/metamask/metamask'; import InfoTooltip from '../../../components/ui/info-tooltip'; -import ActionableMessage from '../actionable-message'; +import ActionableMessage from '../../../components/ui/actionable-message/actionable-message'; import { fetchQuotesAndSetQuoteState, diff --git a/ui/pages/swaps/dropdown-search-list/dropdown-search-list.js b/ui/pages/swaps/dropdown-search-list/dropdown-search-list.js index 3f236ef2d..cbc9de4aa 100644 --- a/ui/pages/swaps/dropdown-search-list/dropdown-search-list.js +++ b/ui/pages/swaps/dropdown-search-list/dropdown-search-list.js @@ -13,7 +13,7 @@ import { I18nContext } from '../../../contexts/i18n'; import SearchableItemList from '../searchable-item-list'; import PulseLoader from '../../../components/ui/pulse-loader'; import UrlIcon from '../../../components/ui/url-icon'; -import ActionableMessage from '../actionable-message'; +import ActionableMessage from '../../../components/ui/actionable-message/actionable-message'; import ImportToken from '../import-token'; import { useNewMetricEvent } from '../../../hooks/useMetricEvent'; import { diff --git a/ui/pages/swaps/import-token/import-token.js b/ui/pages/swaps/import-token/import-token.js index c0a967a9c..9be183878 100644 --- a/ui/pages/swaps/import-token/import-token.js +++ b/ui/pages/swaps/import-token/import-token.js @@ -6,7 +6,7 @@ import Popover from '../../../components/ui/popover'; import Button from '../../../components/ui/button'; import Box from '../../../components/ui/box'; import Typography from '../../../components/ui/typography'; -import ActionableMessage from '../actionable-message'; +import ActionableMessage from '../../../components/ui/actionable-message/actionable-message'; import { TYPOGRAPHY, FONT_WEIGHT, diff --git a/ui/pages/swaps/index.scss b/ui/pages/swaps/index.scss index 358f0d7a5..406f885d3 100644 --- a/ui/pages/swaps/index.scss +++ b/ui/pages/swaps/index.scss @@ -1,4 +1,3 @@ -@import 'actionable-message/index'; @import 'awaiting-swap/index'; @import 'awaiting-signatures/index'; @import 'build-quote/index'; diff --git a/ui/pages/swaps/searchable-item-list/item-list/item-list.component.js b/ui/pages/swaps/searchable-item-list/item-list/item-list.component.js index 4c7442448..484e4ed65 100644 --- a/ui/pages/swaps/searchable-item-list/item-list/item-list.component.js +++ b/ui/pages/swaps/searchable-item-list/item-list/item-list.component.js @@ -5,7 +5,7 @@ import classnames from 'classnames'; import Identicon from '../../../../components/ui/identicon'; import UrlIcon from '../../../../components/ui/url-icon'; import Button from '../../../../components/ui/button'; -import ActionableMessage from '../../actionable-message'; +import ActionableMessage from '../../../../components/ui/actionable-message/actionable-message'; import { I18nContext } from '../../../../contexts/i18n'; import { getCurrentChainId, diff --git a/ui/pages/swaps/view-quote/view-quote-price-difference.js b/ui/pages/swaps/view-quote/view-quote-price-difference.js index 327aaaf49..af73963e1 100644 --- a/ui/pages/swaps/view-quote/view-quote-price-difference.js +++ b/ui/pages/swaps/view-quote/view-quote-price-difference.js @@ -4,7 +4,7 @@ import PropTypes from 'prop-types'; import classnames from 'classnames'; import { I18nContext } from '../../../contexts/i18n'; -import ActionableMessage from '../actionable-message'; +import ActionableMessage from '../../../components/ui/actionable-message/actionable-message'; import Tooltip from '../../../components/ui/tooltip'; import Box from '../../../components/ui/box'; import { diff --git a/ui/pages/swaps/view-quote/view-quote.js b/ui/pages/swaps/view-quote/view-quote.js index 217de73de..6e2ac4cf5 100644 --- a/ui/pages/swaps/view-quote/view-quote.js +++ b/ui/pages/swaps/view-quote/view-quote.js @@ -72,7 +72,7 @@ import { import MainQuoteSummary from '../main-quote-summary'; import { calcGasTotal } from '../../send/send.utils'; import { getCustomTxParamsData } from '../../confirm-approve/confirm-approve.util'; -import ActionableMessage from '../actionable-message'; +import ActionableMessage from '../../../components/ui/actionable-message/actionable-message'; import { quotesToRenderableData, getRenderableNetworkFeesForQuote,