X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/b130d8595d05d46f2f29ebe4c1cf3dff392bc26b..41f6f1e495c82fcfa79b87cf718fa2e9cd91c726:/src/components/multi-panel-view/multi-panel-view.tsx diff --git a/src/components/multi-panel-view/multi-panel-view.tsx b/src/components/multi-panel-view/multi-panel-view.tsx index 185c3b90..de824990 100644 --- a/src/components/multi-panel-view/multi-panel-view.tsx +++ b/src/components/multi-panel-view/multi-panel-view.tsx @@ -65,6 +65,7 @@ interface MPVPanelDataProps { panelIlluminated?: boolean; panelRef?: MutableRefObject; forwardProps?: boolean; + maxHeight?: string; } interface MPVPanelActionProps { @@ -78,14 +79,20 @@ export type MPVPanelProps = MPVPanelDataProps & MPVPanelActionProps; type MPVPanelContentProps = {children: ReactElement} & MPVPanelProps & GridProps; // Grid item compatible component for layout and MPV props passing -export const MPVPanelContent = ({doHidePanel, doMaximizePanel, panelName, panelMaximized, panelIlluminated, panelRef, forwardProps, ...props}: MPVPanelContentProps) => { +export const MPVPanelContent = ({doHidePanel, doMaximizePanel, panelName, + panelMaximized, panelIlluminated, panelRef, forwardProps, maxHeight, + ...props}: MPVPanelContentProps) => { useEffect(() => { if (panelRef && panelRef.current) { panelRef.current.scrollIntoView({behavior: 'smooth'}); } }, [panelRef]); - return + const mh = panelMaximized + ? '100%' + : maxHeight; + + return {/* Element to scroll to when the panel is selected */} { forwardProps @@ -112,7 +119,7 @@ const MPVContainerComponent = ({children, panelStates, classes, ...props}: MPVCo children = [children]; } const visibility = (children as ReactNodeArray).map((_, idx) => - !!!panelStates || // if panelStates wasn't passed, default to all visible panels + !panelStates || // if panelStates wasn't passed, default to all visible panels (panelStates[idx] && (panelStates[idx].visible || panelStates[idx].visible === undefined))); const [panelVisibility, setPanelVisibility] = useState(visibility); @@ -159,13 +166,20 @@ const MPVContainerComponent = ({children, panelStates, classes, ...props}: MPVCo const panelIsMaximized = panelVisibility[idx] && panelVisibility.filter(e => e).length === 1; + let brightenerTimer: NodeJS.Timer; toggles = [ ...toggles,