Allow SLEF import of multiple builds via URL

This commit is contained in:
Felix Linker
2020-10-24 13:20:02 +02:00
parent bded793374
commit 804466f88a
2 changed files with 25 additions and 11 deletions

View File

@@ -98,17 +98,30 @@ export default class Coriolis extends React.Component {
const json = JSON.parse(data);
console.info('Ship import data: ');
console.info(json);
let ship;
if (json && json[0] && json[0].data) {
ship = JournalUtils.shipFromLoadoutJSON(json[0].data);
} else if (json && json.modules) {
ship = CompanionApiUtils.shipFromJson(json);
} else if (json && json.Modules) {
ship = JournalUtils.shipFromLoadoutJSON(json);
let ship, importString;
if (json) {
if (json.length && json[0].data) { // SLEF
if (json.length > 1) { // Multiple builds, open modal
importString = data;
} else { // Single build, import directly
ship = JournalUtils.shipFromLoadoutJSON(json[0].data);
}
} else { // not SLEF
if (json.modules) {
ship = CompanionApiUtils.shipFromJson(json);
} else if (json.Modules) {
ship = JournalUtils.shipFromLoadoutJSON(json);
}
}
}
if (ship) {
r.params.ship = ship.id;
r.params.code = ship.toString();
this._setPage(OutfittingPage, r);
} else if (importString) {
this._setPage(ShipyardPage, r);
this._showModal(<ModalImport importString={data}/>);
}
r.params.ship = ship.id;
r.params.code = ship.toString();
this._setPage(OutfittingPage, r);
} catch (err) {
this._onError('Failed to import ship', r.path, 0, 0, err);
}

View File

@@ -89,6 +89,7 @@ export default class ModalImport extends TranslatedComponent {
static propTypes = {
importString: PropTypes.string, // Optional: Default data for import modal
builds: PropTypes.object, // Optional: Import object
};
@@ -107,7 +108,7 @@ export default class ModalImport extends TranslatedComponent {
shipDiscount: null,
moduleDiscount: null,
errorMsg: null,
importString: null,
importString: props.importString || null,
importValid: false,
insurance: null
};