Skip to content

Commit

Permalink
updated final screen for editing flow
Browse files Browse the repository at this point in the history
  • Loading branch information
NidhiKJha committed Sep 4, 2024
1 parent 5ce582a commit acaddf8
Show file tree
Hide file tree
Showing 17 changed files with 192 additions and 217 deletions.
20 changes: 14 additions & 6 deletions app/_locales/en/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 0 additions & 2 deletions test/data/mock-send-state.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@
"appState": {
"networkDropdownOpen": false,
"importNftsModal": { "open": false },
"showEditAccountsModalOpen": false,
"showEditNetworksModalOpen": false,
"showPermittedNetworkToastOpen": false,
"gasIsLoading": false,
"isLoading": false,
Expand Down
2 changes: 0 additions & 2 deletions test/data/mock-state.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@
"importNftsModal": {
"open": false
},
"showEditAccountsModalOpen": false,
"showEditNetworksModalOpen": false,
"showPermittedNetworkToastOpen": false,
"gasIsLoading": false,
"isLoading": false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ import { MetaMetricsContext } from '../../../contexts/metametrics';
import { useCopyToClipboard } from '../../../hooks/useCopyToClipboard';
import { MINUTE } from '../../../../shared/constants/time';
import { NotificationsTagCounter } from '../notifications-tag-counter';
import { CONNECTIONS } from '../../../helpers/constants/routes';
import { CONNECTIONS, REVIEW_PERMISSIONS } from '../../../helpers/constants/routes';
import { MultichainNetwork } from '../../../selectors/multichain';

type AppHeaderUnlockedContentProps = {
Expand Down Expand Up @@ -115,6 +115,9 @@ export const AppHeaderUnlockedContent = ({
};

const handleConnectionsRoute = () => {
if (process.env.CHAIN_PERMISSIONS) {
history.push(`${REVIEW_PERMISSIONS}/${encodeURIComponent(origin)}`);
}
history.push(`${CONNECTIONS}/${encodeURIComponent(origin)}`);
};

Expand Down
19 changes: 0 additions & 19 deletions ui/components/multichain/global-menu/global-menu.js
Original file line number Diff line number Diff line change
Expand Up @@ -252,25 +252,6 @@ export const GlobalMenu = ({ closeMenu, anchorElement, isOpen }) => {
>
{t('allPermissions')}
</MenuItem>
<MenuItem
iconName={IconName.SecurityTick}
onClick={() => {
history.push(REVIEW_PERMISSIONS);
trackEvent({
event: MetaMetricsEventName.NavPermissionsOpened,
category: MetaMetricsEventCategory.Navigation,
properties: {
location: METRICS_LOCATION,
},
});
closeMenu();
}}
data-testid="global-menu-connected-sites"
disabled={hasUnapprovedTransactions}
>
"global menu"
</MenuItem>

{
///: BEGIN:ONLY_INCLUDE_IF(build-mmi)
mmiPortfolioEnabled && (
Expand Down
10 changes: 6 additions & 4 deletions ui/components/multichain/network-list-menu/network-list-menu.js
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ export const NetworkListMenu = ({ onClose }) => {
return sortedNonTestNetworks;
};

//check if not granted chain is clicked, then show the toast and grant permission
// check if not granted chain is clicked, then show the toast and grant permission
const networksList = newOrderNetworks();

const [items, setItems] = useState([...networksList]);
Expand Down Expand Up @@ -310,9 +310,11 @@ export const NetworkListMenu = ({ onClose }) => {
onClick={() => {
dispatch(toggleNetworkMenu());
dispatch(setActiveNetwork(network.providerType || network.id));
grantPermittedChain(selectedTabOrigin, network.chainId);
if (!flattenedPermittedChains.includes(network.chainId)) {
dispatch(showPermittedNetworkToast());
if (process.env.CHAIN_PERMISSIONS) {
grantPermittedChain(selectedTabOrigin, network.chainId);
if (!flattenedPermittedChains.includes(network.chainId)) {
dispatch(showPermittedNetworkToast());
}
}
if (
useRequestQueue &&
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import {
import {
CONNECTIONS,
DEFAULT_ROUTE,
REVIEW_PERMISSIONS,
} from '../../../../helpers/constants/routes';
import {
getOnboardedInThisUISession,
Expand Down Expand Up @@ -53,6 +54,9 @@ export const PermissionsPage = () => {
const handleConnectionClick = (connection) => {
const hostName = connection.origin;
const safeEncodedHost = encodeURIComponent(hostName);
if (process.env.CHAIN_PERMISSIONS) {
history.push(`${REVIEW_PERMISSIONS}/${safeEncodedHost}`);
}
history.push(`${CONNECTIONS}/${safeEncodedHost}`);
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ import { useHistory, useParams } from 'react-router-dom';
import {
AlignItems,
BackgroundColor,
BlockSize,
Display,
FlexDirection,
IconColor,
JustifyContent,
TextAlign,
Expand All @@ -21,7 +23,7 @@ import {
getPermissionSubjects,
getPermittedChainsByOrigin,
getPermittedChainsForSelectedTab,
} from '../../../../selectors/index';
} from '../../../../selectors';
import { removePermissionsFor } from '../../../../store/actions';
import {
AvatarFavicon,
Expand All @@ -37,17 +39,19 @@ import {
IconSize,
Text,
} from '../../../component-library';
import { ToastContainer, Toast } from '../..';
import { NoConnectionContent } from '../connections/components/no-connection';
import { Content, Footer, Header, Page } from '../page';
import { SiteCell } from './index';
import { SiteCell } from '.';

export const ReviewPermissions = () => {
const t = useI18nContext();
const dispatch = useDispatch();
const history = useHistory();
const urlParams: { origin: string } = useParams();
const securedOrigin = decodeURIComponent(urlParams.origin);

const [showAccountToast, setShowAccountToast] = useState(false);
const [showNetworkToast, setShowNetworkToast] = useState(false);
const activeTabOrigin: string = securedOrigin;
const subjectMetadata = useSelector(getConnectedSitesList);
const connectedSubjectsMetadata = subjectMetadata[activeTabOrigin];
Expand All @@ -62,6 +66,7 @@ export const ReviewPermissions = () => {
const grantedNetworks = networksList.filter(
(net: { chainId: any }) => connectedNetworks.indexOf(net.chainId) !== -1,
);
const hostName = getURLHost(securedOrigin);
const disconnectAllAccounts = () => {
const subject = (subjects as SubjectsType)[activeTabOrigin];

Expand All @@ -81,74 +86,118 @@ export const ReviewPermissions = () => {
),
);
}

console.log('all disconnected');
}
};
return (
<Page
data-testid="connections-page"
className="main-container connections-page"
>
{connectedAccounts.length > 0 ? <>
<Header
backgroundColor={BackgroundColor.backgroundDefault}
startAccessory={
<ButtonIcon
ariaLabel={t('back')}
iconName={IconName.ArrowLeft}
className="connections-header__start-accessory"
size={ButtonIconSize.Sm}
onClick={() => (history as any).goBack()}
/>
}
>
<Box
display={Display.Flex}
alignItems={AlignItems.center}
gap={2}
justifyContent={JustifyContent.center}
className="connections-header__title"
>
{connectedSubjectsMetadata?.iconUrl ? (
<AvatarFavicon
name={connectedSubjectsMetadata.name}
size={AvatarFaviconSize.Sm}
src={connectedSubjectsMetadata.iconUrl}
/>
) : (
<Icon
name={IconName.Global}
size={IconSize.Sm}
color={IconColor.iconDefault}
/>
)}
<Text
as="span"
variant={TextVariant.headingMd}
textAlign={TextAlign.Center}
ellipsis
{connectedAccounts.length > 0 ? (
<>
<Header
backgroundColor={BackgroundColor.backgroundDefault}
startAccessory={
<ButtonIcon
ariaLabel={t('back')}
iconName={IconName.ArrowLeft}
className="connections-header__start-accessory"
size={ButtonIconSize.Sm}
onClick={() => (history as any).goBack()}
/>
}
>
{getURLHost(securedOrigin)}
</Text>
</Box>
</Header>
<Content padding={0}>
<SiteCell networks={grantedNetworks} accounts={connectedAccounts} />
</Content>
<Footer>
<Button
size={ButtonSize.Lg}
block
variant={ButtonVariant.Secondary}
startIconName={IconName.Logout}
danger
onClick={() => disconnectAllAccounts()}
>
{t('disconnectAllAccounts')}
</Button>
</Footer> </> : <NoConnectionContent />
}
<Box
display={Display.Flex}
alignItems={AlignItems.center}
gap={2}
justifyContent={JustifyContent.center}
className="connections-header__title"
>
{connectedSubjectsMetadata?.iconUrl ? (
<AvatarFavicon
name={connectedSubjectsMetadata.name}
size={AvatarFaviconSize.Sm}
src={connectedSubjectsMetadata.iconUrl}
/>
) : (
<Icon
name={IconName.Global}
size={IconSize.Sm}
color={IconColor.iconDefault}
/>
)}
<Text
as="span"
variant={TextVariant.headingMd}
textAlign={TextAlign.Center}
ellipsis
>
{hostName}
</Text>
</Box>
</Header>
<Content padding={0}>
<SiteCell
networks={grantedNetworks}
accounts={connectedAccounts}
onAccountsClick={() => setShowAccountToast(true)}
onNetworksClick={() => setShowNetworkToast(true)}
/>
</Content>
<Footer>
<Box
display={Display.Flex}
flexDirection={FlexDirection.Column}
width={BlockSize.Full}
gap={2}
>
{showAccountToast ? (
<ToastContainer>
<Toast
text={t('accountPermissionToast', [hostName])}
onClose={() => setShowAccountToast(false)}
startAdornment={
<AvatarFavicon
name={connectedSubjectsMetadata?.name}
size={AvatarFaviconSize.Sm}
src={connectedSubjectsMetadata?.iconUrl}
/>
}
/>
</ToastContainer>
) : null}
{showNetworkToast ? (
<ToastContainer>
<Toast
text={t('networkPermissionToast', [hostName])}
onClose={() => setShowNetworkToast(false)}
startAdornment={
<AvatarFavicon
name={connectedSubjectsMetadata?.name}
size={AvatarFaviconSize.Sm}
src={connectedSubjectsMetadata?.iconUrl}
/>
}
/>
</ToastContainer>
) : null}
<Button
size={ButtonSize.Lg}
block
variant={ButtonVariant.Secondary}
startIconName={IconName.Logout}
danger
onClick={() => disconnectAllAccounts()}
>
{t('disconnectAllAccounts')}
</Button>
</Box>
</Footer>{' '}
</>
) : (
<NoConnectionContent />
)}
</Page>
);
};
Loading

0 comments on commit acaddf8

Please sign in to comment.