@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
47 lines (46 loc) • 1.25 kB
JavaScript
import { createContext } from "react";
import { StatefulComponent } from "@macrostrat/ui-components";
import h from "@macrostrat/hyper";
const FaciesContext = createContext({
facies: [],
onColorChanged() {
}
});
class FaciesProvider extends 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(FaciesContext.Provider, { value }, children);
}
}
export {
FaciesContext,
FaciesProvider
};
//# sourceMappingURL=facies.js.map