From 8a0966d1f7bb785aa2289faa75dcbdac6dd11570 Mon Sep 17 00:00:00 2001 From: devrk96 Date: Wed, 2 Sep 2020 14:28:49 +0530 Subject: [PATCH 1/2] button height issue fixed in all sizes (#483) --- app/client/src/components/ads/Button.tsx | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/app/client/src/components/ads/Button.tsx b/app/client/src/components/ads/Button.tsx index 983803d5b5..2de8b9402b 100644 --- a/app/client/src/components/ads/Button.tsx +++ b/app/client/src/components/ads/Button.tsx @@ -45,6 +45,7 @@ type BtnColorType = { type BtnFontType = { buttonFont: any; padding: string; + height: number; }; type ButtonProps = CommonComponentProps & { @@ -209,36 +210,40 @@ const btnColorStyles = ( const btnFontStyles = (props: ThemeProp & ButtonProps): BtnFontType => { let buttonFont, - padding = ""; + padding = "", + height = 0; switch (props.size) { case Size.small: buttonFont = smallButton; + height = 20; padding = !props.text && props.icon - ? `${props.theme.spaces[1]}px ${props.theme.spaces[1]}px` - : `${props.theme.spaces[1]}px ${props.theme.spaces[6]}px ${props.theme - .spaces[1] - 1}px`; + ? `0px ${props.theme.spaces[1]}px` + : `0px ${props.theme.spaces[6]}px`; break; case Size.medium: buttonFont = mediumButton; + height = 30; padding = !props.text && props.icon - ? `${props.theme.spaces[2]}px ${props.theme.spaces[2]}px` - : `${props.theme.spaces[3] - 1}px ${props.theme.spaces[7]}px`; + ? `0px ${props.theme.spaces[2]}px` + : `0px ${props.theme.spaces[7]}px`; break; case Size.large: buttonFont = largeButton; + height = 38; padding = !props.text && props.icon - ? `${props.theme.spaces[3]}px` - : `${props.theme.spaces[5] - 1}px ${props.theme.spaces[12] - 4}px`; + ? `0px ${props.theme.spaces[3]}px` + : `0px ${props.theme.spaces[12] - 4}px`; break; } - return { buttonFont, padding }; + return { buttonFont, padding, height }; }; const StyledButton = styled("button")` width: ${props => (props.fill ? "100%" : "auto")}; + height: ${props => btnFontStyles(props).height}px; border: none; outline: none; text-transform: uppercase; From cb2e85785f5f84d7f657dbd4e907b63234fa7953 Mon Sep 17 00:00:00 2001 From: devrk96 Date: Wed, 2 Sep 2020 14:32:29 +0530 Subject: [PATCH 2/2] Menu item disabled UI fixed (#484) --- app/client/src/components/ads/MenuItem.tsx | 32 ++++++++++++------- .../src/components/stories/Menu.stories.tsx | 1 + 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/app/client/src/components/ads/MenuItem.tsx b/app/client/src/components/ads/MenuItem.tsx index 799ebc6dee..7107f2f04b 100644 --- a/app/client/src/components/ads/MenuItem.tsx +++ b/app/client/src/components/ads/MenuItem.tsx @@ -11,25 +11,33 @@ type MenuItemProps = CommonComponentProps & { onSelect?: () => void; }; -const ItemRow = styled.div` +const ItemRow = styled.div<{ disabled?: boolean }>` display: flex; align-items: center; justify-content: space-between; padding: ${props => props.theme.spaces[4]}px ${props => props.theme.spaces[6]}px; - &:hover { - cursor: pointer; - background-color: ${props => props.theme.colors.blackShades[4]}; - .${Classes.TEXT} { - color: ${props => props.theme.colors.blackShades[9]}; - } - .${Classes.ICON} { - path { - fill: ${props => props.theme.colors.blackShades[9]}; + ${props => + !props.disabled + ? ` + &:hover { + cursor: pointer; + background-color: ${props.theme.colors.blackShades[4]}; + .${Classes.TEXT} { + color: ${props.theme.colors.blackShades[9]}; } + .${Classes.ICON} { + path { + fill: ${props.theme.colors.blackShades[9]}; + } + } + }` + : ` + &:hover { + cursor: not-allowed; } - } + `} `; const IconContainer = styled.div` @@ -43,7 +51,7 @@ const IconContainer = styled.div` function MenuItem(props: MenuItemProps) { return ( - + {props.icon ? : null} {props.text ? ( diff --git a/app/client/src/components/stories/Menu.stories.tsx b/app/client/src/components/stories/Menu.stories.tsx index ef2cf568ed..59c87420cd 100644 --- a/app/client/src/components/stories/Menu.stories.tsx +++ b/app/client/src/components/stories/Menu.stories.tsx @@ -107,6 +107,7 @@ export const MenuStory = () => { icon={select("First Icon", IconCollection, undefined)} onSelect={action("clicked-first-option")} label={W} + disabled={boolean("First option disabled", false)} /> {boolean("First menu item divider", false) ? : null}