diff --git a/src/components/incubator/ImportFromFileComponent.tsx b/src/components/incubator/ImportFromFileComponent.tsx index 46ae34b08c..cc0ae71a66 100644 --- a/src/components/incubator/ImportFromFileComponent.tsx +++ b/src/components/incubator/ImportFromFileComponent.tsx @@ -1,7 +1,10 @@ +import { FileInput } from '@blueprintjs/core'; +import { IconNames } from '@blueprintjs/icons'; import * as React from 'react'; import { parseString } from 'xml2js'; import { IAssessment, IAssessmentOverview } from '../../components/assessment/assessmentShape'; import { makeEntireAssessment, retrieveLocalAssessment } from '../../utils/xmlParser'; +import { controlButton } from '../commons'; import { assessmentTemplate, overviewTemplate } from '../incubator/assessmentTemplates'; type Props = { @@ -9,7 +12,11 @@ type Props = { updateEditingOverview: (overview: IAssessmentOverview) => void; }; -export class ImportFromFileComponent extends React.Component { +type State = { + fileInputText: string; +}; + +export class ImportFromFileComponent extends React.Component { private fileReader: FileReader; public constructor(props: any) { super(props); @@ -17,7 +24,7 @@ export class ImportFromFileComponent extends React.Component
Please ensure that the xml uploaded is trustable.
- - - {this.state.isInvalidXml ? ( -
The xml uploaded is invalid.
- ) : ( -
You can edit this card
- )} +
+ +
+
{controlButton('Make New Mission', IconNames.NEW_OBJECT, this.makeMission)}
); } @@ -57,13 +65,13 @@ export class ImportFromFileComponent extends React.Component { + private makeMission = () => { localStorage.setItem('MissionEditingOverviewSA', JSON.stringify(overviewTemplate)); this.props.updateEditingOverview(overviewTemplate); diff --git a/src/components/incubator/editingWorkspaceSideContent/GlobalDeploymentTab.tsx b/src/components/incubator/editingWorkspaceSideContent/GlobalDeploymentTab.tsx index 643f9283a0..c8799187e3 100644 --- a/src/components/incubator/editingWorkspaceSideContent/GlobalDeploymentTab.tsx +++ b/src/components/incubator/editingWorkspaceSideContent/GlobalDeploymentTab.tsx @@ -37,10 +37,10 @@ export class GlobalDeploymentTab extends React.Component { private deploymentTab = () => { const deployment = this.props.assessment.globalDeployment!; const symbols = deployment.external.symbols.map((symbol, i) => ( -
- {this.symbolTextareaContent(i)} -
-
+ + {this.symbolTextareaContent(i)} + {controlButton('Delete', IconNames.MINUS, this.handleSymbolDelete(i))} + )); return ( @@ -61,7 +61,7 @@ export class GlobalDeploymentTab extends React.Component { Symbols:

- {symbols} + {symbols}
{controlButton('New Symbol', IconNames.PLUS, this.handleNewSymbol)} ); @@ -88,6 +88,13 @@ export class GlobalDeploymentTab extends React.Component { this.props.updateAssessment(assessment); }; + private handleSymbolDelete = (index: number) => () => { + const assessment = this.props.assessment; + const symbols = assessment.globalDeployment!.external.symbols; + symbols.splice(index, 1); + this.props.updateAssessment(assessment); + }; + private handleNewSymbol = () => { const assessment = this.props.assessment; const symbols = assessment.globalDeployment!.external.symbols; @@ -104,6 +111,9 @@ export class GlobalDeploymentTab extends React.Component { private handleExternalSelect = (i: IExternal, e: React.ChangeEvent) => { const assessment = this.props.assessment; assessment.globalDeployment!.external.name = i.name; + assessment.globalDeployment!.external.symbols = JSON.parse( + JSON.stringify(externalLibraries.get(i.name)!) + ); this.props.updateAssessment(assessment); }; }