@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
49 lines (48 loc) • 1.53 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const React = require("react");
const uiComponents = require("@macrostrat/ui-components");
const h = require("@macrostrat/hyper");
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
const h__default = /* @__PURE__ */ _interopDefault(h);
const FaciesContext = React.createContext({
facies: [],
onColorChanged() {
}
});
class FaciesProvider extends uiComponents.StatefulComponent {
constructor(props) {
super(props);
this.state = {
facies: props.initialFacies || [],
__colorMap: {}
};
this.getFaciesColor = this.getFaciesColor.bind(this);
this.setFaciesColor = this.setFaciesColor.bind(this);
}
getFaciesColor(id) {
const { __colorMap } = this.state;
return __colorMap[id] || null;
}
setFaciesColor(id, color) {
const ix = this.state.facies.findIndex((d) => d.id === id);
return this.updateState({ facies: { [ix]: { color: { $set: color } } } });
}
render() {
const { facies } = this.state;
const { children, ...rest } = this.props;
const procedures = (() => {
let getFaciesColor, setFaciesColor;
return { getFaciesColor, setFaciesColor } = this;
})();
const value = {
facies,
...procedures,
...rest
};
return h__default.default(FaciesContext.Provider, { value }, children);
}
}
exports.FaciesContext = FaciesContext;
exports.FaciesProvider = FaciesProvider;
//# sourceMappingURL=facies.cjs.map