diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json
index e98ed9382..c2b8bf3d6 100644
--- a/app/_locales/en/messages.json
+++ b/app/_locales/en/messages.json
@@ -989,7 +989,7 @@
"message": "Backup gas price is provided as the main gas estimation service is unavailable right now."
},
"eth_accounts": {
- "message": "View the addresses of your permitted accounts (required)",
+ "message": "See address, account balance, activity and initiate transactions",
"description": "The description for the `eth_accounts` permission"
},
"ethereumPublicAddress": {
@@ -2036,15 +2036,9 @@
"message": "You have (1) pending transaction.",
"description": "$1 is count of pending transactions"
},
- "permissionCheckedIconDescription": {
- "message": "You have approved this permission"
- },
"permissionRequest": {
"message": "Permission request"
},
- "permissionUncheckedIconDescription": {
- "message": "You have not approved this permission"
- },
"permissions": {
"message": "Permissions"
},
diff --git a/app/_locales/es/messages.json b/app/_locales/es/messages.json
index dfa9b60f3..c285d4ecd 100644
--- a/app/_locales/es/messages.json
+++ b/app/_locales/es/messages.json
@@ -1343,12 +1343,6 @@
"pending": {
"message": "Pendiente"
},
- "permissionCheckedIconDescription": {
- "message": "Aprobó este permiso"
- },
- "permissionUncheckedIconDescription": {
- "message": "No aprobó este permiso"
- },
"permissions": {
"message": "Permisos"
},
diff --git a/app/_locales/es_419/messages.json b/app/_locales/es_419/messages.json
index dfa9b60f3..c285d4ecd 100644
--- a/app/_locales/es_419/messages.json
+++ b/app/_locales/es_419/messages.json
@@ -1343,12 +1343,6 @@
"pending": {
"message": "Pendiente"
},
- "permissionCheckedIconDescription": {
- "message": "Aprobó este permiso"
- },
- "permissionUncheckedIconDescription": {
- "message": "No aprobó este permiso"
- },
"permissions": {
"message": "Permisos"
},
diff --git a/app/_locales/hi/messages.json b/app/_locales/hi/messages.json
index eabbe333d..76bcfa33a 100644
--- a/app/_locales/hi/messages.json
+++ b/app/_locales/hi/messages.json
@@ -1343,12 +1343,6 @@
"pending": {
"message": "लंबित"
},
- "permissionCheckedIconDescription": {
- "message": "आपने इस अनुमति को अनुमोदित कर दिया है"
- },
- "permissionUncheckedIconDescription": {
- "message": "आपने इस अनुमति को अनुमोदित नहीं किया है"
- },
"permissions": {
"message": "अनुमतियाँ"
},
diff --git a/app/_locales/id/messages.json b/app/_locales/id/messages.json
index b3d4f6679..b51c53922 100644
--- a/app/_locales/id/messages.json
+++ b/app/_locales/id/messages.json
@@ -1343,12 +1343,6 @@
"pending": {
"message": "Tunda"
},
- "permissionCheckedIconDescription": {
- "message": "Anda telah menyetujui izin ini"
- },
- "permissionUncheckedIconDescription": {
- "message": "Anda belum menyetujui izin ini"
- },
"permissions": {
"message": "Izin"
},
diff --git a/app/_locales/it/messages.json b/app/_locales/it/messages.json
index 640ad8ba6..2bb25faee 100644
--- a/app/_locales/it/messages.json
+++ b/app/_locales/it/messages.json
@@ -1102,12 +1102,6 @@
"pending": {
"message": "in corso"
},
- "permissionCheckedIconDescription": {
- "message": "Hai approvato questo permesso"
- },
- "permissionUncheckedIconDescription": {
- "message": "Non hai approvato questo permesso"
- },
"permissions": {
"message": "Permessi"
},
diff --git a/app/_locales/ja/messages.json b/app/_locales/ja/messages.json
index cb626fa73..62f1c0687 100644
--- a/app/_locales/ja/messages.json
+++ b/app/_locales/ja/messages.json
@@ -1343,12 +1343,6 @@
"pending": {
"message": "処理"
},
- "permissionCheckedIconDescription": {
- "message": "この許可の承認が完了しました。"
- },
- "permissionUncheckedIconDescription": {
- "message": "この許可の承認が完了していません。"
- },
"permissions": {
"message": "許可"
},
diff --git a/app/_locales/ko/messages.json b/app/_locales/ko/messages.json
index b4bcaa6f8..b05424689 100644
--- a/app/_locales/ko/messages.json
+++ b/app/_locales/ko/messages.json
@@ -1343,12 +1343,6 @@
"pending": {
"message": "보류 중"
},
- "permissionCheckedIconDescription": {
- "message": "이 권한을 승인했습니다."
- },
- "permissionUncheckedIconDescription": {
- "message": "이 권한을 승인하지 않았습니다."
- },
"permissions": {
"message": "권한"
},
diff --git a/app/_locales/ph/messages.json b/app/_locales/ph/messages.json
index a821a4374..24a44bde6 100644
--- a/app/_locales/ph/messages.json
+++ b/app/_locales/ph/messages.json
@@ -1343,12 +1343,6 @@
"pending": {
"message": "Nakabinbin"
},
- "permissionCheckedIconDescription": {
- "message": "Inaprubahan mo ang pahintulot na ito"
- },
- "permissionUncheckedIconDescription": {
- "message": "Hindi mo inaprubahan ang pahintulot na ito"
- },
"permissions": {
"message": "Mga Pahintulot"
},
diff --git a/app/_locales/pt_BR/messages.json b/app/_locales/pt_BR/messages.json
index 6ea9d5a1a..c259784cc 100644
--- a/app/_locales/pt_BR/messages.json
+++ b/app/_locales/pt_BR/messages.json
@@ -1343,12 +1343,6 @@
"pending": {
"message": "Pendente"
},
- "permissionCheckedIconDescription": {
- "message": "Você aprovou esta permissão"
- },
- "permissionUncheckedIconDescription": {
- "message": "Você não aprovou esta permissão"
- },
"permissions": {
"message": "Permissões"
},
diff --git a/app/_locales/ru/messages.json b/app/_locales/ru/messages.json
index 9fa8ea319..00aa12c5b 100644
--- a/app/_locales/ru/messages.json
+++ b/app/_locales/ru/messages.json
@@ -1343,12 +1343,6 @@
"pending": {
"message": "В ожидании"
},
- "permissionCheckedIconDescription": {
- "message": "Вы одобрили это разрешение"
- },
- "permissionUncheckedIconDescription": {
- "message": "Вы не одобрили это разрешение"
- },
"permissions": {
"message": "Разрешения"
},
diff --git a/app/_locales/tl/messages.json b/app/_locales/tl/messages.json
index 0c7649881..b6f6cd465 100644
--- a/app/_locales/tl/messages.json
+++ b/app/_locales/tl/messages.json
@@ -1093,12 +1093,6 @@
"pending": {
"message": "Nakabinbin"
},
- "permissionCheckedIconDescription": {
- "message": "Inaprubahan mo ang pahintulot na ito"
- },
- "permissionUncheckedIconDescription": {
- "message": "Hindi mo inaprubahan ang pahintulot na ito"
- },
"permissions": {
"message": "Mga Pahintulot"
},
diff --git a/app/_locales/vi/messages.json b/app/_locales/vi/messages.json
index 22523a6f0..68ae1575b 100644
--- a/app/_locales/vi/messages.json
+++ b/app/_locales/vi/messages.json
@@ -1343,12 +1343,6 @@
"pending": {
"message": "Đang chờ xử lý"
},
- "permissionCheckedIconDescription": {
- "message": "Bạn đã phê duyệt quyền này"
- },
- "permissionUncheckedIconDescription": {
- "message": "Bạn chưa phê duyệt quyền này"
- },
"permissions": {
"message": "Quyền"
},
diff --git a/app/_locales/zh_CN/messages.json b/app/_locales/zh_CN/messages.json
index 92e09313c..61478c59e 100644
--- a/app/_locales/zh_CN/messages.json
+++ b/app/_locales/zh_CN/messages.json
@@ -1144,12 +1144,6 @@
"pending": {
"message": "待处理"
},
- "permissionCheckedIconDescription": {
- "message": "您已同意该权限"
- },
- "permissionUncheckedIconDescription": {
- "message": "您还未同意该权限"
- },
"permissions": {
"message": "权限"
},
diff --git a/ui/components/app/app-components.scss b/ui/components/app/app-components.scss
index adf1fe63b..a0bc24e8e 100644
--- a/ui/components/app/app-components.scss
+++ b/ui/components/app/app-components.scss
@@ -32,6 +32,7 @@
@import 'permission-page-container/index';
@import 'permissions-connect-footer/index';
@import 'permissions-connect-header/index';
+@import 'permissions-connect-permission-list/index';
@import 'recovery-phrase-reminder/index';
@import 'step-progress-bar/index.scss';
@import 'selected-account/index';
diff --git a/ui/components/app/permission-page-container/index.scss b/ui/components/app/permission-page-container/index.scss
index ffd703e8e..31b0aee83 100644
--- a/ui/components/app/permission-page-container/index.scss
+++ b/ui/components/app/permission-page-container/index.scss
@@ -23,7 +23,6 @@
}
}
-
&__header {
display: flex;
flex-direction: column;
diff --git a/ui/components/app/permission-page-container/permission-page-container-content/permission-page-container-content.component.js b/ui/components/app/permission-page-container/permission-page-container-content/permission-page-container-content.component.js
index 7cacc40c8..dcd5363a1 100644
--- a/ui/components/app/permission-page-container/permission-page-container-content/permission-page-container-content.component.js
+++ b/ui/components/app/permission-page-container/permission-page-container-content/permission-page-container-content.component.js
@@ -2,7 +2,7 @@ import PropTypes from 'prop-types';
import React, { PureComponent } from 'react';
import PermissionsConnectHeader from '../../permissions-connect-header';
import Tooltip from '../../../ui/tooltip';
-import CheckBox from '../../../ui/check-box';
+import PermissionsConnectPermissionList from '../../permissions-connect-permission-list';
export default class PermissionPageContainerContent extends PureComponent {
static propTypes = {
@@ -14,7 +14,6 @@ export default class PermissionPageContainerContent extends PureComponent {
origin: PropTypes.string.isRequired,
}),
selectedPermissions: PropTypes.object.isRequired,
- onPermissionToggle: PropTypes.func.isRequired,
selectedIdentities: PropTypes.array,
allIdentitiesSelected: PropTypes.bool,
};
@@ -29,43 +28,11 @@ export default class PermissionPageContainerContent extends PureComponent {
};
renderRequestedPermissions() {
- const { selectedPermissions, onPermissionToggle } = this.props;
- const { t } = this.context;
-
- const items = Object.keys(selectedPermissions).map((permissionName) => {
- const description = t(permissionName);
- // don't allow deselecting eth_accounts
- const isDisabled = permissionName === 'eth_accounts';
- const isChecked = Boolean(selectedPermissions[permissionName]);
- const title = isChecked
- ? t('permissionCheckedIconDescription')
- : t('permissionUncheckedIconDescription');
-
- return (
-
{
- if (!isDisabled) {
- onPermissionToggle(permissionName);
- }
- }}
- >
-
-
-
- );
- });
+ const { selectedPermissions } = this.props;
return (
);
}
diff --git a/ui/components/app/permission-page-container/permission-page-container.component.js b/ui/components/app/permission-page-container/permission-page-container.component.js
index 2a8daa2f6..6ccd549e1 100644
--- a/ui/components/app/permission-page-container/permission-page-container.component.js
+++ b/ui/components/app/permission-page-container/permission-page-container.component.js
@@ -62,15 +62,6 @@ export default class PermissionPageContainer extends Component {
return Object.keys(props.request.permissions || {});
}
- onPermissionToggle = (methodName) => {
- this.setState({
- selectedPermissions: {
- ...this.state.selectedPermissions,
- [methodName]: !this.state.selectedPermissions[methodName],
- },
- });
- };
-
componentDidMount() {
this.context.metricsEvent({
eventOpts: {
@@ -129,7 +120,6 @@ export default class PermissionPageContainer extends Component {
requestMetadata={requestMetadata}
domainMetadata={targetDomainMetadata}
selectedPermissions={this.state.selectedPermissions}
- onPermissionToggle={this.onPermissionToggle}
selectedIdentities={selectedIdentities}
allIdentitiesSelected={allIdentitiesSelected}
/>
diff --git a/ui/components/app/permissions-connect-header/index.scss b/ui/components/app/permissions-connect-header/index.scss
index 89297a094..dca87d015 100644
--- a/ui/components/app/permissions-connect-header/index.scss
+++ b/ui/components/app/permissions-connect-header/index.scss
@@ -9,20 +9,6 @@
display: flex;
flex-direction: column;
align-items: center;
-
- .icon-with-fallback__identicon-container,
- .icon-with-fallback__identicon-border {
- height: 64px;
- width: 64px;
- }
-
- .icon-with-fallback__identicon-border {
- border: 1px solid $Grey-100;
- }
-
- .icon-with-fallback__identicon-container {
- margin-bottom: 8px;
- }
}
&__title {
@@ -33,7 +19,6 @@
margin-top: 16px;
}
- &__text,
&__subtitle {
@include H6;
@@ -41,16 +26,6 @@
color: $Grey-500;
}
- &__text {
- width: 100%;
- text-overflow: ellipsis;
- overflow: hidden;
- margin-top: 8px;
-
- /*rtl:ignore*/
- direction: rtl;
- }
-
&__subtitle {
margin-top: 4px;
}
diff --git a/ui/components/app/permissions-connect-header/permissions-connect-header.component.js b/ui/components/app/permissions-connect-header/permissions-connect-header.component.js
index b0d8920ff..b044a616f 100644
--- a/ui/components/app/permissions-connect-header/permissions-connect-header.component.js
+++ b/ui/components/app/permissions-connect-header/permissions-connect-header.component.js
@@ -1,6 +1,6 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
-import SiteIcon from '../../ui/site-icon';
+import SiteOrigin from '../../ui/site-origin/site-origin';
export default class PermissionsConnectHeader extends Component {
static propTypes = {
@@ -22,8 +22,7 @@ export default class PermissionsConnectHeader extends Component {
return (
);
}
diff --git a/ui/components/app/permissions-connect-permission-list/index.js b/ui/components/app/permissions-connect-permission-list/index.js
new file mode 100644
index 000000000..0690579c6
--- /dev/null
+++ b/ui/components/app/permissions-connect-permission-list/index.js
@@ -0,0 +1 @@
+export { default } from './permissions-connect-permission-list';
diff --git a/ui/components/app/permissions-connect-permission-list/index.scss b/ui/components/app/permissions-connect-permission-list/index.scss
new file mode 100644
index 000000000..cc58047bd
--- /dev/null
+++ b/ui/components/app/permissions-connect-permission-list/index.scss
@@ -0,0 +1,22 @@
+.permissions-connect-permission-list {
+ .permission {
+ @include H6;
+
+ width: 100%;
+ padding-bottom: 16px;
+ border-bottom: 1px solid $Grey-100;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ color: $Black-100;
+
+ i {
+ display: block;
+ padding: 16px;
+ min-width: 16px;
+ min-height: 16px;
+ color: $Grey-500;
+ font-size: 1rem;
+ }
+ }
+}
diff --git a/ui/components/app/permissions-connect-permission-list/permissions-connect-permission-list.js b/ui/components/app/permissions-connect-permission-list/permissions-connect-permission-list.js
new file mode 100644
index 000000000..95ed4e912
--- /dev/null
+++ b/ui/components/app/permissions-connect-permission-list/permissions-connect-permission-list.js
@@ -0,0 +1,33 @@
+import React, { useMemo } from 'react';
+import PropTypes from 'prop-types';
+import { useI18nContext } from '../../../hooks/useI18nContext';
+
+export default function PermissionsConnectPermissionList({ permissions }) {
+ const t = useI18nContext();
+
+ const PERMISSION_TYPES = useMemo(() => {
+ return {
+ eth_accounts: {
+ leftIcon: 'fas fa-eye',
+ label: t('eth_accounts'),
+ rightIcon: null,
+ },
+ };
+ }, [t]);
+
+ return (
+
+ {Object.keys(permissions).map((permission) => (
+
+
+ {PERMISSION_TYPES[permission].label}
+
+
+ ))}
+
+ );
+}
+
+PermissionsConnectPermissionList.propTypes = {
+ permissions: PropTypes.objectOf(PropTypes.bool).isRequired,
+};
diff --git a/ui/components/app/permissions-connect-permission-list/permissions-connect-permission-list.stories.js b/ui/components/app/permissions-connect-permission-list/permissions-connect-permission-list.stories.js
new file mode 100644
index 000000000..4faa6924d
--- /dev/null
+++ b/ui/components/app/permissions-connect-permission-list/permissions-connect-permission-list.stories.js
@@ -0,0 +1,24 @@
+import React from 'react';
+
+import PermissionsConnectList from '.';
+
+export default {
+ title: 'Components/App/PermissionsConnectList',
+ id: __filename,
+ component: PermissionsConnectList,
+ argTypes: {
+ permissions: {
+ control: 'object',
+ },
+ },
+};
+
+export const DefaultStory = (args) => ;
+
+DefaultStory.storyName = 'Default';
+
+DefaultStory.args = {
+ permissions: {
+ eth_accounts: true,
+ },
+};
diff --git a/ui/components/ui/chip/chip.js b/ui/components/ui/chip/chip.js
index e23dd8289..f84534535 100644
--- a/ui/components/ui/chip/chip.js
+++ b/ui/components/ui/chip/chip.js
@@ -16,6 +16,7 @@ export default function Chip({
leftIcon,
rightIcon,
onClick,
+ maxContent = true,
}) {
const onKeyPress = (event) => {
if (event.key === 'Enter' && onClick) {
@@ -35,6 +36,7 @@ export default function Chip({
'chip--with-right-icon': Boolean(rightIcon),
[`chip--border-color-${borderColor}`]: true,
[`chip--background-color-${backgroundColor}`]: true,
+ 'chip--max-content': maxContent,
})}
role={isInteractive ? 'button' : undefined}
tabIndex={isInteractive ? 0 : undefined}
@@ -99,4 +101,9 @@ Chip.propTypes = {
* The onClick handler to be passed to the Chip component
*/
onClick: PropTypes.func,
+ /**
+ * If the width: max-content; is used in css.
+ * max-content can overflow the parent's width and break designs
+ */
+ maxContent: PropTypes.bool,
};
diff --git a/ui/components/ui/chip/chip.scss b/ui/components/ui/chip/chip.scss
index a52e37afa..17e96d582 100644
--- a/ui/components/ui/chip/chip.scss
+++ b/ui/components/ui/chip/chip.scss
@@ -9,7 +9,6 @@
margin: 0 4px;
display: flex;
align-items: center;
- width: max-content;
&__left-icon,
&__right-icon {
@@ -63,4 +62,8 @@
margin-right: 8px;
}
}
+
+ &--max-content {
+ width: max-content;
+ }
}
diff --git a/ui/components/ui/site-origin/index.js b/ui/components/ui/site-origin/index.js
new file mode 100644
index 000000000..280ddb249
--- /dev/null
+++ b/ui/components/ui/site-origin/index.js
@@ -0,0 +1 @@
+export { default } from './site-origin';
diff --git a/ui/components/ui/site-origin/index.scss b/ui/components/ui/site-origin/index.scss
new file mode 100644
index 000000000..16b9f0732
--- /dev/null
+++ b/ui/components/ui/site-origin/index.scss
@@ -0,0 +1,15 @@
+.site-origin {
+ .chip__left-icon {
+ padding: 4px 0 4px 8px;
+ }
+
+ span {
+ display: inline-block;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+
+ /*rtl:ignore*/
+ direction: rtl;
+ }
+}
diff --git a/ui/components/ui/site-origin/site-origin.js b/ui/components/ui/site-origin/site-origin.js
new file mode 100644
index 000000000..2dc545a68
--- /dev/null
+++ b/ui/components/ui/site-origin/site-origin.js
@@ -0,0 +1,22 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import Chip from '../chip';
+import IconWithFallback from '../icon-with-fallback';
+
+export default function SiteOrigin({ siteOrigin, iconSrc, iconName }) {
+ return (
+
+ }
+ />
+
+ );
+}
+
+SiteOrigin.propTypes = {
+ siteOrigin: PropTypes.string.isRequired,
+ iconName: PropTypes.string,
+ iconSrc: PropTypes.string,
+};
diff --git a/ui/components/ui/site-origin/site-origin.stories.js b/ui/components/ui/site-origin/site-origin.stories.js
new file mode 100644
index 000000000..53a11c190
--- /dev/null
+++ b/ui/components/ui/site-origin/site-origin.stories.js
@@ -0,0 +1,30 @@
+import React from 'react';
+
+import SiteOrigin from '.';
+
+export default {
+ title: 'Components/UI/SiteOrigin',
+ id: __filename,
+ component: SiteOrigin,
+ argTypes: {
+ siteOrigin: {
+ control: 'text',
+ },
+ iconSrc: {
+ control: 'text',
+ },
+ iconName: {
+ control: 'text',
+ },
+ },
+};
+
+export const DefaultStory = (args) => ;
+
+DefaultStory.storyName = 'Default';
+
+DefaultStory.args = {
+ siteOrigin: 'https://metamask.io',
+ iconName: 'MetaMask',
+ iconSrc: './metamark.svg',
+};
diff --git a/ui/components/ui/ui-components.scss b/ui/components/ui/ui-components.scss
index 34c435acd..30273749e 100644
--- a/ui/components/ui/ui-components.scss
+++ b/ui/components/ui/ui-components.scss
@@ -45,6 +45,7 @@
@import 'readonly-input/index';
@import 'sender-to-recipient/index';
@import 'snackbar/index';
+@import 'site-origin/index';
@import 'slider/index';
@import 'tabs/index';
@import 'toggle-button/index';
diff --git a/ui/pages/permissions-connect/index.scss b/ui/pages/permissions-connect/index.scss
index 197764b8e..716702921 100644
--- a/ui/pages/permissions-connect/index.scss
+++ b/ui/pages/permissions-connect/index.scss
@@ -24,9 +24,10 @@
}
&__back {
- @include H6;
+ @include H7;
- color: $Grey-600;
+ color: $Grey-500;
+ font-weight: bold;
cursor: pointer;
i {
@@ -37,7 +38,7 @@
&__page-count {
@include H7;
- color: #6a737d;
+ color: $Grey-500;
grid-column: 2;
justify-self: end;
font-weight: bold;
diff --git a/ui/pages/permissions-connect/permissions-connect.component.js b/ui/pages/permissions-connect/permissions-connect.component.js
index 9a487dad3..996ddd383 100644
--- a/ui/pages/permissions-connect/permissions-connect.component.js
+++ b/ui/pages/permissions-connect/permissions-connect.component.js
@@ -174,7 +174,7 @@ export default class PermissionConnect extends Component {
className="permissions-connect__back"
onClick={() => this.goBack()}
>
-
+
{t('back')}
) : null}