From 1d8cc7043411963cf1dd9b062ac98e88ce028a7e Mon Sep 17 00:00:00 2001 From: vkovtun <vkovtun@ethz.ch> Date: Thu, 25 May 2023 12:14:29 +0200 Subject: [PATCH] SSDM-13579: Added changing logic for GridView and ListView buttons on the toolbar. --- .../database/data-browser/DataBrowser.jsx | 15 ++++++++++----- .../components/database/data-browser/GridView.jsx | 2 +- .../components/database/data-browser/ListView.jsx | 6 +++--- .../components/database/data-browser/Toolbar.jsx | 6 +++--- 4 files changed, 17 insertions(+), 12 deletions(-) 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 15e89d08bb9..30de7517bf2 100644 --- a/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx +++ b/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx @@ -1,5 +1,6 @@ import React from 'react' import { withStyles } from '@material-ui/core/styles' +import autoBind from 'auto-bind' import Toolbar from '@src/js/components/database/data-browser/Toolbar.jsx' import ListView from '@src/js/components/database/data-browser/ListView.jsx' import GridView from '@src/js/components/database/data-browser/GridView.jsx' @@ -22,23 +23,27 @@ const styles = theme => ({ class DataBrowser extends React.Component { - constructor(props, context) { super(props, context) + autoBind(this) this.state = { viewType: props.viewType } } + handleViewTypeChange(viewType) { + this.setState({ viewType }) + } + render() { const { viewType } = this.state const { classes } = this.props return ( - <div className={ classes.boundary }> - <Toolbar viewType={viewType} /> - {viewType === 'list' ? <ListView /> : null} - {viewType === 'grid' ? <GridView /> : null} + <div className={classes.boundary}> + <Toolbar viewType={viewType} onViewTypeChange={this.handleViewTypeChange} /> + {viewType === 'list' && <ListView />} + {viewType === 'grid' && <GridView />} </div> ) } diff --git a/ui-admin/src/js/components/database/data-browser/GridView.jsx b/ui-admin/src/js/components/database/data-browser/GridView.jsx index 27d31b0849c..55b7ed646e8 100644 --- a/ui-admin/src/js/components/database/data-browser/GridView.jsx +++ b/ui-admin/src/js/components/database/data-browser/GridView.jsx @@ -13,7 +13,7 @@ const styles = theme => ({ class GridView extends React.Component { render() { return ( - <div>GalleryBrowser</div> + <div>GridView</div> ) } } diff --git a/ui-admin/src/js/components/database/data-browser/ListView.jsx b/ui-admin/src/js/components/database/data-browser/ListView.jsx index 8e2d9d33c04..57952585991 100644 --- a/ui-admin/src/js/components/database/data-browser/ListView.jsx +++ b/ui-admin/src/js/components/database/data-browser/ListView.jsx @@ -1,5 +1,5 @@ -import React from "react"; -import { withStyles } from "@material-ui/core/styles"; +import React from 'react' +import { withStyles } from '@material-ui/core/styles' const styles = theme => ({ containerDefault: { @@ -13,7 +13,7 @@ const styles = theme => ({ class ListView extends React.Component { render() { return ( - <div>ListBrowser</div> + <div>ListView</div> ) } } diff --git a/ui-admin/src/js/components/database/data-browser/Toolbar.jsx b/ui-admin/src/js/components/database/data-browser/Toolbar.jsx index e5d3af68adf..26b028b3bdb 100644 --- a/ui-admin/src/js/components/database/data-browser/Toolbar.jsx +++ b/ui-admin/src/js/components/database/data-browser/Toolbar.jsx @@ -16,11 +16,11 @@ const styles = theme => ({ class Toolbar extends React.Component { render() { - const { viewType } = this.props + const { viewType, onViewTypeChange } = this.props return ( <Container> - {viewType === 'list' && <Button label={<ViewComfyIcon/>}/>} - {viewType === 'grid' && <Button label={<ViewListIcon/>}/>} + {viewType === 'list' && <Button label={<ViewComfyIcon/>} onClick={() => onViewTypeChange('grid')} />} + {viewType === 'grid' && <Button label={<ViewListIcon/>} onClick={() => onViewTypeChange('list')} />} </Container> ) } -- GitLab