import * as React from "react"; import { BaseExportsPaneProps } from "./view.pc"; import { InspectorNode, inspectorNodeInShadow, getInspectorContentNode, InspectorTreeNodeName } from "paperclip"; import { Dispatch } from "redux"; import { exportNameChanged } from "../../../../../actions"; export type Props = { selectedInspectorNode: InspectorNode; rootInspectorNode: InspectorNode; dispatch: Dispatch; }; // ^[a-zA-Z_$][\w_$]*$ export default (Base: React.ComponentClass) => class ExportsController extends React.PureComponent { onNameChangeComplete = value => { this.props.dispatch(exportNameChanged(value)); }; render() { const { selectedInspectorNode, rootInspectorNode, ...rest } = this.props; const { onNameChangeComplete } = this; const contentInspectorNode = getInspectorContentNode(selectedInspectorNode, rootInspectorNode) || selectedInspectorNode; if ( inspectorNodeInShadow(selectedInspectorNode, contentInspectorNode) || selectedInspectorNode.name === InspectorTreeNodeName.SHADOW ) { return null; } return ( ); } };