aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/services/tabs/TabBarSortableList.js
blob: c0a68d1a58a4aa526fd45acc796c31e13db86a02 (plain) (blame)
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
40
41
42
43
44
import React from 'react';
import { observer } from 'mobx-react';
import { SortableContainer } from 'react-sortable-hoc';

import TabItem from './TabItem';
import { ctrlKey } from '../../../environment';

export default SortableContainer(observer(({
  services,
  setActive,
  reload,
  toggleNotifications,
  deleteService,
  disableService,
  openSettings,
}) => (
  <ul
    className="tabs"
  >
    {services.map((service, index) => (
      <TabItem
        key={service.id}
        clickHandler={() => setActive({ serviceId: service.id })}
        service={service}
        index={index}
        shortcutIndex={index + 1}
        reload={() => reload({ serviceId: service.id })}
        toggleNotifications={() => toggleNotifications({ serviceId: service.id })}
        deleteService={() => deleteService({ serviceId: service.id })}
        disableService={() => disableService({ serviceId: service.id })}
        openSettings={openSettings}
      />
    ))}
    <li>
      <button
        className="sidebar__add-service"
        onClick={() => openSettings({ path: 'recipes' })}
        data-tip={`Add new service (${ctrlKey}+N)`}
      >
        <span className="mdi mdi-plus" />
      </button>
    </li>
  </ul>
)));