import "./index.scss"; import cx = require("classnames"); import React = require("react"); import { Workspace } from "@tandem/editor"; import { GutterComponent } from "@tandem/uikit"; import { BaseApplicationComponent } from "@tandem/common"; import { BottomGutterTabComponentProvider } from "@tandem/editor/browser/providers"; import { SyntheticDOMNode } from "@tandem/synthetic-browser"; import { SyntheticRemoteBrowserElement } from "@tandem/tdproject-extension/synthetic"; export class BottomWorkspaceGutterComponent extends BaseApplicationComponent<{ className?: string, style?: Object, workspace: Workspace }, { currentTabIndex: number }> { state = { currentTabIndex: 0 }; selectTabIndex = (index: number) => { this.setState({ currentTabIndex: index }); } render() { const { style, className, workspace } = this.props; const { currentTabIndex } = this.state; const selectedNode = workspace.selection.find((element) => { return element instanceof SyntheticDOMNode; }) as SyntheticDOMNode; const providers = this.kernel.queryAll(BottomGutterTabComponentProvider.getId("**")); const currentProvider = providers[currentTabIndex]; const renderInner = () => { const activeSyntheticBrowser = (selectedNode as SyntheticRemoteBrowserElement).childBrowser || selectedNode.ownerDocument.browser; return
{ currentProvider && currentProvider.create(Object.assign({}, this.props, { activeSyntheticBrowser })) }
} return { selectedNode && renderInner() } } }