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,