diff --git a/stylesheets/_session_conversation.scss b/stylesheets/_session_conversation.scss
index 32ada5c75..a48783836 100644
--- a/stylesheets/_session_conversation.scss
+++ b/stylesheets/_session_conversation.scss
@@ -155,6 +155,7 @@
min-height: min-content;
background: var(--color-cell-background);
border-top: var(--border-session);
+ z-index: 1;
.session-icon-button {
// & > .session-icon-button {
diff --git a/ts/components/session/SplitViewContainer.tsx b/ts/components/session/SplitViewContainer.tsx
index 09ce89317..2e9df22b6 100644
--- a/ts/components/session/SplitViewContainer.tsx
+++ b/ts/components/session/SplitViewContainer.tsx
@@ -13,19 +13,29 @@ const SlyledSplitView = styled.div`
flex-direction: column;
`;
-const SplitViewDivider = styled.div`
- width: calc(100% - 2rem);
- height: 2px;
- margin: 1rem;
- border: 2px solid #808080;
+const Divider = styled.div`
+ width: 100%;
cursor: row-resize;
+ height: 5px;
+ background-color: var(--color-cell-background);
+ margin-top: 2px;
+`;
+
+const DividerHandle = styled.div`
+ width: 10%;
+ height: 5px;
+ cursor: row-resize;
+ background-color: var(--color-text);
flex-shrink: 0;
+ position: relative;
+ left: 50%;
+ transform: translateX(-50%);
`;
const StyledTop = styled.div`
- background: red;
display: flex;
flex-direction: column;
+ flex-grow: 1;
`;
const TopSplitViewPanel = ({
@@ -46,13 +56,14 @@ const TopSplitViewPanel = ({
}
topRef.current.style.height = `${topHeight}px`;
+ topRef.current.style.minHeight = `${topHeight}px`;
}
}, [topRef, topHeight, setTopHeight]);
return {children};
};
-const MIN_HEIGHT_TOP = 300;
+const MIN_HEIGHT_TOP = 200;
const MIN_HEIGHT_BOTTOM = 0;
export const SplitViewContainer: React.FunctionComponent = ({
@@ -65,16 +76,26 @@ export const SplitViewContainer: React.FunctionComponent = ({
const [dragging, setDragging] = useState(false);
const splitPaneRef = useRef(null);
+ const dividerRef = useRef(null);
- const onMouseDown = (e: any) => {
+ function onMouseDown(e: any) {
setSeparatorYPosition(e.clientY);
setDragging(true);
- };
+ }
- const onMouseMove = (e: any) => {
- if (dragging && topHeight && separatorYPosition) {
- const newTopHeight = topHeight + e.clientY - separatorYPosition;
+ function onWindowResize() {
+ if ((dividerRef?.current?.offsetTop || 0) + 200 > window.innerHeight) {
+ const clientY = Math.max(MIN_HEIGHT_TOP + 200, window.innerHeight / 2);
+ onMouseMove({ clientY }, true);
+ }
+ }
+ function onMouseUp() {
+ setDragging(false);
+ }
+ function onMouseMove(e: { clientY: number }, overrideIsDragging = false) {
+ if ((dragging || overrideIsDragging) && topHeight && separatorYPosition) {
+ const newTopHeight = topHeight + e.clientY - separatorYPosition;
setSeparatorYPosition(e.clientY);
if (newTopHeight < MIN_HEIGHT_TOP) {
setTopHeight(MIN_HEIGHT_TOP);
@@ -90,27 +111,27 @@ export const SplitViewContainer: React.FunctionComponent = ({
}
setTopHeight(newTopHeight);
}
- };
+ }
useEffect(() => {
document.addEventListener('mousemove', onMouseMove);
document.addEventListener('mouseup', onMouseUp);
+ window.addEventListener('resize', onWindowResize);
return () => {
document.removeEventListener('mousemove', onMouseMove);
document.removeEventListener('mouseup', onMouseUp);
+ window.removeEventListener('resize', onWindowResize);
};
});
- const onMouseUp = () => {
- setDragging(false);
- };
-
return (
{!disableTop && (
{top}
-
+
+
+
)}
{bottom}
diff --git a/ts/components/session/calling/InConversationCallContainer.tsx b/ts/components/session/calling/InConversationCallContainer.tsx
index 1149c6f0d..db9395d2d 100644
--- a/ts/components/session/calling/InConversationCallContainer.tsx
+++ b/ts/components/session/calling/InConversationCallContainer.tsx
@@ -31,13 +31,13 @@ const VideoContainer = styled.div`
const InConvoCallWindow = styled.div`
padding: 1rem;
display: flex;
- /* height: 50%; */
background-color: hsl(0, 0%, 15.7%);
flex-shrink: 1;
- min-height: 200px;
+ min-height: 80px;
align-items: center;
+ flex-grow: 1;
`;
const InConvoCallWindowControls = styled.div`