/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at . */ import React, { PureComponent } from "react"; import PropTypes from "prop-types"; import Reps from "devtools/client/shared/components/reps/index"; const { REPS: { Rep, ElementNode: { supportsObject: isElement }, }, MODE, } = Reps; // Renders single variable preview inside a codemirror line widget class InlinePreview extends PureComponent { static get propTypes() { return { highlightDomElement: PropTypes.func.isRequired, openElementInInspector: PropTypes.func.isRequired, unHighlightDomElement: PropTypes.func.isRequired, value: PropTypes.any, variable: PropTypes.string.isRequired, }; } showInScopes(variable) { // TODO: focus on variable value in the scopes sidepanel // we will need more info from parent comp } render() { const { value, variable, openElementInInspector, highlightDomElement, unHighlightDomElement, } = this.props; const mode = isElement(value) ? MODE.TINY : MODE.SHORT; return ( this.showInScopes(variable)} > {variable}: openElementInInspector(grip)} onInspectIconClick={grip => openElementInInspector(grip)} onDOMNodeMouseOver={grip => highlightDomElement(grip)} onDOMNodeMouseOut={grip => unHighlightDomElement(grip)} /> ); } } export default InlinePreview;