Reputation: 1776
I have IF and Else condition in method, and in both case I need to call: "this.replaceSelectedText(link);". Qustion is: "How I can solve this by calling only one time this.replaceSelectedText(link); ?
Here is part of method, which should be refactored. This code is called on two place.
`
// save data for text editor link
else {
let link = "";
let pcTags = this.hyperlinkData.tags ?
tags='${this.hyperlinkData.tags}'` : "";
if(this.isHyperlink) {
let target = this.selectedTargets.currentWindow;
if(this.hyperlinkData.target && this.hyperlinkData.target !==
this. targets[0]) {
target = this.selectedTargets.newWindow;
}
link = `<a href='${this.hyperlinkData.url ? this.hyperlinkData.url: ""}' target='${target}' title='${this.hyperlinkData.tooltip ? this.hyperlinkData.tooltip : ""}' ${pcTags}>${this.hyperlinkData.linkText}</a>`;
this.replaceSelectedText(link);
}
else {
link = `<a href='mailto:${this.mailToLinkData.address ? this.mailToLinkData.address : ""}?Subject=${this.mailToLinkData.subject ? this.mailToLinkData.subject : ""}' ${pcTags}>${this.mailToLinkData.linkText}</a>`;
this.replaceSelectedText(link);
}
}
`
Here is Screenshot of under method and part of code about I am talking.
Upvotes: 1
Views: 63
Reputation: 3170
Can't you do this,
// save data for text editor link
else {
let link = "";
let pcTags = this.hyperlinkData.tags ?
tags='${this.hyperlinkData.tags}'` : "";
if(this.isHyperlink) {
let target = this.selectedTargets.currentWindow;
if(this.hyperlinkData.target && this.hyperlinkData.target !==
this. targets[0]) {
target = this.selectedTargets.newWindow;
}
link = `<a href='${this.hyperlinkData.url ? this.hyperlinkData.url: ""}' target='${target}' title='${this.hyperlinkData.tooltip ? this.hyperlinkData.tooltip : ""}' ${pcTags}>${this.hyperlinkData.linkText}</a>`;
}
else {
link = `<a href='mailto:${this.mailToLinkData.address ? this.mailToLinkData.address : ""}?Subject=${this.mailToLinkData.subject ? this.mailToLinkData.subject : ""}' ${pcTags}>${this.mailToLinkData.linkText}</a>`;
}
this.replaceSelectedText(link);
}
Upvotes: 1