@@ -46,6 +46,9 @@ export default class Field extends React.PureComponent {
4646 // and a `feedback` react component field to provide feedback
4747 // to the user.
4848 onValidate : PropTypes . func ,
49+ // If specified, contents will appear as a tooltip on the element and
50+ // validation feedback tooltips will be suppressed.
51+ tooltipContent : PropTypes . node ,
4952 // All other props pass through to the <input>.
5053 } ;
5154
@@ -134,7 +137,7 @@ export default class Field extends React.PureComponent {
134137 } , VALIDATION_THROTTLE_MS ) ;
135138
136139 render ( ) {
137- const { element, prefix, onValidate, children, ...inputProps } = this . props ;
140+ const { element, prefix, onValidate, children, tooltipContent , ...inputProps } = this . props ;
138141
139142 const inputElement = element || "input" ;
140143
@@ -165,20 +168,20 @@ export default class Field extends React.PureComponent {
165168
166169 // Handle displaying feedback on validity
167170 const Tooltip = sdk . getComponent ( "elements.Tooltip" ) ;
168- let tooltip ;
169- if ( this . state . feedback ) {
170- tooltip = < Tooltip
171+ let fieldTooltip ;
172+ if ( tooltipContent || this . state . feedback ) {
173+ fieldTooltip = < Tooltip
171174 tooltipClassName = "mx_Field_tooltip"
172175 visible = { this . state . feedbackVisible }
173- label = { this . state . feedback }
176+ label = { tooltipContent || this . state . feedback }
174177 /> ;
175178 }
176179
177180 return < div className = { fieldClasses } >
178181 { prefixContainer }
179182 { fieldInput }
180183 < label htmlFor = { this . props . id } > { this . props . label } </ label >
181- { tooltip }
184+ { fieldTooltip }
182185 </ div > ;
183186 }
184187}
0 commit comments