Skip to content

Commit fe21f3a

Browse files
authored
Fix sizing of form elements when there is no label (#8196)
when the label is empty for some elements, it still includes a col-sm-3 element which offsets the element and no way to suppress it. Other elements do not include the 3 column space for the label when there is no label provided. This causes our elements to look weird and inconsistent when used in places that we just want the element (ie. in a flexbox row.) This fixes the - DateElement - TimeElement - NumericElement - FileElement So that there is no space left for the label if the label is not provided.
1 parent f52b471 commit fe21f3a

File tree

1 file changed

+54
-20
lines changed

1 file changed

+54
-20
lines changed

jsx/Form.js

Lines changed: 54 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1626,13 +1626,21 @@ class DateElement extends Component {
16261626
maxFullDate = maxYear + '-' + currentMonth;
16271627
}
16281628

1629-
return (
1630-
<div className={elementClass}>
1631-
<label className="col-sm-3 control-label" htmlFor={this.props.label}>
1629+
let labelHTML;
1630+
let classSz = 'col-sm-12';
1631+
if (this.props.label) {
1632+
labelHTML = <label
1633+
className="col-sm-3 control-label"
1634+
htmlFor={this.props.label}>
16321635
{this.props.label}
16331636
{requiredHTML}
1634-
</label>
1635-
<div className="col-sm-9">
1637+
</label>;
1638+
classSz = 'col-sm-9';
1639+
};
1640+
return (
1641+
<div className={elementClass}>
1642+
{labelHTML}
1643+
<div className={classSz}>
16361644
<input
16371645
type={inputType}
16381646
className="form-control"
@@ -1717,19 +1725,28 @@ class TimeElement extends Component {
17171725
let disabled = this.props.disabled ? 'disabled' : null;
17181726
let required = this.props.required ? 'required' : null;
17191727
let requiredHTML = null;
1728+
let label;
1729+
let classSz;
17201730

17211731
// Add required asterix
17221732
if (required) {
17231733
requiredHTML = <span className="text-danger">*</span>;
17241734
}
1735+
if (this.props.label) {
1736+
label = <label className="col-sm-3 control-label"
1737+
htmlFor={this.props.label}>
1738+
{this.props.label}
1739+
{requiredHTML}
1740+
</label>;
1741+
classSz = 'col-sm-9';
1742+
} else {
1743+
classSz = 'col-sm-12';
1744+
}
17251745

17261746
return (
17271747
<div className="row form-group">
1728-
<label className="col-sm-3 control-label" htmlFor={this.props.label}>
1729-
{this.props.label}
1730-
{requiredHTML}
1731-
</label>
1732-
<div className="col-sm-9">
1748+
{label}
1749+
<div className={classSz}>
17331750
<input
17341751
type="time"
17351752
className="form-control"
@@ -1811,13 +1828,22 @@ class NumericElement extends Component {
18111828
elementClass = 'row form-group has-error';
18121829
}
18131830

1814-
return (
1815-
<div className={elementClass}>
1816-
<label className="col-sm-3 control-label" htmlFor={this.props.id}>
1831+
let labelHTML;
1832+
let classSz = 'col-sm-12';
1833+
if (this.props.label) {
1834+
labelHTML = <label
1835+
className="col-sm-3 control-label"
1836+
htmlFor={this.props.label}>
18171837
{this.props.label}
18181838
{requiredHTML}
1819-
</label>
1820-
<div className="col-sm-9">
1839+
</label>;
1840+
classSz = 'col-sm-9';
1841+
};
1842+
1843+
return (
1844+
<div className={elementClass}>
1845+
{labelHTML}
1846+
<div className={classSz}>
18211847
<input
18221848
type="number"
18231849
className="form-control"
@@ -1965,13 +1991,21 @@ class FileElement extends Component {
19651991
);
19661992
}
19671993

1968-
return (
1969-
<div className={elementClass}>
1970-
<label className="col-sm-3 control-label">
1994+
let labelHTML;
1995+
let classSz;
1996+
if (this.props.label) {
1997+
labelHTML = <label className="col-sm-3 control-label">
19711998
{this.props.label}
19721999
{requiredHTML}
1973-
</label>
1974-
<div className="col-sm-9">
2000+
</label>;
2001+
classSz = 'col-sm-9';
2002+
} else {
2003+
classSz = 'col-sm-12';
2004+
}
2005+
return (
2006+
<div className={elementClass}>
2007+
{labelHTML}
2008+
<div className={classSz}>
19752009
<div className="input-group">
19762010
<div tabIndex="-1"
19772011
className="form-control file-caption kv-fileinput-caption">

0 commit comments

Comments
 (0)