From 1839eff4fcad186871672499b6c3cc68e9539ce2 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Thu, 9 Nov 2017 12:11:16 +0100 Subject: feat(Service): Add option to display disabled services in tabs --- src/components/services/tabs/TabBarSortableList.js | 3 +++ src/components/services/tabs/TabItem.js | 11 +++++++++-- src/components/services/tabs/Tabbar.js | 15 ++++++++++++--- 3 files changed, 24 insertions(+), 5 deletions(-) (limited to 'src/components/services/tabs') diff --git a/src/components/services/tabs/TabBarSortableList.js b/src/components/services/tabs/TabBarSortableList.js index e5ae36419..3340cbbbb 100644 --- a/src/components/services/tabs/TabBarSortableList.js +++ b/src/components/services/tabs/TabBarSortableList.js @@ -24,6 +24,7 @@ class TabBarSortableList extends Component { toggleNotifications: PropTypes.func.isRequired, deleteService: PropTypes.func.isRequired, disableService: PropTypes.func.isRequired, + enableService: PropTypes.func.isRequired, } static contextTypes = { @@ -38,6 +39,7 @@ class TabBarSortableList extends Component { toggleNotifications, deleteService, disableService, + enableService, openSettings, } = this.props; @@ -58,6 +60,7 @@ class TabBarSortableList extends Component { toggleNotifications={() => toggleNotifications({ serviceId: service.id })} deleteService={() => deleteService({ serviceId: service.id })} disableService={() => disableService({ serviceId: service.id })} + enableService={() => enableService({ serviceId: service.id })} openSettings={openSettings} /> ))} diff --git a/src/components/services/tabs/TabItem.js b/src/components/services/tabs/TabItem.js index 9e03d2e21..638e17d95 100644 --- a/src/components/services/tabs/TabItem.js +++ b/src/components/services/tabs/TabItem.js @@ -32,6 +32,10 @@ const messages = defineMessages({ id: 'tabs.item.disableService', defaultMessage: '!!!Disable Service', }, + enableService: { + id: 'tabs.item.enableService', + defaultMessage: '!!!Enable Service', + }, deleteService: { id: 'tabs.item.deleteService', defaultMessage: '!!!Delete Service', @@ -49,6 +53,7 @@ class TabItem extends Component { openSettings: PropTypes.func.isRequired, deleteService: PropTypes.func.isRequired, disableService: PropTypes.func.isRequired, + enableService: PropTypes.func.isRequired, }; static contextTypes = { @@ -64,6 +69,7 @@ class TabItem extends Component { toggleNotifications, deleteService, disableService, + enableService, openSettings, } = this.props; const { intl } = this.context; @@ -90,8 +96,8 @@ class TabItem extends Component { : intl.formatMessage(messages.enableNotifications), click: () => toggleNotifications(), }, { - label: intl.formatMessage(messages.disableService), - click: () => disableService(), + label: intl.formatMessage(service.isEnabled ? messages.disableService : messages.enableService), + click: () => (service.isEnabled ? disableService() : enableService()), }, { type: 'separator', }, { @@ -106,6 +112,7 @@ class TabItem extends Component { 'tab-item': true, 'is-active': service.isActive, 'has-custom-icon': service.hasCustomIcon, + 'is-disabled': !service.isEnabled, })} onClick={clickHandler} onContextMenu={() => menu.popup(remote.getCurrentWindow())} diff --git a/src/components/services/tabs/Tabbar.js b/src/components/services/tabs/Tabbar.js index fdb2c0a59..5f63aed16 100644 --- a/src/components/services/tabs/Tabbar.js +++ b/src/components/services/tabs/Tabbar.js @@ -29,20 +29,28 @@ export default class TabBar extends Component { reorder({ oldIndex, newIndex }); }; - disableService = ({ serviceId }) => { + toggleService = ({ serviceId, isEnabled }) => { const { updateService } = this.props; if (serviceId) { updateService({ serviceId, serviceData: { - isEnabled: false, + isEnabled, }, redirect: false, }); } } + disableService({ serviceId }) { + this.toggleService({ serviceId, isEnabled: false }); + } + + enableService({ serviceId }) { + this.toggleService({ serviceId, isEnabled: true }); + } + render() { const { services, @@ -64,7 +72,8 @@ export default class TabBar extends Component { reload={reload} toggleNotifications={toggleNotifications} deleteService={deleteService} - disableService={this.disableService} + disableService={args => this.disableService(args)} + enableService={args => this.enableService(args)} openSettings={openSettings} distance={20} axis="y" -- cgit v1.2.3-70-g09d2