2023-03-06 23:30:53 +01:00
|
|
|
import * as React from "react";
|
|
|
|
import * as mobxReact from "mobx-react";
|
|
|
|
import * as mobx from "mobx";
|
|
|
|
import {sprintf} from "sprintf-js";
|
|
|
|
import {boundMethod} from "autobind-decorator";
|
|
|
|
import cn from "classnames";
|
|
|
|
import {If, For, When, Otherwise, Choose} from "tsx-control-statements/components";
|
|
|
|
|
2023-03-07 00:50:05 +01:00
|
|
|
class CmdStrCode extends React.Component<{cmdstr : string, onUse : () => void, onCopy : () => void, isCopied : boolean, fontSize : "normal" | "large", limitHeight : boolean}, {}> {
|
2023-03-06 23:30:53 +01:00
|
|
|
@boundMethod
|
2023-03-07 00:50:05 +01:00
|
|
|
handleUse(e : any) {
|
|
|
|
e.stopPropagation();
|
2023-03-06 23:30:53 +01:00
|
|
|
if (this.props.onUse != null) {
|
|
|
|
this.props.onUse()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@boundMethod
|
2023-03-07 00:50:05 +01:00
|
|
|
handleCopy(e : any) {
|
|
|
|
e.stopPropagation();
|
2023-03-06 23:30:53 +01:00
|
|
|
if (this.props.onCopy != null) {
|
|
|
|
this.props.onCopy();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
render() {
|
2023-03-07 00:50:05 +01:00
|
|
|
let {isCopied, cmdstr, fontSize, limitHeight} = this.props;
|
2023-03-06 23:30:53 +01:00
|
|
|
return (
|
2023-03-07 00:50:05 +01:00
|
|
|
<div className={cn("cmdstr-code", {"is-large": (fontSize == "large")}, {"limit-height": limitHeight})}>
|
2023-03-06 23:30:53 +01:00
|
|
|
<If condition={isCopied}>
|
|
|
|
<div key="copied" className="copied-indicator">
|
|
|
|
<div>copied</div>
|
|
|
|
</div>
|
|
|
|
</If>
|
|
|
|
<div key="use" className="use-button" title="Use Command" onClick={this.handleUse}><i className="fa-sharp fa-solid fa-check"/></div>
|
|
|
|
<div key="code" className="code-div">
|
|
|
|
<code>{cmdstr}</code>
|
|
|
|
</div>
|
|
|
|
<div key="copy" className="copy-control">
|
|
|
|
<div className="inner-copy" onClick={this.handleCopy}>
|
|
|
|
<i title="copy" className="fa-sharp fa-regular fa-copy"/>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export {CmdStrCode};
|