19899: Change webdav default config field to private, add getters and setters to...
[arvados-workbench2.git] / src / components / collection-panel-files / collection-panel-files.tsx
index f565fba98a17e0ed33a76a290b0af78b9947286d..08944d40a93519b59770ea52df546f2720d68ad8 100644 (file)
@@ -85,7 +85,7 @@ const styles: StyleRulesCallback<CssRules> = (theme: Theme) => ({
     wrapper: {
         display: 'flex',
         minHeight: '600px',
-        color: 'rgba(0, 0, 0, 0.87)',
+        color: 'rgba(0,0,0,0.87)',
         fontSize: '0.875rem',
         fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif',
         fontWeight: 400,
@@ -154,8 +154,8 @@ const styles: StyleRulesCallback<CssRules> = (theme: Theme) => ({
         marginTop: '-15px',
     },
     pathPanel: {
-        padding: '1rem',
-        marginBottom: '1rem',
+        padding: '0.5rem',
+        marginBottom: '0.5rem',
         backgroundColor: '#fff',
         boxShadow: '0px 1px 3px 0px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 2px 1px -1px rgb(0 0 0 / 12%)',
     },
@@ -164,7 +164,7 @@ const styles: StyleRulesCallback<CssRules> = (theme: Theme) => ({
     },
     leftPanel: {
         flex: 0,
-        padding: '1rem',
+        padding: '0 1rem 1rem',
         marginRight: '1rem',
         whiteSpace: 'nowrap',
         position: 'relative',
@@ -195,8 +195,8 @@ const styles: StyleRulesCallback<CssRules> = (theme: Theme) => ({
     rightPanel: {
         flex: '50%',
         padding: '1rem',
-        paddingTop: '2rem',
-        marginTop: '-1rem',
+        paddingTop: '0.5rem',
+        marginTop: '-0.5rem',
         position: 'relative',
         backgroundColor: '#fff',
         boxShadow: '0px 3px 3px 0px rgb(0 0 0 / 20%), 0px 3px 1px 0px rgb(0 0 0 / 14%), 0px 3px 1px -1px rgb(0 0 0 / 12%)',
@@ -233,11 +233,12 @@ export const CollectionPanelFiles = withStyles(styles)(connect((state: RootState
     const { classes, onItemMenuOpen, onUploadDataClick, isWritable, dispatch, collectionPanelFiles, collectionPanel } = props;
     const { apiToken, config } = props.auth;
 
-    const webdavClient = new WebDAV();
-    webdavClient.defaults.baseURL = config.keepWebServiceUrl;
-    webdavClient.defaults.headers = {
-        Authorization: `Bearer ${apiToken}`
-    };
+    const webdavClient = new WebDAV({
+        baseURL: config.keepWebServiceUrl,
+        headers: {
+            Authorization: `Bearer ${apiToken}`
+        },
+    });
 
     const webDAVRequestConfig: WebDAVRequestConfig = {
         headers: {
@@ -328,12 +329,7 @@ export const CollectionPanelFiles = withStyles(styles)(connect((state: RootState
     const currentPDH = (collectionPanel.item || {}).portableDataHash;
     React.useEffect(() => {
         if (currentPDH) {
-            // Avoid fetching the same content level twice
-            if (leftKey !== rightKey) {
-                fetchData([leftKey, rightKey], true);
-            } else {
-                fetchData(rightKey, true);
-            }
+            fetchData([leftKey, rightKey], true);
         }
     }, [currentPDH]); // eslint-disable-line react-hooks/exhaustive-deps
 
@@ -539,7 +535,7 @@ export const CollectionPanelFiles = withStyles(styles)(connect((state: RootState
                     : <div className={classes.rowEmpty}>No directories available</div>
                     }}
                 </AutoSizer>
-                : <div className={classes.row}><CircularProgress className={classes.loader} size={30} /></div> }
+                : <div data-cy="collection-loader" className={classes.row}><CircularProgress className={classes.loader} size={30} /></div> }
                 </div>
             </div>
             <div className={classes.rightPanel} data-cy="collection-files-right-panel">
@@ -580,8 +576,11 @@ export const CollectionPanelFiles = withStyles(styles)(connect((state: RootState
                                     </span>
                                     <Tooltip title="More options" disableFocusListener>
                                         <IconButton data-id='moreOptions'
+                                            data-cy='file-item-options-btn'
                                             className={classes.moreOptionsButton}>
-                                            <MoreOptionsIcon data-cy='file-item-options-btn' data-id='moreOptions' className={classes.moreOptions} />
+                                            <MoreOptionsIcon
+                                                data-id='moreOptions'
+                                                className={classes.moreOptions} />
                                         </IconButton>
                                     </Tooltip>
                                 </div>