feat(4D): Add 4D dynamic volume rendering and new pre-clinical 4d pt/ct mode (#3664)

Co-authored-by: Alireza <ar.sedghi@gmail.com>
Co-authored-by: Neil <neil.a.macphee@gmail.com>
This commit is contained in:
authored and GitHub committed 2024-04-09 23:57:34 -04:00
1 parent dc0b183dd4
commit d57e8bc157
200 files changed
+9589 -2178

No files matched your search

@@ -165,6 +165,7 @@ const SidePanel = ({
tabs,
onOpen,
expandedWidth = 248,
onActiveTabIndexChange,
}) => {
const { t } = useTranslation('SidePanel');
@@ -178,14 +179,15 @@ const SidePanel = ({
const openStatus = panelOpen ? 'open' : 'closed';
const style = Object.assign({}, styleMap[openStatus][side], baseStyle);
const ActiveComponent = tabs[activeTabIndex]?.content;
const updatePanelOpen = useCallback((panelOpen: boolean) => {
setPanelOpen(panelOpen);
if (panelOpen) {
onOpen?.();
}
}, []);
const updatePanelOpen = useCallback(
(panelOpen: boolean) => {
setPanelOpen(panelOpen);
if (panelOpen && onOpen) {
onOpen();
}
},
[onOpen]
);
const updateActiveTabIndex = useCallback(
(activeTabIndex: number) => {
@@ -196,8 +198,12 @@ const SidePanel = ({
setActiveTabIndex(activeTabIndex);
updatePanelOpen(true);
if (onActiveTabIndexChange) {
onActiveTabIndexChange({ activeTabIndex });
}
},
[updatePanelOpen]
[onActiveTabIndexChange, updatePanelOpen]
);
useEffect(() => {
@@ -214,7 +220,7 @@ const SidePanel = ({
side === 'left' ? 'justify-end pr-2' : 'justify-start pl-2'
)}
onClick={() => {
updatePanelOpen(prev => !prev);
updatePanelOpen(!panelOpen);
}}
data-cy={`side-panel-header-${side}`}
>
@@ -270,7 +276,7 @@ const SidePanel = ({
)}
style={{ width: `${closeIconWidth}px` }}
onClick={() => {
updatePanelOpen(prev => !prev);
updatePanelOpen(!panelOpen);
}}
data-cy={`side-panel-header-${side}`}
>
@@ -356,7 +362,7 @@ const SidePanel = ({
: { marginRight: `${closeIconWidth}px` }),
}}
data-cy={`${tabs[0].name}-btn`}
onClick={() => updatePanelOpen(prev => !prev)}
onClick={() => updatePanelOpen(!panelOpen)}
>
<span>{tabs[0].label}</span>
</div>
@@ -380,7 +386,14 @@ const SidePanel = ({
{panelOpen ? (
<>
{getOpenStateComponent()}
<ActiveComponent />
{tabs.map((tab, tabIndex) => (
<div
key={tab.id}
className={tabIndex === activeTabIndex ? '' : 'hidden'}
>
<tab.content />
</div>
))}
</>
) : (
<React.Fragment>{getCloseStateComponent()}</React.Fragment>
@@ -410,6 +423,7 @@ SidePanel.propTypes = {
),
]),
onOpen: PropTypes.func,
onActiveTabIndexChange: PropTypes.func,
expandedWidth: PropTypes.number,
};