aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/services
diff options
context:
space:
mode:
authorLibravatar Darko Bozhinovski <dbozhinovski@gmail.com>2017-10-27 00:24:04 +0200
committerLibravatar Darko Bozhinovski <dbozhinovski@gmail.com>2017-10-27 00:24:04 +0200
commit6c8719f958db7e1e2409a51c296db9c1ebe60c9f (patch)
treeafc0c4a32216ca0322b6e05f431fdc0089c381cc /src/components/services
parentFixes #111 on mainline (diff)
downloadferdium-app-6c8719f958db7e1e2409a51c296db9c1ebe60c9f.tar.gz
ferdium-app-6c8719f958db7e1e2409a51c296db9c1ebe60c9f.tar.zst
ferdium-app-6c8719f958db7e1e2409a51c296db9c1ebe60c9f.zip
Adds intl support for addNewService (sans translations)
Diffstat (limited to 'src/components/services')
-rw-r--r--src/components/services/tabs/TabBarSortableList.js110
-rw-r--r--src/components/services/tabs/Tabbar.js3
2 files changed, 75 insertions, 38 deletions
diff --git a/src/components/services/tabs/TabBarSortableList.js b/src/components/services/tabs/TabBarSortableList.js
index c0a68d1a5..e5ae36419 100644
--- a/src/components/services/tabs/TabBarSortableList.js
+++ b/src/components/services/tabs/TabBarSortableList.js
@@ -1,44 +1,78 @@
1import React from 'react'; 1import React, { Component } from 'react';
2import { observer } from 'mobx-react'; 2import { observer, PropTypes as MobxPropTypes } from 'mobx-react';
3import PropTypes from 'prop-types';
3import { SortableContainer } from 'react-sortable-hoc'; 4import { SortableContainer } from 'react-sortable-hoc';
5import { defineMessages, intlShape } from 'react-intl';
4 6
5import TabItem from './TabItem'; 7import TabItem from './TabItem';
6import { ctrlKey } from '../../../environment'; 8import { ctrlKey } from '../../../environment';
7 9
8export default SortableContainer(observer(({ 10const messages = defineMessages({
9 services, 11 addNewService: {
10 setActive, 12 id: 'sidebar.addNewService',
11 reload, 13 defaultMessage: '!!!Add new service',
12 toggleNotifications, 14 },
13 deleteService, 15});
14 disableService, 16
15 openSettings, 17@observer
16}) => ( 18class TabBarSortableList extends Component {
17 <ul 19 static propTypes = {
18 className="tabs" 20 services: MobxPropTypes.arrayOrObservableArray.isRequired,
19 > 21 setActive: PropTypes.func.isRequired,
20 {services.map((service, index) => ( 22 openSettings: PropTypes.func.isRequired,
21 <TabItem 23 reload: PropTypes.func.isRequired,
22 key={service.id} 24 toggleNotifications: PropTypes.func.isRequired,
23 clickHandler={() => setActive({ serviceId: service.id })} 25 deleteService: PropTypes.func.isRequired,
24 service={service} 26 disableService: PropTypes.func.isRequired,
25 index={index} 27 }
26 shortcutIndex={index + 1} 28
27 reload={() => reload({ serviceId: service.id })} 29 static contextTypes = {
28 toggleNotifications={() => toggleNotifications({ serviceId: service.id })} 30 intl: intlShape,
29 deleteService={() => deleteService({ serviceId: service.id })} 31 };
30 disableService={() => disableService({ serviceId: service.id })} 32
31 openSettings={openSettings} 33 render() {
32 /> 34 const {
33 ))} 35 services,
34 <li> 36 setActive,
35 <button 37 reload,
36 className="sidebar__add-service" 38 toggleNotifications,
37 onClick={() => openSettings({ path: 'recipes' })} 39 deleteService,
38 data-tip={`Add new service (${ctrlKey}+N)`} 40 disableService,
41 openSettings,
42 } = this.props;
43
44 const { intl } = this.context;
45
46 return (
47 <ul
48 className="tabs"
39 > 49 >
40 <span className="mdi mdi-plus" /> 50 {services.map((service, index) => (
41 </button> 51 <TabItem
42 </li> 52 key={service.id}
43 </ul> 53 clickHandler={() => setActive({ serviceId: service.id })}
44))); 54 service={service}
55 index={index}
56 shortcutIndex={index + 1}
57 reload={() => reload({ serviceId: service.id })}
58 toggleNotifications={() => toggleNotifications({ serviceId: service.id })}
59 deleteService={() => deleteService({ serviceId: service.id })}
60 disableService={() => disableService({ serviceId: service.id })}
61 openSettings={openSettings}
62 />
63 ))}
64 <li>
65 <button
66 className="sidebar__add-service"
67 onClick={() => openSettings({ path: 'recipes' })}
68 data-tip={`${intl.formatMessage(messages.addNewService)} (${ctrlKey}+N)`}
69 >
70 <span className="mdi mdi-plus" />
71 </button>
72 </li>
73 </ul>
74 );
75 }
76}
77
78export default SortableContainer(TabBarSortableList);
diff --git a/src/components/services/tabs/Tabbar.js b/src/components/services/tabs/Tabbar.js
index fdb2c0a59..c1ee924da 100644
--- a/src/components/services/tabs/Tabbar.js
+++ b/src/components/services/tabs/Tabbar.js
@@ -54,6 +54,8 @@ export default class TabBar extends Component {
54 deleteService, 54 deleteService,
55 } = this.props; 55 } = this.props;
56 56
57 const { intl } = this.context;
58
57 return ( 59 return (
58 <div> 60 <div>
59 <TabBarSortableList 61 <TabBarSortableList
@@ -70,6 +72,7 @@ export default class TabBar extends Component {
70 axis="y" 72 axis="y"
71 lockAxis="y" 73 lockAxis="y"
72 helperClass="is-reordering" 74 helperClass="is-reordering"
75 intl={intl}
73 /> 76 />
74 </div> 77 </div>
75 ); 78 );