import { Story, Meta } from '@storybook/react'
import { Theme } from '@lidofinance/theme'
import styled, { useTheme } from 'styled-components'
import * as components from './index'
type IconVariants = keyof typeof components
const iconKeys = Object.keys(components) as IconVariants[]
export default {
title: 'Images/Icons',
} as Meta
export const Base: Story<{ color: string; type: IconVariants }> = (props) => {
const theme: Theme = useTheme()
const { color, type } = props
const Component = components[type]
return
}
Base.argTypes = {
color: { control: 'color' },
type: {
options: iconKeys,
control: 'select',
},
}
Base.args = {
type: 'History',
}
const IconList = styled.div`
display: flex;
flex-wrap: wrap;
`
const IconListItem = styled.div`
text-align: center;
font-size: 13px;
line-height: 15px;
width: 120px;
margin: 2px;
padding: 10px;
border-radius: 4px;
color: ${({ theme }) => theme.colors.text};
`
const IconListTitle = styled.div`
opacity: 0.5;
`
export const List: Story = () => (
{iconKeys.map((componentName) => {
const Icon = components[componentName]
return (
{componentName}
)
})}
)
const SocialList = styled.div`
display: flex;
`
const SocialListItem = styled.div<{ $color: string }>`
background: ${({ $color }) => $color};
line-height: 0;
border-radius: 6px;
margin: 4px;
padding: 4px;
svg {
fill: #fff;
}
`
export const Social: Story = () => {
const { Facebook, Twitter, Linkedin, Email, Telegram } = components
return (
)
}
export const CryptoCurrencies: Story = () => {
const { Eth, Weth, Steth, Wsteth, Beth, Ldo, Ldopl, Solana, Stsol, Terra } =
components
const iconKeys = Object.keys({
Eth,
Weth,
Steth,
Wsteth,
Beth,
Ldo,
Ldopl,
Solana,
Stsol,
Terra,
}) as IconVariants[]
return (
{iconKeys.map((componentName) => {
const Icon = components[componentName]
return (
{componentName}
)
})}
)
}
export const CryptoWallets: Story = () => {
const {
MetaMask,
MetaMaskCircle,
MetaMaskCircleInversion,
WalletConnect,
WalletConnectCircle,
Coinbase,
Ledger,
LedgerCircle,
LedgerCircleInversion,
Trust,
TrustCircle,
Imtoken,
ImtokenCircle,
MathWalletCircle,
MathWalletCircleInversion,
Coin98Circle,
Ambire,
Blochainwallet,
BlochainwalletInversion,
Exodus,
OperaWallet,
Unstoppabledomains,
Zengo,
Gamestop,
XdefiWallet,
} = components
const iconKeys = Object.keys({
MetaMask,
MetaMaskCircle,
MetaMaskCircleInversion,
WalletConnect,
WalletConnectCircle,
Coinbase,
Ledger,
LedgerCircle,
LedgerCircleInversion,
Trust,
TrustCircle,
Imtoken,
ImtokenCircle,
MathWalletCircle,
MathWalletCircleInversion,
Coin98Circle,
Ambire,
Zengo,
Blochainwallet,
BlochainwalletInversion,
Exodus,
OperaWallet,
Unstoppabledomains,
Gamestop,
XdefiWallet,
}) as IconVariants[]
return (
{iconKeys.map((componentName) => {
const Icon = components[componentName]
return (
{componentName}
)
})}
)
}
export const CryptoExchanges: Story = () => {
const { Uniswap, OneInch } = components
const iconKeys = Object.keys({
Uniswap,
OneInch,
}) as IconVariants[]
return (
{iconKeys.map((componentName) => {
const Icon = components[componentName]
return (
{componentName}
)
})}
)
}