diff --git a/superset-frontend/src/components/Form/LabeledErrorBoundInput.tsx b/superset-frontend/src/components/Form/LabeledErrorBoundInput.tsx index be9e0af16f2c1..ebbb1c023622e 100644 --- a/superset-frontend/src/components/Form/LabeledErrorBoundInput.tsx +++ b/superset-frontend/src/components/Form/LabeledErrorBoundInput.tsx @@ -17,7 +17,8 @@ * under the License. */ import React from 'react'; -import { Input } from 'antd'; +import { Input, Tooltip } from 'antd'; +import { EyeInvisibleOutlined, EyeOutlined } from '@ant-design/icons'; import { styled, css, SupersetTheme } from '@superset-ui/core'; import InfoTooltip from 'src/components/InfoTooltip'; import errorIcon from 'src/assets/images/icons/error.svg'; @@ -43,6 +44,10 @@ const StyledInput = styled(Input)` margin: ${({ theme }) => `${theme.gridUnit}px 0 ${theme.gridUnit * 2}px`}; `; +const StyledInputPassword = styled(Input.Password)` + margin: ${({ theme }) => `${theme.gridUnit}px 0 ${theme.gridUnit * 2}px`}; +`; + const alertIconStyles = (theme: SupersetTheme, hasError: boolean) => css` .ant-form-item-children-icon { display: none; @@ -114,7 +119,26 @@ const LabeledErrorBoundInput = ({ help={errorMessage || helpText} hasFeedback={!!errorMessage} > - + {props.name === 'password' ? ( + + visible ? ( + + + + ) : ( + + + + ) + } + role="textbox" + /> + ) : ( + + )} );