'React MUI - Consistent Tab Content Height
I understand that ideally should be placed at the top of the page. However, Assume they are place in the middle of the page. When changing from a tab with a lot of content, to a tab with little content, the scrollable area disappears. Is there anyway to preserve the white space?
https://codesandbox.io/s/labtabs-material-demo-forked-y39i2g?file=/demo.tsx
Here is a code sandbox example.
Step 1 scroll down to tabs.
Step 2 scroll down tab 1 content( leave tabs visible)
Step 3 click tab 2 (Mouse no longer is hovering over tabs because vertical scroll content vanishes)
Edit: I am able to change my root div min height to whatever I need hard-coded. I feel like this hacky though and not dynamic to the tallest tab
Solution 1:[1]
You can set minHeight style to tab2 and tab3 to be the height of tab1 using useRef
const tabRef = React.useRef<HTMLDivElement>(null)
const [tabHeight, setTabHeight] = React.useState(0);
React.useEffect(() => {
setTabHeight(tabRef.current.clientHeight)
}, [tabRef]);
<TabPanel value="1" ref={tabRef}></TabPanel>
<TabPanel value="2" sx={{ minHeight: tabHeight }}></TabPanel>
<TabPanel value="3" sx={{ minHeight: tabHeight }}></TabPanel>
Demo:
https://codesandbox.io/s/labtabs-material-demo-forked-40kpwc?file=/demo.tsx
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Amr Eraky |
