import {
  PATTERN_COSMOS,
  PATTERN_CYBER,
  PATTERN_ETH,
  PATTERN_SPACE_PUSSY,
} from 'src/constants/patterns';
import imgSpacePussy from '../../../../image/space-pussy.svg';

import { GIFT_ICON } from '../../utils';
import styles from './styles.scss';

const classNames = require('classnames');

const imgEth = require('../../../../image/Ethereum_logo_2014.svg');
const imgBostrom = require('../../../../image/large-green.png');
const imgCosmos = require('../../../../image/cosmos-2.svg');
const imgOsmosis = require('../../../../image/osmosis.svg');
const imgTerra = require('../../../../image/terra.svg');

const defaultImg = require('../../../../image/large-yellow-circle.png');
const imgHome = require('../../../../image/home-icon.png');

const PATTERN_OSMOSIS = /^osmo[a-zA-Z0-9]{39}$/g;
const PATTERN_TERRA = /^terra[a-zA-Z0-9]{39}$/g;

const GIFT_ICON_CLAIM = '๐ŸŽโœ…';

function ParseAddressesImg({ address, active, statusAddressGift, ...props }) {
  let gift;
  let claimed;

  if (statusAddressGift) {
    gift = statusAddressGift.gift;
    claimed = statusAddressGift.claimed;
  }

  let img = defaultImg;

  if (address.address.match(PATTERN_ETH)) {
    img = imgEth;
  }

  if (address.address.match(PATTERN_COSMOS)) {
    img = imgCosmos;
  }

  if (address.address.match(PATTERN_OSMOSIS)) {
    img = imgOsmosis;
  }

  if (address.address.match(PATTERN_TERRA)) {
    img = imgTerra;
  }

  if (address.address.match(PATTERN_CYBER)) {
    img = imgBostrom;
  }

  if (address.address.match(PATTERN_SPACE_PUSSY)) {
    img = imgSpacePussy;
  }

  return (
    <button className={styles.ButtonIconNetwork} type="button" {...props}>
      <img src={img} alt="img" />
      {address.address.match(PATTERN_CYBER) && (
        <img className={styles.IconHome} src={imgHome} alt="img" />
      )}
      {gift && claimed === false && (
        <div
          style={{
            position: 'absolute',
            left: '50%',
            marginRight: '-50%',
            transform: 'translate(-50%, -16px)',
          }}
        >
          {GIFT_ICON}
        </div>
      )}
      {claimed && (
        <div
          style={{
            position: 'absolute',
            left: '50%',
            marginRight: '-50%',
            width: '35px',
            transform: 'translate(-50%, -16px)',
          }}
        >
          {GIFT_ICON_CLAIM}
        </div>
      )}
      {active && (
        <>
          <div className={classNames(styles.textboxFace, styles.textboxBottomGradient)} />
          <div className={classNames(styles.textboxBottomLine)} />
        </>
      )}
    </button>
  );
}

export default ParseAddressesImg;

Synonyms

pussy-ts/src/containers/wasm/index.jsx
pussy-ts/src/containers/trollBox/index.jsx
cyb/src/containers/movie/index.jsx
cyb/src/components/battery/index.jsx
cyb/src/components/vitalik/index.jsx
pussy-ts/src/containers/oracle/index.jsx
cyb/src/containers/wasm/index.jsx
cyb/src/components/ButtonNetwork/index.jsx
pussy-ts/src/containers/blok/index.jsx
pussy-ts/src/components/battery/index.jsx
cyb/src/components/searchSnippet/index.jsx
pussy-ts/src/containers/validator/index.jsx
pussy-ts/src/containers/Objects/index.jsx
cyb/src/containers/parameters/index.jsx
pussy-ts/src/containers/parameters/index.jsx
pussy-ts/src/containers/market/index.jsx
cyb/src/containers/oracle/index.jsx
cyb/src/components/particle/index.jsx
pussy-ts/src/components/numberCurrency/index.jsx
cyb/src/components/numberCurrency/index.jsx
pussy-ts/src/containers/testKeplre/index.jsx
pussy-ts/src/components/valueImg/index.jsx
pussy-ts/src/components/ButtonNetwork/index.jsx
pussy-ts/src/containers/network/index.jsx
pussy-ts/src/components/particle/index.jsx
pussy-ts/src/containers/movie/index.jsx
cyb/src/containers/market/index.jsx
pussy-ts/src/containers/help/index.jsx
pussy-ts/src/components/statusTooltip/index.jsx
cyb/src/containers/help/index.jsx
pussy-ts/src/components/vitalik/index.jsx
cyb/src/containers/testPage/index.jsx
pussy-ts/src/components/searchSnippet/index.jsx
cyb/src/components/valueImg/index.jsx
cyb/src/components/statusTooltip/index.jsx
cyb/src/containers/trollBox/index.jsx
pussy-ts/src/containers/Validators/components/index.jsx
pussy-ts/src/containers/portal/stateComponent/index.jsx
pussy-ts/src/containers/parameters/tabs/index.jsx
pussy-ts/src/containers/wasm/codes/index.jsx
pussy-ts/src/containers/wasm/contract/index.jsx
cyb/src/containers/wasm/contract/index.jsx
cyb/src/containers/portal/stateComponent/index.jsx
cyb/src/containers/parameters/tabs/index.jsx
cyb/src/containers/temple/components/canvasOne/index.jsx
cyb/src/containers/wasm/contract/renderAbi/index.jsx
cyb/src/containers/wasm/codes/code/index.jsx
pussy-ts/src/containers/portal/components/progressCard/index.jsx
pussy-ts/src/containers/temple/components/canvasOne/index.jsx
pussy-ts/src/containers/portal/components/ActionBar/index.jsx
cyb/src/containers/wasm/codes/codePage/index.jsx
pussy-ts/src/containers/portal/components/nextUnfreeze/index.jsx
pussy-ts/src/containers/portal/components/Released/index.jsx
cyb/src/containers/portal/components/progressCard/index.jsx
cyb/src/containers/portal/components/currentGift/index.jsx
pussy-ts/src/containers/wasm/codes/code/index.jsx
pussy-ts/src/containers/wasm/contract/renderAbi/index.jsx
pussy-ts/src/containers/portal/components/currentGift/index.jsx
cyb/src/containers/portal/components/Released/index.jsx
pussy-ts/src/containers/portal/components/imgNetwork/index.jsx
pussy-ts/src/containers/energy/ui/card/index.jsx
pussy-ts/src/containers/wasm/codes/codePage/index.jsx
cyb/src/containers/portal/components/nextUnfreeze/index.jsx
cyb/src/containers/energy/ui/card/index.jsx
pussy-ts/src/containers/sigma/components/cardUi/ChartTotal/index.jsx
pussy-ts/src/containers/sigma/components/cardUi/DetailsBalance/index.jsx
pussy-ts/src/containers/sigma/components/cardUi/BtnArrow/index.jsx
cyb/src/containers/sigma/components/cardUi/ChartTotal/index.jsx
cyb/src/containers/sigma/components/cardUi/BtnArrow/index.jsx
cyb/src/containers/sigma/components/cardUi/DetailsBalance/index.jsx

Neighbours