import React, { Suspense } from 'react' import { observer } from 'mobx-react' import { HorizontalResizeHandle, VerticalResizeHandle, } from './ResizeHandles.tsx' import Track from './Track.tsx' import VerticalScrollbar from './VerticalScrollbar.tsx' import Header from './header/Header.tsx' import Minimap from './minimap/Minimap.tsx' import MSAPanel from './msa/MSAPanel.tsx' import TreePanel from './tree/TreePanel.tsx' import TreeRuler from './tree/TreeRuler.tsx' import type { MsaViewModel } from '../model.ts' const TopArea = observer(function ({ model }: { model: MsaViewModel }) { const { showHorizontalScrollbar } = model return (
{showHorizontalScrollbar ? : null}
) }) const TrackColumnIndicator = observer(function ({ model, }: { model: MsaViewModel }) { const { mouseCol, mouseClickCol, colWidth, scrollX, treeAreaWidth, resizeHandleWidth, totalTrackAreaHeight, msaAreaWidth, verticalScrollbarWidth, } = model const left = treeAreaWidth + resizeHandleWidth const clipWidth = msaAreaWidth - verticalScrollbarWidth return (
{mouseCol !== undefined ? (
) : null} {mouseClickCol !== undefined ? (
) : null}
) }) const TrackArea = observer(function ({ model }: { model: MsaViewModel }) { const { turnedOnTracks } = model if (turnedOnTracks.length === 0) { return null } return (
{turnedOnTracks.map(track => ( ))}
) }) const MainArea = observer(function ({ model }: { model: MsaViewModel }) { const { showVerticalScrollbar } = model return (
{showVerticalScrollbar ? : null}
) }) const View = observer(function ({ model }: { model: MsaViewModel }) { return (
) }) const MSAView = observer(function ({ model }: { model: MsaViewModel }) { const { height, viewInitialized, DialogComponent, DialogProps } = model return (
{viewInitialized ? ( <>
{DialogComponent ? ( ) : null} ) : null}
) }) export default MSAView