in helper/src/components/common.js [25:74]
export function CodeBlock({deploycmd, testId, lang, filename, error, hideSave}) {
const [ copied, setCopied ] = useState(false)
function copyIt() {
//console.log("AI:- Button.Copy." + testId)
appInsights.trackEvent({name: "Button.Copy."+ testId});
navigator.clipboard.writeText(deploycmd)
setCopied(true)
setTimeout(() => setCopied(false), 1000)
}
function downloadIt(){
//console.log("AI:- Button.Save." + testId)
appInsights.trackEvent({name: "Button.Save."+ testId});
function dataUrl(data) {return "data:x-application/text," + escape(deploycmd);}
window.open(dataUrl());
}
const onCopyDeployHandler = () => {
appInsights.trackEvent({name: "Copy."+ testId});
};
return [
<div key="code-header" className="codeHeader" style={{...(error && {borderColor: 'darkred'})}}>
<span className="language">{lang}</span>
{ error && <div className="error">{error}</div> }
{ !hideSave &&
<CommandBarButton
disabled={error}
className="action position-relative"
iconProps={{ iconName: copied? 'Completed' : 'Save'}}
//styles={{icon: {color: '#171717'}}}
text={!error ? "Save" : ""}
primaryActionButtonProps={{download: filename}}
onClick={downloadIt}/>
}
<CommandBarButton
disabled={copied || error}
className="action position-relative"
iconProps={{ iconName: copied? 'Completed' : 'Copy'}}
styles={{icon: {color: '#171717'}}}
text={!error ? "Copy" : ""}
onClick={copyIt}/>
</div>,
<pre key="code-pre" className="has-inner-focus" style={{...(error && {borderColor: 'darkred'})}}>
<code onCopyCapture={onCopyDeployHandler} className={"lang-" + lang}><span data-lang={lang} data-testid={testId || 'none'} style={{...(error && {color: 'grey'})}}>{deploycmd}</span></code>
</pre>
]
}