import * as React from "react";
import { TreeItem } from "../tree/tree";
import { ProjectIcon, MoreOptionsIcon, DefaultIcon, CollectionIcon } from "../icon/icon";
-import { Typography, IconButton, StyleRulesCallback, withStyles, WithStyles } from "@material-ui/core";
+import { Typography, IconButton, StyleRulesCallback, withStyles, WithStyles, Tooltip } from '@material-ui/core';
import { formatFileSize } from "~/common/formatters";
import { ListItemTextIcon } from "../list-item-text-icon/list-item-text-icon";
import { FileTreeData } from "./file-tree-data";
-type CssRules = "root" | "spacer" | "sizeInfo" | "button";
+type CssRules = "root" | "spacer" | "sizeInfo" | "button" | "moreOptions";
const fileTreeItemStyle: StyleRulesCallback<CssRules> = theme => ({
root: {
button: {
width: theme.spacing.unit * 3,
height: theme.spacing.unit * 3,
- marginRight: theme.spacing.unit
+ marginRight: theme.spacing.unit,
+ },
+ moreOptions: {
+ position: 'absolute'
}
});
<Typography
className={classes.sizeInfo}
variant="caption">{formatFileSize(item.data.size)}</Typography>
- <IconButton
- className={classes.button}
- onClick={this.handleClick}>
- <MoreOptionsIcon />
- </IconButton>
+ <Tooltip title="More options" disableFocusListener>
+ <IconButton
+ className={classes.button}
+ onClick={this.handleClick}>
+ <MoreOptionsIcon className={classes.moreOptions}/>
+ </IconButton>
+ </Tooltip>
</div >;
}
});
const getIcon = (item: TreeItem<FileTreeData>) => {
- switch(item.data.type){
+ switch (item.data.type) {
case 'directory':
return ProjectIcon;
case 'file':