/** * Copyright (c) 2018 - present Zilliqa Research Pte. Ltd. * * This program is free software: you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ import * as React from 'react'; import styled from 'styled-components'; import { colors } from '../../colors'; type SizeType = 'large' | 'medium' | 'small'; interface IProps { readonly size?: SizeType; } const SMALL = 15; const MEDIUM = 50; const LARGE = 80; const StyledSpinner = styled.div` border: 2px solid rgba(0, 0, 0, 0.1); border-left-color: ${colors.gray500}; animation: loader-spin 1s infinite linear; position: relative; display: inline-block; vertical-align: middle; border-radius: 50%; ${({ size }) => size === 'large' ? `&{ width: ${LARGE}px; height: ${LARGE}px; }` : size === 'small' ? `&{ width: ${SMALL}px; height: ${SMALL}px; }` : `&{ width: ${MEDIUM}px; height: ${MEDIUM}px; }`} @keyframes loader-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } `; const Spinner: React.FunctionComponent = ({ size, ...rest }) => ( ); export default Spinner;