import DockLayout, { DockMode } from 'rc-dock' import React from 'react' import styled from 'styled-components' import { DockContainer } from '../EditorContainer' import { AssetSelectionChangePropsType, AssetsPreviewPanel } from './AssetsPreviewPanel' import FileBrowserContentPanel from './FileBrowserContentPanel' export const ProjectDockContainer = (styled as any).div` .dock-panel { background: transparent; pointer-events: auto; border: none; } .dock-panel:first-child { position: relative; z-index: 99; } .dock-panel[data-dockid='+5'] { pointer-events: none; } .dock-panel[data-dockid='+5'] .dock-bar { display: none; } .dock-panel[data-dockid='+5'] .dock { background: transparent; } .dock-divider { pointer-events: auto; background: rgba(1, 1, 1, ${(props) => props.dividerAlpha}); } .dock { border-radius: 4px; background: var(--dockBackground); } .dock-top .dock-bar { font-size: 12px; border-bottom: 1px solid rgba(0, 0, 0, 0.2); background: transparent; } .dock-tab { background: transparent; border-bottom: none; } .dock-tab:hover, .dock-tab-active, .dock-tab-active:hover { border-bottom: 1px solid #ddd; } .dock-tab:hover div, .dock-tab:hover svg { color: var(--textColor); } .dock-tab > div { padding: 2px 12px; } .dock-tab-active { color: var(--textColor); } .dock-ink-bar { background-color: var(--textColor); } .dock-panel-max-btn:before { border-color: var(--iconButtonColor); } ` /** * ProjectBrowserPanel used to render view for Project Panel. * @constructor */ export default function ProjectBrowserPanel() { const assetsPreviewPanelRef = React.useRef() const onLayoutChangedCallback = () => { ;(assetsPreviewPanelRef as any).current?.onLayoutChanged?.() } const onSelectionChanged = (props: AssetSelectionChangePropsType) => { ;(assetsPreviewPanelRef as any).current?.onSelectionChanged?.(props) } let defaultLayout = { dockbox: { mode: 'vertical' as DockMode, children: [ { size: 7, mode: 'horizontal' as DockMode, children: [ { tabs: [ { id: 'filesPanel', title: 'Project Files', content: } ] } ] }, { size: 3, tabs: [{ id: 'previewPanel', title: 'Preview', content: }] } ] } } return ( <> ) }