MyCrypto/common/containers/Tabs/ENS/components/NameResolve/index.tsx

39 lines
1.0 KiB
TypeScript

import React from 'react';
import { AppState } from 'reducers';
import { NameState } from 'libs/ens';
import {
NameOwned,
NameAuction,
NameForbidden,
NameNotYetAvailable,
NameOpen,
NameReveal
} from './components';
import './NameResolve.scss';
import { Spinner } from 'components/ui';
type Props = AppState['ens'];
const modeResult = {
[NameState.Auction]: NameAuction,
[NameState.Forbidden]: NameForbidden,
[NameState.NotYetAvailable]: NameNotYetAvailable,
[NameState.Open]: NameOpen,
[NameState.Owned]: NameOwned,
[NameState.Reveal]: NameReveal
};
export const NameResolve: React.SFC<Props> = props => {
const { domainRequests, domainSelector } = props;
const { currentDomain } = domainSelector;
if (!currentDomain || !domainRequests[currentDomain] || domainRequests[currentDomain].error) {
return null;
}
const domainData = domainRequests[currentDomain].data! || false;
const Component = domainData ? modeResult[domainData.mode] : Spinner;
return <Component {...domainData} />;
};