From 14c73fa5ae8bc696f4bc5ebdbcf0a96dcb97cebd Mon Sep 17 00:00:00 2001
From: vkovtun <vkovtun@ethz.ch>
Date: Thu, 20 Jul 2023 16:15:11 +0200
Subject: [PATCH] SSDM-13579: Fixed the width of the info panel. Made it
 scrollable if the content height is too big.

---
 .../src/js/components/common/form/Header.jsx  | 22 ++++++++++--------
 .../database/data-browser/DataBrowser.jsx     |  1 -
 .../database/data-browser/InfoPanel.jsx       | 23 +++++++++++++++----
 3 files changed, 30 insertions(+), 16 deletions(-)

diff --git a/ui-admin/src/js/components/common/form/Header.jsx b/ui-admin/src/js/components/common/form/Header.jsx
index f206012c13c..6c555c429fb 100644
--- a/ui-admin/src/js/components/common/form/Header.jsx
+++ b/ui-admin/src/js/components/common/form/Header.jsx
@@ -25,17 +25,19 @@ class Header extends React.PureComponent {
     const { styles, classes, size } = this.props
 
     let variant = null
-    let className = null
+    let className = this.props.className;
 
-    if (size === 'big') {
-      variant = 'h5'
-      className = classes.big
-    } else if (size === 'medium') {
-      variant = 'h6'
-      className = classes.medium
-    } else if (size === 'small') {
-      variant = 'subtitle1'
-      className = classes.small
+    if (!className) {
+      if (size === 'big') {
+        variant = 'h5'
+        className = classes.big
+      } else if (size === 'medium') {
+        variant = 'h6'
+        className = classes.medium
+      } else if (size === 'small') {
+        variant = 'subtitle1'
+        className = classes.small
+      }
     }
 
     return (
diff --git a/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx b/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx
index 52481ddeaf6..ea818cb3d31 100644
--- a/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx
+++ b/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx
@@ -51,7 +51,6 @@ const styles = theme => ({
   content: {
     flex: '1 1 100%',
     height: 0,
-    overflowY: 'hidden'
   },
   nameCell: {
     display: 'flex',
diff --git a/ui-admin/src/js/components/database/data-browser/InfoPanel.jsx b/ui-admin/src/js/components/database/data-browser/InfoPanel.jsx
index 2024f8dcebc..ef4711e56fe 100644
--- a/ui-admin/src/js/components/database/data-browser/InfoPanel.jsx
+++ b/ui-admin/src/js/components/database/data-browser/InfoPanel.jsx
@@ -23,17 +23,28 @@ import Table from '@material-ui/core/Table'
 import TableBody from '@material-ui/core/TableBody'
 import TableCell from '@material-ui/core/TableCell'
 import TableRow from '@material-ui/core/TableRow'
-import Header from '@src/js/components/common/form/Header.jsx';
-import ItemIcon from '@src/js/components/database/data-browser/ItemIcon.jsx';
-import { withStyles } from "@material-ui/core/styles";
+import Header from '@src/js/components/common/form/Header.jsx'
+import ItemIcon from '@src/js/components/database/data-browser/ItemIcon.jsx'
+import { withStyles } from '@material-ui/core/styles'
 
 const styles = () => ({
   container: {
-    position: 'sticky'
+    position: 'sticky',
+    overflowX: 'hidden',
+    overflowY: 'auto',
+    width: '24rem'
   },
   icon: {
     verticalAlign: 'middle',
     fontSize: '12rem'
+  },
+  fileName: {
+    whiteSpace: 'nowrap',
+    '& *': {
+      whiteSpace: 'nowrap',
+      overflow: 'hidden',
+      textOverflow: 'ellipsis'
+    }
   }
 })
 
@@ -53,7 +64,9 @@ class InfoPanel extends React.Component {
     // TODO: extract strings to messages
     return (file &&
       <Container className={classes.container}>
-        <Header size='big'>{file.name}</Header>
+        <span className={classes.fileName}>
+          <Header size='big'>{file.name}</Header>
+        </span>
         <ItemIcon file={file} classes={classes} configuration={configuration} />
         <Table>
           <TableBody>
-- 
GitLab