forked from codesandbox/codesandbox-client
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFile.tsx
More file actions
39 lines (33 loc) · 856 Bytes
/
File.tsx
File metadata and controls
39 lines (33 loc) · 856 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import * as React from 'react';
import classNames from 'classnames';
import cn from '../../../utils/cn';
export interface Props {
path: string;
selectFile?: (path: string) => void;
active?: boolean;
onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
}
export default class File extends React.PureComponent<Props> {
selectFile = () => {
if (this.props.selectFile) {
this.props.selectFile(this.props.path);
}
};
render() {
const fileName = this.props.path
.split('/')
.filter(Boolean)
.pop();
const className = classNames(cn('File', 'container'), {
[cn('File', 'active')]: this.props.active,
});
return (
<div
onClick={this.props.selectFile ? this.selectFile : this.props.onClick}
className={className}
>
{fileName}
</div>
);
}
}