Fixed the issue for text webpart which has no webpartdata

This commit is contained in:
Harsha Vardhini 2020-06-13 09:15:09 +05:30
parent 4d9612ea2d
commit 2bf38731c8
4 changed files with 17144 additions and 9 deletions

View File

@ -30,7 +30,7 @@ React-webpartdetails| Harsha Vardhini ([@harshagracy](https://twitter.com/harsha
Version|Date|Comments
-------|----|--------
1.0|June 12, 2020|Initial release
1.0|June 13, 2020|Initial release
## Minimal Path to Awesome

File diff suppressed because it is too large Load Diff

View File

@ -53,15 +53,13 @@ export default class WebpartDetailsWebPart extends BaseClientSideWebPart <IWebpa
pages: [
{
header: {
description: strings.PropertyPaneDescription
description: ''
},
groups: [
{
groupName: strings.BasicGroupName,
groupName: "No Configuration Required",
groupFields: [
PropertyPaneTextField('description', {
label: strings.DescriptionFieldLabel
})
]
}
]

View File

@ -30,10 +30,10 @@ export default class WebpartDetails extends React.Component<IWebpartDetailsProps
//loop through each column and control in the selected section
column.controls.forEach(control => {
//exclude the current webpart
if (this.props.context.instanceId !== control.data.webPartData.instanceId) {
if (this.props.context.instanceId !== control.data.id) {
let webpart = {
key: control.data.webPartData.instanceId,
text: control.data.webPartData.title
key: control.data.id,
text: (control.data.webPartData && control.data.webPartData.title) || this.htmlToText(control.data.innerHTML)
};
webpartdata.push(webpart);
}
@ -44,6 +44,14 @@ export default class WebpartDetails extends React.Component<IWebpartDetailsProps
webpartData: webpartdata
});
}
public htmlToText(html: string) {
//create a temporary div and get the text of the div and remove the div from DOM
let tempDiv = document.createElement('div');
tempDiv.innerHTML = html;
let displayTitle = tempDiv.textContent.substring(0, tempDiv.textContent.length > 20 ? 20 : tempDiv.textContent.length) + '...';
tempDiv.remove();
return displayTitle;
}
public onDropdownChange = (event: React.FormEvent<HTMLDivElement>, item: IDropdownOption): void => {
if (item) {
let selectedNode = document.querySelectorAll('[data-sp-feature-instance-id="' + item.key + '"]');