2024-02-11 22:20:19 +00:00
|
|
|
import React, { useState } from 'react';
|
|
|
|
|
2024-03-17 23:06:27 +00:00
|
|
|
import ExtensionStep from '../nostr-login-modal/steps/extension-step';
|
|
|
|
|
2024-02-13 01:39:34 +00:00
|
|
|
import KeyStep from './steps/key-step';
|
2024-02-19 04:55:05 +00:00
|
|
|
import KeygenStep from './steps/keygen-step';
|
2024-02-11 22:20:19 +00:00
|
|
|
|
2024-03-16 21:03:54 +00:00
|
|
|
type Step = 'extension' | 'key' | 'keygen';
|
2024-02-19 05:20:20 +00:00
|
|
|
|
2024-03-16 21:05:56 +00:00
|
|
|
interface INostrSignupModal {
|
2024-02-11 22:20:19 +00:00
|
|
|
onClose: (type?: string) => void;
|
|
|
|
}
|
|
|
|
|
2024-03-16 21:05:56 +00:00
|
|
|
const NostrSigninModal: React.FC<INostrSignupModal> = ({ onClose }) => {
|
2024-03-16 20:10:34 +00:00
|
|
|
const [step, setStep] = useState<Step>(window.nostr ? 'extension' : 'key');
|
2024-02-13 01:39:34 +00:00
|
|
|
|
2024-03-16 21:05:56 +00:00
|
|
|
const handleClose = () => onClose('NOSTR_SIGNUP');
|
2024-02-18 19:27:30 +00:00
|
|
|
|
|
|
|
switch (step) {
|
2024-02-19 05:20:20 +00:00
|
|
|
case 'extension':
|
2024-03-17 23:06:27 +00:00
|
|
|
return <ExtensionStep onClickAlt={() => setStep('key')} onClose={handleClose} />;
|
2024-02-19 05:20:20 +00:00
|
|
|
case 'key':
|
2024-03-16 20:02:16 +00:00
|
|
|
return <KeyStep setStep={setStep} onClose={handleClose} />;
|
2024-02-19 05:20:20 +00:00
|
|
|
case 'keygen':
|
2024-03-16 20:06:55 +00:00
|
|
|
return <KeygenStep onClose={handleClose} />;
|
2024-02-18 19:27:30 +00:00
|
|
|
default:
|
|
|
|
return null;
|
|
|
|
}
|
2024-02-11 22:20:19 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
export default NostrSigninModal;
|
2024-02-19 05:20:20 +00:00
|
|
|
|
|
|
|
export type { Step };
|