UNPKG

@macrostrat/column-components

Version:

React rendering primitives for stratigraphic columns

49 lines (48 loc) 1.53 kB
"use strict"; 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