aboutsummaryrefslogtreecommitdiffstats
path: root/src/features/workspaces/components/WorkspaceServiceListItem.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/features/workspaces/components/WorkspaceServiceListItem.tsx')
-rw-r--r--src/features/workspaces/components/WorkspaceServiceListItem.tsx66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/features/workspaces/components/WorkspaceServiceListItem.tsx b/src/features/workspaces/components/WorkspaceServiceListItem.tsx
new file mode 100644
index 000000000..b6faaf4ce
--- /dev/null
+++ b/src/features/workspaces/components/WorkspaceServiceListItem.tsx
@@ -0,0 +1,66 @@
1import { Component } from 'react';
2import { observer } from 'mobx-react';
3import injectSheet from 'react-jss';
4import classnames from 'classnames';
5import { Toggle } from '@meetfranz/forms';
6
7import ServiceIcon from '../../../components/ui/ServiceIcon';
8
9const styles = theme => ({
10 listItem: {
11 height: theme.workspaces.settings.listItems.height,
12 borderBottom: `1px solid ${theme.workspaces.settings.listItems.borderColor}`,
13 display: 'flex',
14 alignItems: 'center',
15 },
16 serviceIcon: {
17 padding: theme.workspaces.settings.listItems.padding,
18 },
19 toggle: {
20 height: 'auto',
21 margin: 0,
22 },
23 label: {
24 padding: theme.workspaces.settings.listItems.padding,
25 flexGrow: 1,
26 },
27 disabledLabel: {
28 color: theme.workspaces.settings.listItems.disabled.color,
29 },
30});
31
32type Props = {
33 classes: any;
34 isInWorkspace: boolean;
35 onToggle: () => void;
36 service: any;
37};
38
39@injectSheet(styles)
40@observer
41class WorkspaceServiceListItem extends Component<Props> {
42 render() {
43 const { classes, isInWorkspace, onToggle, service } = this.props;
44
45 return (
46 <div className={classes.listItem}>
47 <ServiceIcon className={classes.serviceIcon} service={service} />
48 <span
49 className={classnames([
50 classes.label,
51 service.isEnabled ? null : classes.disabledLabel,
52 ])}
53 >
54 {service.name}
55 </span>
56 <Toggle
57 className={classes.toggle}
58 checked={isInWorkspace}
59 onChange={onToggle}
60 />
61 </div>
62 );
63 }
64}
65
66export default WorkspaceServiceListItem;