Commit 3f1c4c3e by Torkel Ödegaard Committed by GitHub

Merge pull request #15531 from grafana/hugoh/react-switch-works-outside-switch

Surrounded Switch with div to restrict size
parents baddf42c d2893c2d
......@@ -17,7 +17,7 @@ export interface State {
export class Switch extends PureComponent<Props, State> {
state = {
id: _.uniqueId(),
id: _.uniqueId('check-'),
};
internalOnChange = (event: React.FormEvent<HTMLInputElement>) => {
......@@ -29,18 +29,20 @@ export class Switch extends PureComponent<Props, State> {
render() {
const { labelClass = '', switchClass = '', label, checked, transparent, className } = this.props;
const labelId = `check-${this.state.id}`;
const labelId = this.state.id;
const labelClassName = `gf-form-label ${labelClass} ${transparent ? 'gf-form-label--transparent' : ''} pointer`;
const switchClassName = `gf-form-switch ${switchClass} ${transparent ? 'gf-form-switch--transparent' : ''}`;
return (
<label htmlFor={labelId} className={`gf-form gf-form-switch-container ${className}`}>
{label && <div className={labelClassName}>{label}</div>}
<div className={switchClassName}>
<input id={labelId} type="checkbox" checked={checked} onChange={this.internalOnChange} />
<span className="gf-form-switch__slider" />
</div>
</label>
<div className="gf-form-switch-container-react">
<label htmlFor={labelId} className={`gf-form gf-form-switch-container ${className || ''}`}>
{label && <div className={labelClassName}>{label}</div>}
<div className={switchClassName}>
<input id={labelId} type="checkbox" checked={checked} onChange={this.internalOnChange} />
<span className="gf-form-switch__slider" />
</div>
</label>
</div>
);
}
}
......@@ -13,6 +13,10 @@ gf-form-switch[disabled] {
}
}
.gf-form-switch-container-react {
display: flex;
}
.gf-form-switch-container {
display: flex;
cursor: pointer;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment