feat(wallet): tighten up the flow for "view as vega user" (#2934)

This commit is contained in:
Sam Keen 2023-02-20 15:56:12 +00:00 committed by GitHub
parent d4ecb88fb4
commit 4286bc37b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 64 additions and 22 deletions

View File

@ -7,7 +7,7 @@ export const ConnectDialogTitle = ({ children }: { children: ReactNode }) => {
return ( return (
<h1 <h1
data-testid="wallet-dialog-title" data-testid="wallet-dialog-title"
className="text-2xl uppercase mb-6 text-center" className="text-2xl uppercase mb-6 text-center font-alpha"
> >
{children} {children}
</h1> </h1>

View File

@ -229,6 +229,7 @@ const ConnectorList = ({
</li> </li>
)} )}
<li className="mb-4 last:mb-0"> <li className="mb-4 last:mb-0">
<div className="my-4 text-center text-vega-dark-400">{t('OR')}</div>
<ConnectionOption <ConnectionOption
type="view" type="view"
text={t('View as vega user')} text={t('View as vega user')}
@ -264,6 +265,13 @@ const SelectedForm = ({
return ( return (
<> <>
<ConnectDialogContent> <ConnectDialogContent>
<button
onClick={reset}
className="absolute p-2 top-0 left-0 md:top-2 md:left-2"
data-testid="back-button"
>
<Icon name={'chevron-left'} ariaLabel="back" size={4} />
</button>
<ConnectDialogTitle>{t('Connect')}</ConnectDialogTitle> <ConnectDialogTitle>{t('Connect')}</ConnectDialogTitle>
<div className="mb-2"> <div className="mb-2">
<RestConnectorForm connector={connector} onConnect={onConnect} /> <RestConnectorForm connector={connector} onConnect={onConnect} />
@ -315,7 +323,11 @@ const SelectedForm = ({
return ( return (
<> <>
<ConnectDialogContent> <ConnectDialogContent>
<ViewConnectorForm connector={connector} onConnect={onConnect} /> <ViewConnectorForm
connector={connector}
onConnect={onConnect}
reset={reset}
/>
</ConnectDialogContent> </ConnectDialogContent>
<ConnectDialogFooter /> <ConnectDialogFooter />
</> </>

View File

@ -1,5 +1,11 @@
import { t } from '@vegaprotocol/react-helpers'; import { t } from '@vegaprotocol/react-helpers';
import { Button, FormGroup, Input, InputError } from '@vegaprotocol/ui-toolkit'; import {
Button,
FormGroup,
Icon,
Input,
InputError,
} from '@vegaprotocol/ui-toolkit';
import { useForm } from 'react-hook-form'; import { useForm } from 'react-hook-form';
import type { ViewConnector } from '../connectors'; import type { ViewConnector } from '../connectors';
import { useVegaWallet } from '../use-vega-wallet'; import { useVegaWallet } from '../use-vega-wallet';
@ -11,11 +17,13 @@ interface FormFields {
interface RestConnectorFormProps { interface RestConnectorFormProps {
connector: ViewConnector; connector: ViewConnector;
onConnect: (connector: ViewConnector) => void; onConnect: (connector: ViewConnector) => void;
reset: () => void;
} }
export function ViewConnectorForm({ export function ViewConnectorForm({
connector, connector,
onConnect, onConnect,
reset,
}: RestConnectorFormProps) { }: RestConnectorFormProps) {
const { connect } = useVegaWallet(); const { connect } = useVegaWallet();
const { const {
@ -41,7 +49,23 @@ export function ViewConnectorForm({
} }
return ( return (
<>
<button
onClick={reset}
className="absolute p-2 top-0 left-0 md:top-2 md:left-2"
data-testid="back-button"
>
<Icon name={'chevron-left'} ariaLabel="back" size={4} />
</button>
<form onSubmit={handleSubmit(onSubmit)} data-testid="view-connector-form"> <form onSubmit={handleSubmit(onSubmit)} data-testid="view-connector-form">
<h1 className="text-2xl uppercase mb-6 text-center font-alpha">
{t('VIEW AS VEGA USER')}
</h1>
<p className="mb-4">
{t(
'Browse from the perspective of another Vega user in read-only mode.'
)}
</p>
<FormGroup label={t('Vega Pubkey')} labelFor="address"> <FormGroup label={t('Vega Pubkey')} labelFor="address">
<Input <Input
{...register('address', { {...register('address', {
@ -56,9 +80,15 @@ export function ViewConnectorForm({
<InputError intent="danger">{errors.address.message}</InputError> <InputError intent="danger">{errors.address.message}</InputError>
)} )}
</FormGroup> </FormGroup>
<Button data-testid="connect" variant="primary" type="submit" fill={true}> <Button
{t('Connect')} data-testid="connect"
variant="primary"
type="submit"
fill={true}
>
{t('Browse network')}
</Button> </Button>
</form> </form>
</>
); );
} }