From 78ee5b778e6bc3aa91fe154847207231407d021b Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Sat, 21 Sep 2024 12:08:19 +0200 Subject: [PATCH] Don't show third party notice for preinstalled Snaps --- .../snaps/snaps-connect/snaps-connect.js | 28 ++++++++++++------- ui/selectors/selectors.js | 12 ++++++++ 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/ui/pages/permissions-connect/snaps/snaps-connect/snaps-connect.js b/ui/pages/permissions-connect/snaps/snaps-connect/snaps-connect.js index aef63dee4b02..b46eb070c3ed 100644 --- a/ui/pages/permissions-connect/snaps/snaps-connect/snaps-connect.js +++ b/ui/pages/permissions-connect/snaps/snaps-connect/snaps-connect.js @@ -20,7 +20,11 @@ import SnapConnectCell from '../../../../components/app/snaps/snap-connect-cell/ import { getDedupedSnaps } from '../../../../helpers/utils/util'; import PulseLoader from '../../../../components/ui/pulse-loader/pulse-loader'; import SnapPrivacyWarning from '../../../../components/app/snaps/snap-privacy-warning/snap-privacy-warning'; -import { getPermissions, getSnapMetadata } from '../../../../selectors'; +import { + getPermissions, + getPreinstalledSnaps, + getSnapMetadata, +} from '../../../../selectors'; import { useOriginMetadata } from '../../../../hooks/useOriginMetadata'; import { isSnapId } from '../../../../helpers/utils/snaps'; import { SnapIcon } from '../../../../components/app/snaps/snap-icon'; @@ -36,12 +40,23 @@ export default function SnapsConnect({ const t = useI18nContext(); const { origin } = targetSubjectMetadata; const [isLoading, setIsLoading] = useState(false); - const [isShowingSnapsPrivacyWarning, setIsShowingSnapsPrivacyWarning] = - useState(!snapsInstallPrivacyWarningShown); + const currentPermissions = useSelector((state) => getPermissions(state, request?.metadata?.origin), ); + const preinstalledSnaps = useSelector(getPreinstalledSnaps); + + const snaps = getDedupedSnaps(request, currentPermissions); + const snapId = snaps[0]; + const { name: snapName } = useSelector((state) => + getSnapMetadata(state, snapId), + ); + + const isPreinstalled = Object.keys(preinstalledSnaps).includes(snapId); + const [isShowingSnapsPrivacyWarning, setIsShowingSnapsPrivacyWarning] = + useState(!isPreinstalled && !snapsInstallPrivacyWarningShown); + const onCancel = useCallback(() => { rejectConnection(request.metadata.id); }, [request, rejectConnection]); @@ -55,8 +70,6 @@ export default function SnapsConnect({ } }, [request, approveConnection]); - const snaps = getDedupedSnaps(request, currentPermissions); - const SnapsConnectContent = () => { let trimmedOrigin = (useOriginMetadata(origin) || {})?.hostname; const { name } = useSelector((state) => @@ -68,11 +81,6 @@ export default function SnapsConnect({ trimmedOrigin = name; } - const snapId = snaps[0]; - const { name: snapName } = useSelector((state) => - getSnapMetadata(state, snapId), - ); - if (isLoading) { return ( { }, {}); }); +export const getPreinstalledSnaps = createDeepEqualSelector( + getSnaps, + (snaps) => { + return Object.values(snaps).reduce((acc, snap) => { + if (snap.preinstalled) { + acc[snap.id] = snap; + } + return acc; + }, {}); + }, +); + export const getInsightSnaps = createDeepEqualSelector( getEnabledSnaps, getPermissionSubjects,