diff options
Diffstat (limited to 'src/mainFilesSidebarLoader.js')
-rw-r--r-- | src/mainFilesSidebarLoader.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/mainFilesSidebarLoader.js b/src/mainFilesSidebarLoader.js new file mode 100644 index 000000000..d2ab43e6c --- /dev/null +++ b/src/mainFilesSidebarLoader.js @@ -0,0 +1,50 @@ +/** + * @copyright Copyright (c) 2019 Marco Ambrosini <marcoambrosini@pm.me> + * + * @author Marco Ambrosini <marcoambrosini@pm.me> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +import FilesSidebarCallView from './views/FilesSidebarCallView' +import FilesSidebarTab from './views/FilesSidebarTab' +import { leaveConversation } from './services/participantsService' + +const isEnabled = function(fileInfo) { + if (fileInfo && !fileInfo.isDirectory()) { + return true + } + + // If the Talk tab can not be displayed then the current conversation is + // left; this must be done here because "setFileInfo" will not get + // called with the new file if the tab can not be displayed. + leaveConversation(OCA.Talk.store.getters.getToken()) + + OCA.Talk.store.dispatch('updateTokenAndFileIdForToken', { + newToken: null, + newFileId: null, + }) + + return false +} + +window.addEventListener('DOMContentLoaded', () => { + if (OCA.Files && OCA.Files.Sidebar) { + OCA.Files.Sidebar.registerSecondaryView(new FilesSidebarCallView()) + OCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab('talk-chat', FilesSidebarTab, isEnabled)) + } +}) |