From 32cef967e4f9221d960f19e8ddae13a9fc5c0013 Mon Sep 17 00:00:00 2001 From: Thibaut Sardan <33178835+Tbaut@users.noreply.github.com> Date: Thu, 8 Sep 2022 12:10:23 +0100 Subject: [PATCH] Use go-back instead of going to overview from the auth management (#1139) * go back instead of home * modifying the onAction instead * go back if possible otherwise go home * delete unused css --- .../AuthManagement/AccountManagement.tsx | 2 +- packages/extension-ui/src/Popup/index.tsx | 16 ++++++--- packages/extension-ui/src/partials/Header.tsx | 34 +++++++------------ 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/packages/extension-ui/src/Popup/AuthManagement/AccountManagement.tsx b/packages/extension-ui/src/Popup/AuthManagement/AccountManagement.tsx index 126d2281..fbd56eca 100644 --- a/packages/extension-ui/src/Popup/AuthManagement/AccountManagement.tsx +++ b/packages/extension-ui/src/Popup/AuthManagement/AccountManagement.tsx @@ -37,7 +37,7 @@ function AccountManagement ({ className }: Props): React.ReactElement { const _onApprove = useCallback( (): void => { updateAuthorization(selectedAccounts, url) - .then(() => onAction('/auth-list')) + .then(() => onAction('..')) .catch(console.error); }, [onAction, selectedAccounts, url] diff --git a/packages/extension-ui/src/Popup/index.tsx b/packages/extension-ui/src/Popup/index.tsx index 5e2317f1..ac4279eb 100644 --- a/packages/extension-ui/src/Popup/index.tsx +++ b/packages/extension-ui/src/Popup/index.tsx @@ -5,7 +5,7 @@ import type { AccountJson, AccountsContext, AuthorizeRequest, MetadataRequest, S import type { SettingsStruct } from '@polkadot/ui-settings/types'; import React, { useCallback, useEffect, useState } from 'react'; -import { Route, Switch } from 'react-router'; +import { Route, Switch, useHistory } from 'react-router'; import { PHISHING_PAGE_REDIRECT } from '@polkadot/extension-base/defaults'; import { canDerive } from '@polkadot/extension-base/utils'; @@ -77,16 +77,24 @@ export default function Popup (): React.ReactElement { const [signRequests, setSignRequests] = useState(null); const [isWelcomeDone, setWelcomeDone] = useState(false); const [settingsCtx, setSettingsCtx] = useState(startSettings); + const history = useHistory(); const _onAction = useCallback( (to?: string): void => { setWelcomeDone(window.localStorage.getItem('welcome_read') === 'ok'); - if (to) { - window.location.hash = to; + if (!to) { + return; } + + to === '..' + // if we can't go gack from there, go to the home + ? history.length === 1 + ? history.push('/') + : history.goBack() + : window.location.hash = to; }, - [] + [history] ); useEffect((): void => { diff --git a/packages/extension-ui/src/partials/Header.tsx b/packages/extension-ui/src/partials/Header.tsx index bea0514c..a7793d47 100644 --- a/packages/extension-ui/src/partials/Header.tsx +++ b/packages/extension-ui/src/partials/Header.tsx @@ -5,10 +5,11 @@ import type { ThemeProps } from '../types'; import { faArrowLeft, faCog, faPlusCircle, faSearch } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react'; import styled from 'styled-components'; import logo from '../assets/pjs.svg'; +import { ActionContext } from '../components'; import InputFilter from '../components/InputFilter'; import Link from '../components/Link'; import useOutsideClick from '../hooks/useOutsideClick'; @@ -43,6 +44,7 @@ function Header ({ children, className = '', onFilter, showAdd, showBackArrow, s const setMenuRef = useRef(null); const isConnected = useMemo(() => connectedTabsUrl.length >= 1 , [connectedTabsUrl]); + const onAction = useContext(ActionContext); useEffect(() => { if (!showConnectedAccounts) { @@ -91,21 +93,21 @@ function Header ({ children, className = '', onFilter, showAdd, showBackArrow, s [_onChangeFilter, isSearchOpen] ); + const _onBackArrowClick = useCallback( + () => onAction('..') + , [onAction]); + return (
{showBackArrow ? ( - - - + ) : ( ` .arrowLeftIcon { color: ${theme.labelColor}; margin-right: 1rem; - } - - .backlink { - color: ${theme.labelColor}; - min-height: 52px; - text-decoration: underline; - width: min-content; - - &:visited { - color: ${theme.labelColor}; - } + cursor: pointer; } &.smallMargin {