hoist activeTab state

This commit is contained in:
dannyrb 2020-05-22 15:33:07 -04:00
parent a41a455237
commit 7c1dcb53c2
2 changed files with 10 additions and 18 deletions

View File

@ -138,10 +138,12 @@ function PanelStudyBrowser({
return (
<StudyBrowser
activeTabName={activeTabName}
tabs={tabs}
activeTabName={activeTabName}
onClickStudy={_handleStudyClick}
onSetTabActive={setActiveTabName}
onClickTab={clickedTabName => {
setActiveTabName(clickedTabName);
}}
/>
);
}

View File

@ -7,10 +7,6 @@ import { ButtonGroup, Button, StudyItem, ThumbnailList } from '@ohif/ui';
const buttonClasses = 'text-white text-base border-none bg-black p-2 min-w-18';
const activeButtonClasses = 'bg-primary-main';
const getInitialActiveTab = tabs => {
return tabs && tabs[0] && tabs[0].name;
};
const getTrackedSeries = displaySets => {
let trackedSeries = 0;
displaySets.forEach(displaySet => {
@ -25,18 +21,15 @@ const getTrackedSeries = displaySets => {
const StudyBrowser = ({
tabs,
activeTabName,
onSetTabActive,
onClickTab,
onClickStudy,
onClickThumbnail,
}) => {
const [tabActive, setTabActive] = useState(
activeTabName || getInitialActiveTab(tabs)
);
const [studyActive, setStudyActive] = useState(null);
const [thumbnailActive, setThumbnailActive] = useState(null);
const getTabContent = () => {
const tabData = tabs.find(tab => tab.name === tabActive);
const tabData = tabs.find(tab => tab.name === activeTabName);
if (!tabData || !tabData.studies || !Array.isArray(tabData.studies)) {
return;
@ -101,7 +94,7 @@ const StudyBrowser = ({
>
{tabs.map(tab => {
const { name, label } = tab;
const isActive = tabActive === name;
const isActive = activeTabName === name;
return (
<Button
key={name}
@ -111,12 +104,7 @@ const StudyBrowser = ({
)}
size="initial"
onClick={() => {
setTabActive(name);
setStudyActive(null);
if (onSetTabActive) {
onSetTabActive(name);
}
onClickTab(name);
}}
>
{label}
@ -133,8 +121,10 @@ const StudyBrowser = ({
};
StudyBrowser.propTypes = {
onClickTab: PropTypes.func.isRequired,
onClickStudy: PropTypes.func,
onClickThumbnail: PropTypes.func,
activeTabName: PropTypes.string.isRequired,
tabs: PropTypes.arrayOf(
PropTypes.shape({
name: PropTypes.string.isRequired,