Skip to content

Commit

Permalink
Add updates to Snaps custom UI
Browse files Browse the repository at this point in the history
Update unit test snapshots

Fix lint issue

Update background and border

Update unit test snapshot

Update file upload UI

Update and fix few more Snap custom UI things

Update unit test snapshots after snap header fix

Add background color handling adjustments

Fix and resolve conflicts after rebase

Refactor confirmation.js changes

Remove empty box

Update unit test snapshots

Fix background issue on Snap custom UI page

Update unit test snapshots after new changes
  • Loading branch information
david0xd committed Sep 5, 2024
1 parent b5a7b5c commit 80f9939
Show file tree
Hide file tree
Showing 29 changed files with 105 additions and 282 deletions.
8 changes: 2 additions & 6 deletions ui/components/app/connected-sites-list/connected-snaps.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import { useDispatch, useSelector } from 'react-redux';
import { Box, IconName, IconSize, Text } from '../../component-library';
import { useI18nContext } from '../../../hooks/useI18nContext';
import { MenuItem } from '../../ui/menu';
import SnapAvatar from '../snaps/snap-avatar';
import {
AlignItems,
BlockSize,
Expand All @@ -18,6 +17,7 @@ import ConnectedAccountsListOptions from '../connected-accounts-list/connected-a
import { getOriginOfCurrentTab } from '../../../selectors';
import { disconnectOriginFromSnap } from '../../../store/actions';
import { getSnapRoute } from '../../../helpers/utils/util';
import { SnapIcon } from '../snaps/snap-icon';

export default function ConnectedSnaps({ connectedSubjects }) {
const [showOptions, setShowOptions] = useState();
Expand Down Expand Up @@ -74,11 +74,7 @@ export default function ConnectedSnaps({ connectedSubjects }) {
display={Display.Flex}
alignItems={AlignItems.center}
>
<SnapAvatar
snapId={subject.origin}
badgeSize={IconSize.Xs}
avatarSize={IconSize.Md}
/>
<SnapIcon snapId={subject.origin} avatarSize={IconSize.Md} />
<Text
variant={TextVariant.bodyLgMedium}
className="connected-accounts-list__account-name"
Expand Down
3 changes: 3 additions & 0 deletions ui/components/app/snaps/copyable/copyable.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import {
Display,
OverflowWrap,
IconColor,
BorderColor,
} from '../../../../helpers/constants/design-system';
import { useCopyToClipboard } from '../../../../hooks/useCopyToClipboard';
import { Icon, IconName, Box, Text } from '../../../component-library';
Expand Down Expand Up @@ -60,6 +61,8 @@ export const Copyable = ({
: BackgroundColor.backgroundAlternative
}
borderRadius={BorderRadius.LG}
borderColor={BorderColor.borderMuted}
borderWidth={1}
padding={2}
marginTop={marginTop}
marginBottom={marginBottom}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import React, { useState } from 'react';
import PropTypes from 'prop-types';
import classnames from 'classnames';
import { stripSnapPrefix } from '@metamask/snaps-utils';
import { useSelector } from 'react-redux';
import {
BackgroundColor,
TextColor,
FlexDirection,
TextVariant,
AlignItems,
Display,
Expand All @@ -25,9 +23,9 @@ import {
ButtonIconSize,
ButtonIcon,
} from '../../../component-library';
import SnapAvatar from '../snap-avatar';
import { SnapMetadataModal } from '../snap-metadata-modal';
import { useI18nContext } from '../../../../hooks/useI18nContext';
import { SnapIcon } from '../snap-icon';

const SnapAuthorshipHeader = ({
snapId,
Expand All @@ -40,11 +38,6 @@ const SnapAuthorshipHeader = ({
}) => {
const t = useI18nContext();
const [isModalOpen, setIsModalOpen] = useState(false);
// We're using optional chaining with snapId, because with the current implementation
// of snap update in the snap controller, we do not have reference to snapId when an
// update request is rejected because the reference comes from the request itself and not subject metadata
// like it is done with snap install
const packageName = snapId && stripSnapPrefix(snapId);

const { name: snapName } = useSelector((state) =>
getSnapMetadata(state, snapId),
Expand All @@ -57,13 +50,15 @@ const SnapAuthorshipHeader = ({
return (
<Box
className={classnames('snaps-authorship-header', className)}
backgroundColor={BackgroundColor.backgroundAlternative}
backgroundColor={BackgroundColor.backgroundDefault}
width={BlockSize.Full}
alignItems={AlignItems.center}
display={Display.Flex}
padding={4}
style={{
boxShadow,
minHeight: '64px',
zIndex: 1,
}}
>
{snapId && (
Expand All @@ -87,7 +82,8 @@ const SnapAuthorshipHeader = ({
marginLeft={4}
marginRight={4}
display={Display.Flex}
flexDirection={FlexDirection.Column}
justifyContent={JustifyContent.center}
alignItems={AlignItems.center}
style={{ overflow: 'hidden' }}
width={BlockSize.Full}
>
Expand All @@ -96,11 +92,7 @@ const SnapAuthorshipHeader = ({
justifyContent={JustifyContent.center}
alignItems={AlignItems.center}
>
<SnapAvatar
snapId={snapId}
avatarSize={IconSize.Sm}
badgeSize={IconSize.Xs}
/>
<SnapIcon snapId={snapId} avatarSize={IconSize.Sm} />
<Text
color={TextColor.textDefault}
variant={TextVariant.bodyMdMedium}
Expand All @@ -110,20 +102,6 @@ const SnapAuthorshipHeader = ({
{snapName}
</Text>
</Box>
<Box
display={Display.Flex}
justifyContent={JustifyContent.center}
alignItems={AlignItems.center}
paddingTop={1}
>
<Text
ellipsis
variant={TextVariant.bodySm}
color={TextColor.textAlternative}
>
{packageName}
</Text>
</Box>
</Box>
{showInfo && (
<Box marginLeft="auto">
Expand Down
1 change: 0 additions & 1 deletion ui/components/app/snaps/snap-avatar/index.js

This file was deleted.

67 changes: 0 additions & 67 deletions ui/components/app/snaps/snap-avatar/snap-avatar.js

This file was deleted.

21 changes: 0 additions & 21 deletions ui/components/app/snaps/snap-avatar/snap-avatar.stories.js

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ import {
} from '../../../component-library';
import Tooltip from '../../../ui/tooltip/tooltip';
import { useI18nContext } from '../../../../hooks/useI18nContext';
import SnapAvatar from '../snap-avatar/snap-avatar';
import { getSnapMetadata } from '../../../../selectors';
import { SnapIcon } from '../snap-icon';

export default function SnapConnectCell({ origin, snapId }) {
const t = useI18nContext();
Expand All @@ -33,7 +33,7 @@ export default function SnapConnectCell({ origin, snapId }) {
paddingTop={2}
paddingBottom={2}
>
<SnapAvatar snapId={snapId} />
<SnapIcon snapId={snapId} />
<Box width="full" paddingLeft={4} paddingRight={4}>
<Text>
{t('connectSnap', [
Expand Down
11 changes: 10 additions & 1 deletion ui/components/app/snaps/snap-home-page/snap-home-renderer.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
import { SnapDelineator } from '../snap-delineator';
import { DelineatorType } from '../../../../helpers/constants/snaps';
import {
BackgroundColor,
BlockSize,
TextVariant,
} from '../../../../helpers/constants/design-system';
Expand Down Expand Up @@ -64,7 +65,14 @@ export const SnapHomeRenderer = ({ snapId }) => {
}, [unapprovedTemplatedConfirmations, unapprovedConfirmations, history]);

return (
<Box height={BlockSize.Full}>
<Box
height={BlockSize.Full}
width={BlockSize.Full}
backgroundColor={BackgroundColor.backgroundAlternative}
style={{
overflow: 'auto',
}}
>
{error && (
<Box height={BlockSize.Full} padding={4}>
<SnapDelineator snapName={snapName} type={DelineatorType.Error}>
Expand All @@ -82,6 +90,7 @@ export const SnapHomeRenderer = ({ snapId }) => {
isLoading={loading}
useDelineator={false}
useFooter
contentBackgroundColor={BackgroundColor.backgroundAlternative}
/>
)}
</Box>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import {

import { Box, Text } from '../../../component-library';
import { getSnapMetadata } from '../../../../selectors';
import SnapAvatar from '../snap-avatar';
import { SnapIcon } from '../snap-icon';

const SnapLegacyAuthorshipHeader = ({
snapId,
Expand All @@ -45,7 +45,7 @@ const SnapLegacyAuthorshipHeader = ({
marginRight={marginRight}
>
<Box>
<SnapAvatar snapId={snapId} />
<SnapIcon snapId={snapId} />
</Box>
<Box
marginLeft={4}
Expand Down
4 changes: 2 additions & 2 deletions ui/components/app/snaps/snap-list-item/snap-list-item.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import {
IconSize,
Icon,
} from '../../../component-library';
import SnapAvatar from '../snap-avatar';
import { SnapIcon } from '../snap-icon';

const SnapListItem = ({
name,
Expand Down Expand Up @@ -45,7 +45,7 @@ const SnapListItem = ({
width={BlockSize.Full}
>
<Box>
<SnapAvatar snapId={snapId} />
<SnapIcon snapId={snapId} />
</Box>
<Box
paddingLeft={4}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ import {
TextAlign,
TextVariant,
} from '../../../../helpers/constants/design-system';
import SnapAvatar from '../snap-avatar';
import { formatDate } from '../../../../helpers/utils/util';
import { useI18nContext } from '../../../../hooks/useI18nContext';
import { useOriginMetadata } from '../../../../hooks/useOriginMetadata';
Expand All @@ -41,6 +40,7 @@ import SnapExternalPill from '../snap-version/snap-external-pill';
import { useSafeWebsite } from '../../../../hooks/snaps/useSafeWebsite';
import Tooltip from '../../../ui/tooltip';
import { isSnapId } from '../../../../helpers/utils/snaps';
import { SnapIcon } from '../snap-icon';

export const SnapMetadataModal = ({ snapId, isOpen, onClose }) => {
const t = useI18nContext();
Expand Down Expand Up @@ -101,7 +101,7 @@ export const SnapMetadataModal = ({ snapId, isOpen, onClose }) => {
}}
>
<Box>
<SnapAvatar snapId={snapId} />
<SnapIcon snapId={snapId} />
</Box>
<Text variant={TextVariant.bodyMdMedium} textAlign={TextAlign.Center}>
{snapName}
Expand Down
4 changes: 4 additions & 0 deletions ui/components/app/snaps/snap-ui-checkbox/snap-ui-checkbox.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React, { FunctionComponent, useEffect, useState } from 'react';
import { useSnapInterfaceContext } from '../../../../contexts/snaps';
import {
BorderColor,
Display,
FlexDirection,
} from '../../../../helpers/constants/design-system';
Expand Down Expand Up @@ -68,6 +69,9 @@ export const SnapUICheckbox: FunctionComponent<SnapUICheckboxProps> = ({
onChange={handleChange}
isChecked={value}
label={label}
inputProps={{
borderColor: BorderColor.borderMuted,
}}
{...props}
/>
)}
Expand Down
3 changes: 3 additions & 0 deletions ui/components/app/snaps/snap-ui-dropdown/snap-ui-dropdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,9 @@ export const SnapUIDropdown: FunctionComponent<SnapUIDropdownProps> = ({
data-testid="snaps-dropdown"
selectedOption={value}
onChange={handleChange}
style={{
border: '1px solid var(--color-border-muted)',
}}
{...props}
/>
{error && (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,8 @@ export const SnapUIFileInput: FunctionComponent<SnapUIFileInputProps> = ({
style={{
cursor: 'pointer',
backgroundColor: active
? 'var(--color-background-alternative-hover)'
: undefined,
? 'var(--color-background-default-hover)'
: 'var(--color-background-default)',
}}
onClick={handleClick}
onDragOver={handleDragOver}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@ export const container: UIComponentFactory<BoxElement> = ({
flexDirection: FlexDirection.Column,
height: BlockSize.Full,
className: 'snap-ui-renderer__container',
style: {
overflow: 'auto',
},
},
};
};
Loading

0 comments on commit 80f9939

Please sign in to comment.