diff --git a/src/components/organisms/ActionsPane/ActionsPane.styled.tsx b/src/components/organisms/ActionsPane/ActionsPane.styled.tsx
index 84d10384eb..c2d05a7e4a 100644
--- a/src/components/organisms/ActionsPane/ActionsPane.styled.tsx
+++ b/src/components/organisms/ActionsPane/ActionsPane.styled.tsx
@@ -108,3 +108,10 @@ export const Tabs = styled(RawTabs)<{$height: number}>`
background: transparent;
}
`;
+
+export const FullViewIconContainer = styled.div`
+ display: flex;
+ align-items: center;
+ margin-top: -30px;
+ margin-bottom: 30px;
+`;
diff --git a/src/components/organisms/ActionsPane/ActionsPane.tsx b/src/components/organisms/ActionsPane/ActionsPane.tsx
index 23047e26fc..69dba2f87e 100644
--- a/src/components/organisms/ActionsPane/ActionsPane.tsx
+++ b/src/components/organisms/ActionsPane/ActionsPane.tsx
@@ -5,7 +5,7 @@ import {useMeasure} from 'react-use';
import {Tooltip} from 'antd';
-import {BookOutlined} from '@ant-design/icons';
+import {BookOutlined, LeftCircleFilled} from '@ant-design/icons';
import {DEFAULT_PANE_TITLE_HEIGHT, HELM_CHART_HELP_URL, KUSTOMIZE_HELP_URL, TOOLTIP_DELAY} from '@constants/constants';
import {makeApplyKustomizationText, makeApplyResourceText} from '@constants/makeApplyText';
@@ -408,6 +408,10 @@ const ActionsPane: React.FC = () => {
selectedResourceMeta={selectedResource}
/>
+
+
+
+
{selection?.type === 'preview.configuration' ? (
) : selection?.type === 'image' ? (
diff --git a/src/components/organisms/Dashboard/Dashboard.styled.tsx b/src/components/organisms/Dashboard/Dashboard.styled.tsx
index 7ce7b968de..ba23cb2300 100644
--- a/src/components/organisms/Dashboard/Dashboard.styled.tsx
+++ b/src/components/organisms/Dashboard/Dashboard.styled.tsx
@@ -22,5 +22,6 @@ export const Header = styled(RawHeader)`
`;
export const Content = styled.div`
+ margin-top: -130px;
grid-area: content;
`;
diff --git a/src/components/organisms/Dashboard/Tableview/Drawer.styled.tsx b/src/components/organisms/Dashboard/Tableview/Drawer.styled.tsx
index 7dea17e2d6..9ed4dea325 100644
--- a/src/components/organisms/Dashboard/Tableview/Drawer.styled.tsx
+++ b/src/components/organisms/Dashboard/Tableview/Drawer.styled.tsx
@@ -10,7 +10,8 @@ export const Drawer = styled(RawDrawer)`
& .ant-drawer-content {
background: ${Colors.grey1};
}
- z-index: 1000;
+ z-index: 2000 !important;
+ margin-top: -65px;
& .ant-drawer-close {
position: absolute;
@@ -152,3 +153,41 @@ export const TitleContainer = styled.div`
display: flex;
align-items: center;
`;
+
+export const ArrowIconContainer = styled.div`
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ z-index: 2000;
+ width: 16px;
+ height: 16px;
+
+ &:hover {
+ cursor: pointer;
+ }
+`;
+
+export const ArrowAndTitleContainer = styled.div`
+ display: flex;
+ align-items: center;
+`;
+
+export const DrawerSlider = styled.div`
+ position: absolute;
+ width: 5px;
+ padding: 4px 0 0;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ z-index: 10001;
+ cursor: ew-resize;
+ transition: background-color 0.3s;
+
+ &:hover {
+ background-color: ${Colors.blue7};
+ }
+
+ &:active {
+ background-color: ${Colors.blue7};
+ }
+`;
diff --git a/src/components/organisms/Dashboard/Tableview/Drawer.tsx b/src/components/organisms/Dashboard/Tableview/Drawer.tsx
index b1c01907fb..c0db0722a0 100644
--- a/src/components/organisms/Dashboard/Tableview/Drawer.tsx
+++ b/src/components/organisms/Dashboard/Tableview/Drawer.tsx
@@ -1,6 +1,8 @@
-import {useLayoutEffect, useRef, useState} from 'react';
+import {useEffect, useLayoutEffect, useRef, useState} from 'react';
import {useClickAway} from 'react-use';
+import {LeftCircleFilled, RightCircleFilled} from '@ant-design/icons';
+
import {v4 as uuidv4} from 'uuid';
import {setActiveTab, setDashboardSelectedResourceId} from '@redux/dashboard/slice';
@@ -26,6 +28,46 @@ export const Drawer = () => {
const selectedResourceId = useAppSelector(state => state.dashboard.tableDrawer.selectedResourceId);
const selectedResource = useResource(selectedResourceId ? {id: selectedResourceId, storage: 'cluster'} : undefined);
const [isConfirmingUpdate, setIsConfirmingUpdate] = useState(false);
+ const [isHalfScreen, setIsHalfScreen] = useState(true);
+ const [isResizing, setIsResizing] = useState(false);
+ const [width, setWidth] = useState(736);
+ const layoutSize = useAppSelector(state => state.ui.layoutSize);
+ const leftPaneSize = useAppSelector(state => state.ui.paneConfiguration.leftPane);
+ const [height, setHeight] = useState(window.innerHeight - layoutSize.header);
+ const [maxWidth, setMaxWidth] = useState(window.innerWidth - leftPaneSize);
+
+ const onMouseDown = (e: any) => {
+ setIsResizing(true);
+ };
+
+ const onMouseUp = (e: any) => {
+ setIsResizing(false);
+ };
+
+ useEffect(() => {
+ setHeight(window.innerHeight - layoutSize.header);
+ setMaxWidth(window.innerWidth - leftPaneSize);
+ }, [layoutSize, leftPaneSize]);
+
+ const onMouseMove = (e: {clientX: number}) => {
+ if (isResizing) {
+ let offsetRight = document.body.offsetWidth - (e.clientX - document.body.offsetLeft);
+ const minWidth = 600;
+ if (offsetRight > minWidth && offsetRight < maxWidth) {
+ setWidth(offsetRight);
+ }
+ }
+ };
+
+ useEffect(() => {
+ document.addEventListener('mousemove', onMouseMove);
+ document.addEventListener('mouseup', onMouseUp);
+
+ return () => {
+ document.removeEventListener('mousemove', onMouseMove);
+ document.removeEventListener('mouseup', onMouseUp);
+ };
+ });
const [warnUnsavedCodeChanges, UnsavedCodeChangesModal] = useWarnUnsavedChanges();
@@ -42,30 +84,42 @@ export const Drawer = () => {
}
}, [selectedResourceId]);
+ const changeDrawerSize = () => {
+ setIsHalfScreen(!isHalfScreen);
+ };
+
return (
-
- {selectedResource.name}
-
-
+
+
+ {isHalfScreen && }
+ {!isHalfScreen && }
+
+
+
+ {selectedResource.name}
+
+
+
) : (
-
)
@@ -74,6 +128,7 @@ export const Drawer = () => {
dispatch(setDashboardSelectedResourceId());
}}
>
+
+
-
+
}}
dataSource={filteredDataSource}