Skip to content

Commit

Permalink
refactor: move logic to effect for login status component
Browse files Browse the repository at this point in the history
  • Loading branch information
dawidgil committed Apr 7, 2022
1 parent 12b2d06 commit 96c6d67
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 35 deletions.
Original file line number Diff line number Diff line change
@@ -1,42 +1,9 @@
import { RoleStatus } from '@dsb-client-gateway/dsb-client-gateway/identity/models';
import { AccountStatusEnum } from '../check-account-status/check-account-status';
import InsufficientFund from './InsufficientFund/InsufficientFund';
import EnrolForRoleContainer from './EnrolForRoleContainer/EnrolForRoleContainer';
import RequestingEnrolment from './RequestingEnrolment/RequestingEnrolment';
import AwaitingSyncing from './AwaitingSyncing/AwaitingSyncing';
import ResetPrivateKey from '../ResetPrivateKey/ResetPrivateKey';
import LoginForm from '../LoginForm/LoginForm';
import { usePrivateKey } from '../Login.effects';
import LoadingInfo from '../LoadingInfo/LoadingInfo';
import { useLoginStatus } from './RequestingEnrolment/LoginStatus.effects';


export function LoginStatus() {
const {isLoading, submit, status} = usePrivateKey();

const onSubmit = (privateKey: string) => {
submit(privateKey);
};

const statusFactory = () => {
switch (status) {
case AccountStatusEnum.NotSetPrivateKey:
return <LoginForm onPrivateKeySubmit={onSubmit} />;
case AccountStatusEnum.InsufficientFund:
return <InsufficientFund/>;
case RoleStatus.NOT_ENROLLED:
return <EnrolForRoleContainer/>;
case RoleStatus.AWAITING_APPROVAL:
return <RequestingEnrolment/>;
case RoleStatus.APPROVED:
return <AwaitingSyncing/>;
default:
return (
<>
<div>Ops! Something went wrong!</div>
<ResetPrivateKey/>
</>);
}
};
const {isLoading, statusFactory} = useLoginStatus();

return (
<>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { usePrivateKey } from '../../Login.effects';
import { AccountStatusEnum } from '../../check-account-status/check-account-status';
import LoginForm from '../../LoginForm/LoginForm';
import InsufficientFund from '../InsufficientFund/InsufficientFund';
import { RoleStatus } from '@dsb-client-gateway/dsb-client-gateway/identity/models';
import EnrolForRoleContainer from '../EnrolForRoleContainer/EnrolForRoleContainer';
import RequestingEnrolment from './RequestingEnrolment';
import AwaitingSyncing from '../AwaitingSyncing/AwaitingSyncing';
import ResetPrivateKey from '../../ResetPrivateKey/ResetPrivateKey';

export const useLoginStatus = () => {
const {isLoading, submit, status} = usePrivateKey();

const privateKeyHandler = (privateKey: string) => {
submit(privateKey);
};

const statusFactory = () => {
switch (status) {
case AccountStatusEnum.NotSetPrivateKey:
return <LoginForm onPrivateKeySubmit={privateKeyHandler} />;
case AccountStatusEnum.InsufficientFund:
return <InsufficientFund/>;
case RoleStatus.NOT_ENROLLED:
return <EnrolForRoleContainer/>;
case RoleStatus.AWAITING_APPROVAL:
return <RequestingEnrolment/>;
case RoleStatus.APPROVED:
return <AwaitingSyncing/>;
default:
return (
<>
<div>Ops! Something went wrong!</div>
<ResetPrivateKey/>
</>);
}
};

return {statusFactory, isLoading}
}

0 comments on commit 96c6d67

Please sign in to comment.