aboutsummaryrefslogtreecommitdiffstats
path: root/packages/instant/src/components/ui/icon.tsx
diff options
context:
space:
mode:
authorfragosti <francesco.agosti93@gmail.com>2018-11-08 12:30:45 +0800
committerfragosti <francesco.agosti93@gmail.com>2018-11-08 12:30:45 +0800
commitc0d8ceca82a91a3a6c222e71ecb58f2cd95da62e (patch)
treeb23979fe0389a2644ea9ada3a6b195c38a4e6147 /packages/instant/src/components/ui/icon.tsx
parent95b2898b9c0898c7e2d98ee603bff0604bf2a829 (diff)
downloaddexon-sol-tools-c0d8ceca82a91a3a6c222e71ecb58f2cd95da62e.tar
dexon-sol-tools-c0d8ceca82a91a3a6c222e71ecb58f2cd95da62e.tar.gz
dexon-sol-tools-c0d8ceca82a91a3a6c222e71ecb58f2cd95da62e.tar.bz2
dexon-sol-tools-c0d8ceca82a91a3a6c222e71ecb58f2cd95da62e.tar.lz
dexon-sol-tools-c0d8ceca82a91a3a6c222e71ecb58f2cd95da62e.tar.xz
dexon-sol-tools-c0d8ceca82a91a3a6c222e71ecb58f2cd95da62e.tar.zst
dexon-sol-tools-c0d8ceca82a91a3a6c222e71ecb58f2cd95da62e.zip
feat: implement basic dropdown component
Diffstat (limited to 'packages/instant/src/components/ui/icon.tsx')
-rw-r--r--packages/instant/src/components/ui/icon.tsx9
1 files changed, 5 insertions, 4 deletions
diff --git a/packages/instant/src/components/ui/icon.tsx b/packages/instant/src/components/ui/icon.tsx
index 94ea26900..707aee24f 100644
--- a/packages/instant/src/components/ui/icon.tsx
+++ b/packages/instant/src/components/ui/icon.tsx
@@ -9,7 +9,6 @@ interface IconInfo {
path: string;
fillRule?: svgRule;
clipRule?: svgRule;
- stroke?: string;
strokeOpacity?: number;
strokeWidth?: number;
strokeLinecap?: 'butt' | 'round' | 'square' | 'inherit';
@@ -47,7 +46,6 @@ const ICONS: IconInfoMapping = {
chevron: {
viewBox: '0 0 12 7',
path: 'M11 1L6 6L1 1',
- stroke: 'white',
strokeOpacity: 0.5,
strokeWidth: 1.5,
strokeLinecap: 'round',
@@ -67,6 +65,7 @@ export interface IconProps {
width: number;
height?: number;
color?: ColorOption;
+ stroke?: ColorOption;
icon: keyof IconInfoMapping;
onClick?: (event: React.MouseEvent<HTMLElement>) => void;
padding?: string;
@@ -75,6 +74,7 @@ export interface IconProps {
const PlainIcon: React.StatelessComponent<IconProps> = props => {
const iconInfo = ICONS[props.icon];
const colorValue = _.isUndefined(props.color) ? undefined : props.theme[props.color];
+ const strokeValue = _.isUndefined(props.stroke) ? undefined : props.theme[props.stroke];
return (
<div onClick={props.onClick} className={props.className}>
<svg
@@ -89,7 +89,7 @@ const PlainIcon: React.StatelessComponent<IconProps> = props => {
fill={colorValue}
fillRule={iconInfo.fillRule || 'nonzero'}
clipRule={iconInfo.clipRule || 'nonzero'}
- stroke={iconInfo.stroke}
+ stroke={strokeValue}
strokeOpacity={iconInfo.strokeOpacity}
strokeWidth={iconInfo.strokeWidth}
strokeLinecap={iconInfo.strokeLinecap}
@@ -101,7 +101,8 @@ const PlainIcon: React.StatelessComponent<IconProps> = props => {
};
export const Icon = withTheme(styled(PlainIcon)`
- cursor: ${props => (!_.isUndefined(props.onClick) ? 'pointer' : 'default')};
+ display: inline-block;
+ ${props => (!_.isUndefined(props.onClick) ? 'cursor: pointer' : '')};
transition: opacity 0.5s ease;
padding: ${props => props.padding};
opacity: ${props => (!_.isUndefined(props.onClick) ? 0.7 : 1)};