Skip to content

Commit 9c3f758

Browse files
authored
Merge pull request #249 from Exabyte-io/fix/remove-made-material
SOF-7444 fix made material usage
2 parents 24911a3 + 6a1faf5 commit 9c3f758

39 files changed

+611
-492
lines changed

dist/MDMaterial.d.ts

Lines changed: 349 additions & 0 deletions
Large diffs are not rendered by default.

dist/MDMaterial.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import { Made } from "@mat3ra/made";
2+
export class MDMaterial extends Made.Material {
3+
constructor(config) {
4+
super({ ...Made.defaultMaterialConfig, ...config });
5+
}
6+
static fromMadeMaterial(madeMaterial, metadata = {}) {
7+
return new MDMaterial({ ...madeMaterial.toJSON(), ...metadata });
8+
}
9+
get id() {
10+
return this.prop("_id", "");
11+
}
12+
set id(id) {
13+
this.setProp("_id", id);
14+
}
15+
get isUpdated() {
16+
return this.prop("isUpdated", false);
17+
}
18+
set isUpdated(bool) {
19+
this.setProp("isUpdated", bool);
20+
}
21+
get metadata() {
22+
return this.prop("metadata", {});
23+
}
24+
set metadata(object) {
25+
this.setProp("metadata", object);
26+
}
27+
toJSON() {
28+
return {
29+
...super.toJSON(),
30+
_id: this.id,
31+
metadata: this.metadata,
32+
};
33+
}
34+
cleanOnCopy() {
35+
["_id"].forEach((p) => this.unsetProp(p));
36+
}
37+
get boundaryConditions() {
38+
return this.metadata.boundaryConditions || {};
39+
}
40+
}

dist/MaterialsDesigner.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import HeaderMenuToolbar from "./components/header_menu/HeaderMenuToolbar";
2323
import ItemsList from "./components/items_list/ItemsList";
2424
import BasisEditor from "./components/source_editor/Basis";
2525
import LatticeEditor from "./components/source_editor/Lattice";
26-
import { Material } from "./material";
26+
import { MDMaterial } from "./MDMaterial";
2727
import { theme } from "./settings";
2828
const data = MaterialStandata.runtimeData;
2929
const materialConfigs = Object.values(data.filesMapByName);
@@ -140,10 +140,7 @@ class MaterialsDesigner extends mix(React.Component).with(FullscreenComponentMix
140140
}, className: "materials-designer-source-editor", children: [_jsx(Grid, { item: true, xs: 12, mt: 0.25, children: _jsx(LatticeEditor, { material: this.props.material, onUpdate: this.props.onUpdate }) }), _jsx(Grid, { item: true, xs: 12, mt: 0.25, children: _jsx(BasisEditor, { material: this.props.material, onUpdate: this.props.onUpdate }) })] })), isVisibleThreeDEditorFullscreen && (
141141
// eslint-disable-next-line react/jsx-props-no-spreading
142142
_jsx(Grid, { item: true, ...gridConfig[3], mt: 0.25, children: _jsx(ThreeDEditorFullscreen, { editable: true, material: this.props.material, isConventionalCellShown: this.props.isConventionalCellShown, boundaryConditions: this.props.material.boundaryConditions, onUpdate: (material) => {
143-
// convert made material to MD material and re-set metadata
144-
const newMaterial = Material.createFromMadeMaterial(material);
145-
newMaterial.metadata =
146-
this.props.material.metadata || {};
143+
const newMaterial = MDMaterial.fromMadeMaterial(material, this.props.material.metadata);
147144
this.props.onUpdate(newMaterial);
148145
} }) })), this.state.isVisibleJupyterLiteSessionDrawer && (_jsx(JupyterLiteSessionDrawer, { materials: this.props.materials, show: this.state.isVisibleJupyterLiteSessionDrawer, onMaterialsUpdate: (...args) => {
149146
this.props.onAdd(...args);

dist/MaterialsDesignerContainer.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ import logger from "redux-logger";
1010
import { ActionCreators } from "redux-undo";
1111
import _ from "underscore";
1212
import { addMaterials, cloneOneMaterial, exportMaterials, generateSupercellForOneMaterial, generateSurfaceForOneMaterial, MATERIALS_SAVE, materialsToggleIsNonPeriodicForOne, removeMaterials, resetState, saveMaterials, setBoundaryConditionsForOneMaterial, updateMaterialsIndex, updateNameForOneMaterial, updateOneMaterial, } from "./actions";
13-
import { Material } from "./material";
1413
import MaterialsDesignerComponent from "./MaterialsDesigner";
14+
import { MDMaterial } from "./MDMaterial";
1515
import { createMaterialsDesignerReducer } from "./reducers";
1616
import ReduxProvider from "./utils/react/provider";
17-
const initialMaterials = Array(1).fill(new Material());
17+
const initialMaterials = Array(1).fill(new MDMaterial());
1818
const initialState = ({ materials = initialMaterials } = {}) => {
1919
return {
2020
index: 0,

dist/components/3d_editor/advanced_geometry/CombinatorialBasisDialog.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import PropTypes from "prop-types";
66
import React from "react";
77
import _ from "underscore";
88
import { displayMessage } from "../../../i18n/messages";
9-
import { Material } from "../../../material";
9+
import { MDMaterial } from "../../../MDMaterial";
1010
import BasisText from "../../source_editor/BasisText";
1111
// TODO: adjust this component and SourceEditor to inherit from the same one - XYZBasisEditor
1212
class CombinatorialBasisDialog extends React.Component {
@@ -50,7 +50,7 @@ class CombinatorialBasisDialog extends React.Component {
5050
basis: basis.toJSON(),
5151
name: `${material.name} - ${basis.formula}`,
5252
};
53-
const newMaterial = new Material(newMaterialConfig);
53+
const newMaterial = new MDMaterial(newMaterialConfig);
5454
newMaterial.cleanOnCopy();
5555
newMaterials.push(newMaterial);
5656
});

dist/components/3d_editor/advanced_geometry/InterpolateBasesDialog.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import PropTypes from "prop-types";
88
import React from "react";
99
import _ from "underscore";
1010
import { displayMessage } from "../../../i18n/messages";
11-
import { Material } from "../../../material";
11+
import { MDMaterial } from "../../../MDMaterial";
1212
import BasisText from "../../source_editor/BasisText";
1313
class InterpolateBasesDialog extends React.Component {
1414
constructor(props) {
@@ -57,7 +57,7 @@ class InterpolateBasesDialog extends React.Component {
5757
basis: newBasis.toJSON(),
5858
name: `${idx} - ${material.name} - ${newBasis.formula}`,
5959
};
60-
const newMaterial = new Material(newMaterialConfig);
60+
const newMaterial = new MDMaterial(newMaterialConfig);
6161
newMaterial.isUpdated = true;
6262
newMaterial.cleanOnCopy();
6363
newMaterials.push(newMaterial);

0 commit comments

Comments
 (0)