import React from 'react'; import Folder from 'ui/components/Folder'; import ls from './FloatView.less'; import connect from 'ui/connect'; import mapContext from 'ui/mapContext'; import Fa from 'ui/components/Fa'; import ToolButton from 'ui/components/ToolButton'; @connect(state => state.ui.floatViews.map(views => ({views}))) @mapContext(ctx => ({ getDescriptor: ctx.services.ui.getFloatView, initialView: ctx.projectService.hints.FloatView || null })) export default class FloatView extends React.Component { constructor(props) { super(); this.state = { selected: props.initialView }; } render() { const {views, getDescriptor} = this.props; function renderedIcon(icon) { if (typeof icon === 'string') { return ; } else { const I = icon; return ; } } function view(id) { const {title, icon, Component} = getDescriptor(id); return {renderedIcon(icon)} {title}}>
; } const selected = this.state.selected; return
{views.map(tabId => this.setState({selected: selected === tabId ? null : tabId})}> {renderedIcon(getDescriptor(tabId).icon)} )}
{selected && view(selected)}
; } }