Skip to content

Commit 0003a3e

Browse files
committed
refactor per PR comments
1 parent 07b8470 commit 0003a3e

File tree

11 files changed

+35
-58
lines changed

11 files changed

+35
-58
lines changed

ui/components/app/permissions-connect-permission-list/permissions-connect-permission-list.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import React from 'react';
22
import PropTypes from 'prop-types';
33
import { useSelector } from 'react-redux';
4-
import { stripSnapPrefix } from '@metamask/snaps-utils';
54
import {
65
getRightIcon,
76
getWeightedPermissions,
87
} from '../../../helpers/utils/permission';
98
import { useI18nContext } from '../../../hooks/useI18nContext';
109
import { getSnapsMetadata } from '../../../selectors';
10+
import { getSnapName } from '../../../helpers/utils/util';
1111

1212
/**
1313
* Get one or more permission descriptions for a permission name.
@@ -32,16 +32,12 @@ export default function PermissionsConnectPermissionList({ permissions }) {
3232
const t = useI18nContext();
3333
const snapsMetadata = useSelector(getSnapsMetadata);
3434

35-
const getSnapName = (id) => {
36-
return snapsMetadata[id]?.name ?? stripSnapPrefix(id);
37-
};
38-
3935
return (
4036
<div className="permissions-connect-permission-list">
4137
{getWeightedPermissions({
4238
t,
4339
permissions,
44-
getSubjectName: getSnapName,
40+
getSubjectName: getSnapName(snapsMetadata),
4541
}).map(getDescriptionNode)}
4642
</div>
4743
);

ui/components/app/snaps/snap-authorship-expanded/snap-authorship-expanded.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ const SnapAuthorshipExpanded = ({ snapId, className, snap }) => {
5252
getSnapRegistryData(state, snapId),
5353
);
5454

55-
const { name: friendlyName } = useSelector((state) =>
55+
const { name: snapName } = useSelector((state) =>
5656
getSnapMetadata(state, snapId),
5757
);
5858

@@ -102,7 +102,7 @@ const SnapAuthorshipExpanded = ({ snapId, className, snap }) => {
102102
style={{ overflow: 'hidden' }}
103103
>
104104
<Text ellipsis fontWeight={FontWeight.Medium}>
105-
{friendlyName}
105+
{snapName}
106106
</Text>
107107
<Text
108108
ellipsis

ui/components/app/snaps/snap-avatar/snap-avatar.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,14 @@ const SnapAvatar = ({
3535
getTargetSubjectMetadata(state, snapId),
3636
);
3737

38-
const { name: friendlyName } = useSelector((state) =>
38+
const { name: snapName } = useSelector((state) =>
3939
getSnapMetadata(state, snapId),
4040
);
4141

4242
const iconUrl = subjectMetadata?.iconUrl;
4343

4444
// We choose the first non-symbol char as the fallback icon.
45-
const fallbackIcon = friendlyName?.match(/[a-z0-9]/iu)?.[0] ?? '?';
45+
const fallbackIcon = snapName?.match(/[a-z0-9]/iu)?.[0] ?? '?';
4646

4747
return (
4848
<BadgeWrapper
@@ -66,7 +66,7 @@ const SnapAvatar = ({
6666
backgroundColor={BackgroundColor.backgroundAlternative}
6767
size={avatarSize}
6868
src={iconUrl}
69-
name={friendlyName}
69+
name={snapName}
7070
/>
7171
) : (
7272
<AvatarBase

ui/components/app/snaps/snap-legacy-authorship-header/snap-legacy-authorship-header.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ const SnapLegacyAuthorshipHeader = ({
2727
marginRight,
2828
}) => {
2929
const packageName = snapId && stripSnapPrefix(snapId);
30-
const { name: friendlyName } = useSelector((state) =>
30+
const { name: snapName } = useSelector((state) =>
3131
getSnapMetadata(state, snapId),
3232
);
3333

@@ -55,7 +55,7 @@ const SnapLegacyAuthorshipHeader = ({
5555
style={{ overflow: 'hidden' }}
5656
>
5757
<Text ellipsis fontWeight={FontWeight.Medium}>
58-
{friendlyName}
58+
{snapName}
5959
</Text>
6060
<Text
6161
ellipsis

ui/components/app/snaps/snap-permissions-list/snap-permissions-list.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import React from 'react';
22
import PropTypes from 'prop-types';
33
import { useSelector } from 'react-redux';
4-
import { stripSnapPrefix } from '@metamask/snaps-utils';
54
import { getWeightedPermissions } from '../../../../helpers/utils/permission';
65
import { useI18nContext } from '../../../../hooks/useI18nContext';
76
import PermissionCell from '../../permission-cell';
87
import { Box } from '../../../component-library';
98
import { getSnapsMetadata } from '../../../../selectors';
9+
import { getSnapName } from '../../../../helpers/utils/util';
1010

1111
export default function SnapPermissionsList({
1212
snapId,
@@ -17,17 +17,13 @@ export default function SnapPermissionsList({
1717
const t = useI18nContext();
1818
const snapsMetadata = useSelector(getSnapsMetadata);
1919

20-
const getSnapName = (id) => {
21-
return snapsMetadata[id]?.name ?? stripSnapPrefix(id);
22-
};
23-
2420
return (
2521
<Box paddingTop={2} paddingBottom={2} className="snap-permissions-list">
2622
{getWeightedPermissions({
2723
t,
2824
permissions,
2925
subjectName: snapName,
30-
getSubjectName: getSnapName,
26+
getSubjectName: getSnapName(snapsMetadata),
3127
}).map((permission, index) => {
3228
return (
3329
<PermissionCell

ui/components/app/snaps/update-snap-permission-list/update-snap-permission-list.js

+5-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import React from 'react';
22
import { useSelector } from 'react-redux';
33
import PropTypes from 'prop-types';
4-
import { stripSnapPrefix } from '@metamask/snaps-utils';
54
import { getWeightedPermissions } from '../../../../helpers/utils/permission';
65
import { useI18nContext } from '../../../../hooks/useI18nContext';
76
import PermissionCell from '../../permission-cell';
87
import { Box } from '../../../component-library';
98
import { getSnapMetadata, getSnapsMetadata } from '../../../../selectors';
9+
import { getSnapName } from '../../../../helpers/utils/util';
1010

1111
export default function UpdateSnapPermissionList({
1212
approvedPermissions,
@@ -21,18 +21,15 @@ export default function UpdateSnapPermissionList({
2121
);
2222

2323
const snapsMetadata = useSelector(getSnapsMetadata);
24-
25-
const getSnapName = (id) => {
26-
return snapsMetadata[id]?.name ?? stripSnapPrefix(id);
27-
};
24+
const snapsNameGetter = getSnapName(snapsMetadata);
2825

2926
return (
3027
<Box paddingTop={1}>
3128
{getWeightedPermissions({
3229
t,
3330
permissions: newPermissions,
3431
subjectName: snapName,
35-
getSubjectName: getSnapName,
32+
getSubjectName: snapsNameGetter,
3633
}).map((permission, index) => (
3734
<PermissionCell
3835
permissionName={permission.permissionName}
@@ -48,7 +45,7 @@ export default function UpdateSnapPermissionList({
4845
t,
4946
permissions: revokedPermissions,
5047
subjectName: snapName,
51-
getSubjectName: getSnapName,
48+
getSubjectName: snapsNameGetter,
5249
}).map((permission, index) => (
5350
<PermissionCell
5451
permissionName={permission.permissionName}
@@ -65,7 +62,7 @@ export default function UpdateSnapPermissionList({
6562
t,
6663
permissions: approvedPermissions,
6764
subjectName: snapName,
68-
getSubjectName: getSnapName,
65+
getSubjectName: snapsNameGetter,
6966
}).map((permission, index) => (
7067
<PermissionCell
7168
permissionName={permission.permissionName}

ui/helpers/utils/permission.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -278,8 +278,8 @@ export const PERMISSION_DESCRIPTIONS = deepFreeze({
278278
};
279279

280280
return Object.keys(snaps).map((snapId) => {
281-
const friendlyName = getSubjectName(snapId);
282-
if (friendlyName) {
281+
const snapName = getSubjectName(snapId);
282+
if (snapName) {
283283
return {
284284
...baseDescription,
285285
label: t('permission_accessNamedSnap', [
@@ -289,10 +289,10 @@ export const PERMISSION_DESCRIPTIONS = deepFreeze({
289289
fontWeight={FontWeight.Medium}
290290
key={snapId}
291291
>
292-
{friendlyName}
292+
{snapName}
293293
</Text>,
294294
]),
295-
description: t('permission_accessSnapDescription', [friendlyName]),
295+
description: t('permission_accessSnapDescription', [snapName]),
296296
};
297297
}
298298

ui/helpers/utils/util.js

+7
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import { OUTDATED_BROWSER_VERSIONS } from '../constants/common';
3434
import { isEqualCaseInsensitive } from '../../../shared/modules/string-utils';
3535
import { hexToDecimal } from '../../../shared/modules/conversion.utils';
3636
import { SNAPS_VIEW_ROUTE } from '../constants/routes';
37+
import { stripSnapPrefix } from '@metamask/snaps-utils';
3738

3839
export function formatDate(date, format = "M/d/y 'at' T") {
3940
if (!date) {
@@ -561,6 +562,12 @@ export function isNullish(value) {
561562
}
562563

563564
///: BEGIN:ONLY_INCLUDE_IF(snaps)
565+
export const getSnapName = (snapsMetadata) => {
566+
return (snapId) => {
567+
return snapsMetadata[snapId]?.name ?? stripSnapPrefix(snapId);
568+
};
569+
};
570+
564571
export const getSnapRoute = (snapId) => {
565572
return `${SNAPS_VIEW_ROUTE}/${encodeURIComponent(snapId)}`;
566573
};

ui/hooks/useTransactionInsights.js

+4-15
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
///: BEGIN:ONLY_INCLUDE_IF(build-flask)
2121
import { deleteInterface } from '../store/actions';
2222
///: END:ONLY_INCLUDE_IF
23+
import { getSnapName } from '../helpers/utils/util';
2324
import { useTransactionInsightSnaps } from './snaps/useTransactionInsightSnaps';
2425

2526
const isAllowedTransactionTypes = (transactionType) =>
@@ -42,19 +43,7 @@ const useTransactionInsights = ({ txData }) => {
4243
const insightSnapIds = useSelector(getInsightSnapIds);
4344
const snapsMetadata = useSelector(getSnapsMetadata);
4445

45-
/**
46-
* Get the snap name from the snap ID.
47-
*
48-
* This is used to get the names for permissions which include snap IDs as
49-
* caveat.
50-
*
51-
* @param id - The snap ID.
52-
* @returns {string | undefined} The snap name if it exists, or `undefined`.
53-
*/
54-
const getSnapName = (id) => {
55-
const snap = snapsMetadata[id];
56-
return snap?.name;
57-
};
46+
const snapsNameGetter = getSnapName(snapsMetadata);
5847

5948
const [selectedInsightSnapId, setSelectedInsightSnapId] = useState(
6049
insightSnaps[0]?.id,
@@ -110,7 +99,7 @@ const useTransactionInsights = ({ txData }) => {
11099
insightComponent = (
111100
<Tab
112101
className="confirm-page-container-content__tab"
113-
name={getSnapName(selectedSnap?.id)}
102+
name={snapsNameGetter(selectedSnap.id)}
114103
>
115104
<SnapInsight
116105
snapId={selectedInsightSnapId}
@@ -126,7 +115,7 @@ const useTransactionInsights = ({ txData }) => {
126115
);
127116
} else if (insightSnaps.length > 1) {
128117
const dropdownOptions = insightSnaps?.map(({ id }) => {
129-
const name = getSnapName(id);
118+
const name = snapsNameGetter(id);
130119
return {
131120
value: id,
132121
name,

ui/pages/permissions-connect/snaps/snap-install/snap-install.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import PropTypes from 'prop-types';
22
import React, { useCallback, useState } from 'react';
33
import { useSelector } from 'react-redux';
4-
import { stripSnapPrefix } from '@metamask/snaps-utils';
54
import { PageContainerFooter } from '../../../../components/ui/page-container';
65
import { useI18nContext } from '../../../../hooks/useI18nContext';
76
import SnapInstallWarning from '../../../../components/app/snaps/snap-install-warning';
@@ -33,6 +32,7 @@ import SiteOrigin from '../../../../components/ui/site-origin/site-origin';
3332
import InstallError from '../../../../components/app/snaps/install-error/install-error';
3433
import { useOriginMetadata } from '../../../../hooks/useOriginMetadata';
3534
import { getSnapMetadata, getSnapsMetadata } from '../../../../selectors';
35+
import { getSnapName } from '../../../../helpers/utils/util';
3636

3737
export default function SnapInstall({
3838
request,
@@ -47,10 +47,6 @@ export default function SnapInstall({
4747
const [isShowingWarning, setIsShowingWarning] = useState(false);
4848
const snapsMetadata = useSelector(getSnapsMetadata);
4949

50-
const getSnapName = (id) => {
51-
return snapsMetadata[id]?.name ?? stripSnapPrefix(id);
52-
};
53-
5450
const { isScrollable, isScrolledToBottom, scrollToBottom, ref, onScroll } =
5551
useScrollRequired([requestState]);
5652

@@ -75,7 +71,7 @@ export default function SnapInstall({
7571
requestState?.permissions ?? {},
7672
t,
7773
snapName,
78-
getSnapName,
74+
getSnapName(snapsMetadata),
7975
);
8076

8177
const shouldShowWarning = warnings.length > 0;

ui/pages/permissions-connect/snaps/snap-update/snap-update.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import PropTypes from 'prop-types';
22
import React, { useCallback, useState } from 'react';
33
import { useSelector } from 'react-redux';
4-
import { stripSnapPrefix } from '@metamask/snaps-utils';
54
import { PageContainerFooter } from '../../../../components/ui/page-container';
65
import { useI18nContext } from '../../../../hooks/useI18nContext';
76
import SnapInstallWarning from '../../../../components/app/snaps/snap-install-warning';
@@ -32,6 +31,7 @@ import {
3231
} from '../../../../components/component-library';
3332
import { useScrollRequired } from '../../../../hooks/useScrollRequired';
3433
import { getSnapMetadata, getSnapsMetadata } from '../../../../selectors';
34+
import { getSnapName } from '../../../../helpers/utils/util';
3535

3636
export default function SnapUpdate({
3737
request,
@@ -48,10 +48,6 @@ export default function SnapUpdate({
4848
useScrollRequired([requestState]);
4949
const snapsMetadata = useSelector(getSnapsMetadata);
5050

51-
const getSnapName = (id) => {
52-
return snapsMetadata[id]?.name ?? stripSnapPrefix(id);
53-
};
54-
5551
const onCancel = useCallback(
5652
() => rejectSnapUpdate(request.metadata.id),
5753
[request, rejectSnapUpdate],
@@ -78,7 +74,7 @@ export default function SnapUpdate({
7874
newPermissions,
7975
t,
8076
snapName,
81-
getSnapName,
77+
getSnapName(snapsMetadata),
8278
);
8379

8480
const shouldShowWarning = warnings.length > 0;

0 commit comments

Comments
 (0)