From f09f97c9a20d165403415cfaec44c89277c475cf Mon Sep 17 00:00:00 2001 From: Ger Hean Date: Sun, 24 Mar 2019 12:15:06 +0800 Subject: [PATCH] fix import for firefox --- .../TextareaContent.tsx | 20 +++++++++---------- src/utils/xmlParser.ts | 19 +++++++++++++----- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/components/incubator/editingWorkspaceSideContent/TextareaContent.tsx b/src/components/incubator/editingWorkspaceSideContent/TextareaContent.tsx index 27a0f9a4ea..613b477cb8 100644 --- a/src/components/incubator/editingWorkspaceSideContent/TextareaContent.tsx +++ b/src/components/incubator/editingWorkspaceSideContent/TextareaContent.tsx @@ -35,20 +35,20 @@ export class TextareaContent extends React.Component { } public render() { - const filler = 'Please enter value (if applicable)'; let display; if (this.state.isEditing) { - display =
{this.makeEditingTextarea()}
; + display = this.makeEditingTextarea(); } else { - let value = getValueFromPath(this.props.path, this.props.assessment) || filler; - value = value.match('^(\n| )*$') ? filler : value; - display = ( -
- {this.state.useRawValue ? value : } -
- ); + if (this.state.useRawValue) { + display = getValueFromPath(this.props.path, this.props.assessment); + } else { + const filler = 'Please enter value (if applicable)'; + let value = getValueFromPath(this.props.path, this.props.assessment) || ''; + value = value.match('^(\n| )*$') ? filler : value; + display = ; + } } - return display; + return
{display}
; } private saveEditAssessment = (e: any) => { diff --git a/src/utils/xmlParser.ts b/src/utils/xmlParser.ts index cbe827acee..54765a77ce 100644 --- a/src/utils/xmlParser.ts +++ b/src/utils/xmlParser.ts @@ -237,14 +237,23 @@ export const exportXml = () => { }; let xmlStr = builder.buildObject(xml); xmlStr = xmlStr.replace(/( )+/g, ''); - const element = document.createElement('a'); - const file = new Blob([xmlStr], { endings: 'native', type: 'text/xml;charset=UTF-8' }); - element.href = URL.createObjectURL(file); - element.download = title + '.xml'; - element.click(); + download(title + '.xml', xmlStr); } }; +const download = (filename: string, text: string) => { + const element = document.createElement('a'); + element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); + element.setAttribute('download', filename); + + element.style.display = 'none'; + document.body.appendChild(element); + + element.click(); + + document.body.removeChild(element); +}; + const exportLibrary = (library: Library) => { const deployment = { $: {