import React, { useEffect, useState } from 'react';
import { SessionButton, SessionButtonColor, SessionButtonType } from '../SessionButton';
import { SessionIdEditable } from '../SessionIdEditable';
import { signUp } from './RegistrationTabs';
import { RegistrationUserDetails } from './RegistrationUserDetails';
import { TermsAndConditions } from './TermsAndConditions';
export enum SignUpMode {
  Default,
  SessionIDShown,
  EnterDetails,
}
export interface Props {
  // tslint:disable: react-unused-props-and-state
  generatedRecoveryPhrase: string;
  hexGeneratedPubKey: string;
}
const CreateSessionIdButton = ({ createSessionID }: { createSessionID: any }) => {
  return (
    
  );
};
const ContinueSignUpButton = ({ continueSignUp }: { continueSignUp: any }) => {
  return (
    
  );
};
const SignUpDefault = (props: { createSessionID: () => void }) => {
  const allUsersAreRandomly = window.i18n('allUsersAreRandomly...');
  return (
    
  );
};
const SignUpSessionIDShown = (props: { continueSignUp: () => void }) => {
  return (
    
      
        {window.i18n('yourUniqueSessionID')}
      
      
      
      
     
  );
};
export const SignUpTab = (props: Props) => {
  const [signUpMode, setSignUpMode] = useState(SignUpMode.Default);
  const [displayName, setDisplayName] = useState('');
  const [displayNameError, setDisplayNameError] = useState('');
  useEffect(() => {
    if (signUpMode === SignUpMode.SessionIDShown) {
      window.Session.setNewSessionID(props.hexGeneratedPubKey);
    }
  }, [signUpMode]);
  if (signUpMode === SignUpMode.Default) {
    return (
       {
          setSignUpMode(SignUpMode.SessionIDShown);
        }}
      />
    );
  }
  if (signUpMode === SignUpMode.SessionIDShown) {
    return (
       {
          setSignUpMode(SignUpMode.EnterDetails);
        }}
      />
    );
  }
  // can only be the EnterDetails step
  // Display name is required
  const displayNameOK = !displayNameError && !!displayName;
  const enableCompleteSignUp = displayNameOK;
  const signUpWithDetails = async () => {
    await signUp({
      displayName,
      generatedRecoveryPhrase: props.generatedRecoveryPhrase,
    });
  };
  return (
    
      
        {window.i18n('welcomeToYourSession')}
      
       {
          const sanitizedName = name.replace(window.displayNameRegex, '');
          const trimName = sanitizedName.trim();
          setDisplayName(sanitizedName);
          setDisplayNameError(!trimName ? window.i18n('displayNameEmpty') : undefined);
        }}
        stealAutoFocus={true}
      />
      
      
     
  );
};