import React from "react"; import { ReactComponent as DeleteIcon } from "assets/icons/ads/delete.svg"; import { ReactComponent as UserIcon } from "assets/icons/ads/user.svg"; import { ReactComponent as GeneralIcon } from "assets/icons/ads/general.svg"; import { ReactComponent as BillingIcon } from "assets/icons/ads/billing.svg"; import { ReactComponent as EditIcon } from "assets/icons/ads/edit.svg"; import { ReactComponent as ErrorIcon } from "assets/icons/ads/error.svg"; import { ReactComponent as SuccessIcon } from "assets/icons/ads/success.svg"; import { ReactComponent as SearchIcon } from "assets/icons/ads/search.svg"; import { ReactComponent as CloseIcon } from "assets/icons/ads/close.svg"; import styled from "styled-components"; import { Size } from "./Button"; import { sizeHandler } from "./Spinner"; import { CommonComponentProps } from "./common"; import { noop } from "lodash"; export type IconName = | "Select icon" | "delete" | "user" | "general" | "billing" | "edit" | "error" | "success" | "search" | "close" | undefined; const IconWrapper = styled.div` &:focus { outline: none; } display: flex; svg { width: ${props => props.size ? sizeHandler(props) : props.theme.spaces[9]}px; height: ${props => props.size ? sizeHandler(props) : props.theme.spaces[9]}px; path { fill: ${props => props.theme.colors.blackShades[5]}; } } visibility: ${props => (props.invisible ? "hidden" : "visible")}; &:hover { cursor: pointer; path { fill: ${props => props.theme.colors.blackShades[6]}; } } &:active { cursor: pointer; path { fill: ${props => props.theme.colors.blackShades[7]}; } } `; export type IconProps = { size?: Size; name?: IconName; invisible?: boolean; className?: string; onClick?: () => void; }; const Icon = (props: IconProps & CommonComponentProps) => { let returnIcon; switch (props.name) { case "delete": returnIcon = ; break; case "user": returnIcon = ; break; case "general": returnIcon = ; break; case "billing": returnIcon = ; break; case "edit": returnIcon = ; break; case "error": returnIcon = ; break; case "success": returnIcon = ; break; case "search": returnIcon = ; break; case "close": returnIcon = ; break; default: returnIcon = null; break; } return returnIcon ? ( {returnIcon} ) : null; }; export default Icon;