"README.md" did not exist on "44f23c9252f4af0d8dfe623536f6ecc3f27371ac"
Newer
Older
/*
* Copyright ETH 2023 Zürich, Scientific IT Services
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
import React from 'react'
import { withStyles } from '@material-ui/core/styles'
import messages from '@src/js/common/messages.js'
import ViewComfyIcon from '@material-ui/icons/ViewComfy'
import ViewListIcon from '@material-ui/icons/ViewList'
import PublishIcon from '@material-ui/icons/Publish'
import SettingsIcon from '@material-ui/icons/Settings'
import SearchIcon from '@material-ui/icons/Search'
import InfoIcon from '@material-ui/icons/InfoOutlined'
import CreateNewFolderIcon from '@material-ui/icons/CreateNewFolderOutlined'
import autoBind from 'auto-bind'
import { ToggleButton } from '@material-ui/lab'
import Button from '@material-ui/core/Button'
import IconButton from '@material-ui/core/IconButton'
toolbar: {
flex: '0 0 auto',
display: 'flex',
whiteSpace: 'nowrap',
marginLeft: theme.spacing(1),
marginBottom: theme.spacing(1),
marginRight: theme.spacing(1)
},
flex: '0 0 auto',
display: 'flex',
whiteSpace: 'nowrap',
leftSection: {
flexGrow: 1,
},
rightSection: {
flexShrink: 0
},
border: 'none',
borderRadius: '50%',
display: 'inline-flex',
padding: theme.spacing(1.5) + 'px',
'& *': {
color: theme.palette[color].main
}
class Toolbar extends React.Component {
constructor(props, context) {
super(props, context)
autoBind(this)
}
const { viewType, onViewTypeChange, classes, showInfo, onShowInfoChange } =
this.props
const buttonSize = 'small'
const iconButtonSize = 'medium'
<div className={classes.toolbar}>
<div className={[classes.buttons, classes.leftSection].join(' ')}>
<Button
classes={{ root: classes.button }}
color={color}
variant='outlined'
startIcon={<CreateNewFolderIcon />}
>
{messages.get(messages.NEW_FOLDER)}
</Button>
</div>
<div className={[classes.buttons, classes.rightSection].join(' ')}>
<ToggleButton
classes={{ root: classes.toggleButton }}
color={color}
selected={showInfo}
onChange={onShowInfoChange}
value={messages.get(messages.INFO)}
aria-label={messages.get(messages.INFO)}
>
<InfoIcon />
</ToggleButton>
classes={{ root: classes.button }}
color={color}
variant='outlined'
>
<SearchIcon />
{viewType === 'list' && (
classes={{ root: classes.button }}
color={color}
variant='outlined'
onClick={() => onViewTypeChange('grid')}
>
<ViewComfyIcon />
)}
{viewType === 'grid' && (
classes={{ root: classes.button }}
color={color}
onClick={() => onViewTypeChange('list')}
<ViewListIcon />
)}
classes={{ root: classes.button }}
color={color}
<SettingsIcon />
<Button
classes={{ root: classes.button }}
color={color}
variant='contained'
startIcon={<PublishIcon />}
>
{messages.get(messages.UPLOAD)}
</div>
}
export default withStyles(styles)(Toolbar)