NostrSigninModal: scaffold steps

environments/review-ditto-auth-csh1vn/deployments/4454
Alex Gleason 7 months ago
parent 1c97a163d0
commit 1618fbbb8f
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7

@ -3,8 +3,11 @@ import { FormattedMessage } from 'react-intl';
import { Modal, Stack } from 'soapbox/components/ui'; import { Modal, Stack } from 'soapbox/components/ui';
import AccountStep from './steps/account-step';
import ExtensionStep from './steps/extension-step'; import ExtensionStep from './steps/extension-step';
import IdentityStep from './steps/identity-step'; import IdentityStep from './steps/identity-step';
import KeyStep from './steps/key-step';
import RegisterStep from './steps/register-step';
interface INostrSigninModal { interface INostrSigninModal {
onClose: (type?: string) => void; onClose: (type?: string) => void;
@ -13,6 +16,8 @@ interface INostrSigninModal {
const NostrSigninModal: React.FC<INostrSigninModal> = ({ onClose }) => { const NostrSigninModal: React.FC<INostrSigninModal> = ({ onClose }) => {
const [step, setStep] = useState(0); const [step, setStep] = useState(0);
const [username, setUsername] = useState('');
const handleClose = () => { const handleClose = () => {
onClose('NOSTR_SIGNIN'); onClose('NOSTR_SIGNIN');
}; };
@ -22,7 +27,13 @@ const NostrSigninModal: React.FC<INostrSigninModal> = ({ onClose }) => {
case 0: case 0:
return <ExtensionStep setStep={setStep} />; return <ExtensionStep setStep={setStep} />;
case 1: case 1:
return <IdentityStep setStep={setStep} />; return <IdentityStep username={username} setUsername={setUsername} setStep={setStep} />;
case 2:
return <KeyStep />;
case 3:
return <AccountStep />;
case 4:
return <RegisterStep />;
} }
}; };
@ -32,6 +43,8 @@ const NostrSigninModal: React.FC<INostrSigninModal> = ({ onClose }) => {
return <FormattedMessage id='nostr_signin.siwe.title' defaultMessage='Sign in' />; return <FormattedMessage id='nostr_signin.siwe.title' defaultMessage='Sign in' />;
case 1: case 1:
return <FormattedMessage id='nostr_signin.identity.title' defaultMessage='Who are you?' />; return <FormattedMessage id='nostr_signin.identity.title' defaultMessage='Who are you?' />;
case 2:
return <FormattedMessage id='nostr_signin.key.title' defaultMessage='You need a key to continue' />;
default: default:
return null; return null;
} }

@ -0,0 +1,16 @@
import React from 'react';
import Stack from 'soapbox/components/ui/stack/stack';
interface IAccountStep {
}
const AccountStep: React.FC<IAccountStep> = () => {
return (
<Stack space={3}>
account step
</Stack>
);
};
export default AccountStep;

@ -9,18 +9,22 @@ import Stack from 'soapbox/components/ui/stack/stack';
import NostrExtensionIndicator from '../nostr-extension-indicator'; import NostrExtensionIndicator from '../nostr-extension-indicator';
interface IIdentityStep { interface IIdentityStep {
setStep: (step: number) => void; username: string;
setUsername(username: string): void;
setStep(step: number): void;
} }
const IdentityStep: React.FC<IIdentityStep> = ({ setStep }) => { const IdentityStep: React.FC<IIdentityStep> = ({ username, setUsername, setStep }) => {
return ( return (
<Stack space={3}> <Stack className='mt-3' space={3}>
<NostrExtensionIndicator signinAction={() => setStep(0)} /> <NostrExtensionIndicator signinAction={() => setStep(0)} />
<FormGroup labelText='Username'> <FormGroup labelText='Username'>
<Input <Input
icon={require('@tabler/icons/at.svg')} icon={require('@tabler/icons/at.svg')}
placeholder='Username or npub' placeholder='Username or npub'
value={username}
onChange={(e) => setUsername(e.target.value)}
/> />
</FormGroup> </FormGroup>

@ -0,0 +1,16 @@
import React from 'react';
import Stack from 'soapbox/components/ui/stack/stack';
interface IKeyStep {
}
const KeyStep: React.FC<IKeyStep> = () => {
return (
<Stack space={3}>
key step
</Stack>
);
};
export default KeyStep;

@ -0,0 +1,16 @@
import React from 'react';
import Stack from 'soapbox/components/ui/stack/stack';
interface IRegisterStep {
}
const RegisterStep: React.FC<IRegisterStep> = () => {
return (
<Stack space={3}>
register step
</Stack>
);
};
export default RegisterStep;
Loading…
Cancel
Save