blob: 1da7901f78d0d323c71c947eaa551ef171223d07 [file] [log] [blame]
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.
import React from "react";
import ReactDOM from "react-dom";
import beautifyHelper from "../../../../assets/js/plugins/beautify";
export class Beautify extends React.Component {
noOfLines = () => {
return this.props.code.split(/\r\n|\r|\n/).length;
};
canBeautify = () => {
return this.noOfLines() === 1;
};
addTooltip = () => {
if (this.canBeautify) {
$('.beautify-tooltip').tooltip({ placement: 'right' });
}
};
componentDidMount() {
this.addTooltip();
}
beautify = (event) => {
event.preventDefault();
var beautifiedCode = beautifyHelper(this.props.code);
this.props.beautifiedCode(beautifiedCode);
$('.beautify-tooltip').tooltip('hide');
};
render() {
if (!this.canBeautify()) {
return null;
}
return (
<button
onClick={this.beautify}
className="beautify beautify_map btn btn-primary btn-small beautify-tooltip"
type="button"
data-toggle="tooltip"
title="Switch to editable code format."
>
Format Code
</button>
);
}
}