1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/dashboard-ui/bower_components/emby-webcomponents/tabbedview/tabbedview.js

1 line
2 KiB
JavaScript
Raw Normal View History

2017-11-29 15:43:41 -05:00
define(["backdrop","mainTabsManager","emby-tabs"],function(backdrop,mainTabsManager){"use strict";function onViewDestroy(e){var tabControllers=this.tabControllers;tabControllers&&(tabControllers.forEach(function(t){t.destroy&&t.destroy()}),this.tabControllers=null),this.view=null,this.params=null}function onBeforeTabChange(){}function TabbedView(view,params){function validateTabLoad(index){return self.validateTabLoad?self.validateTabLoad(index):Promise.resolve()}function loadTab(index){validateTabLoad(index).then(function(){self.getTabController(index).then(function(controller){var refresh=!controller.refreshed;controller.onResume({autoFocus:null!=initialTabIndex,refresh:refresh}),controller.refreshed=!0,initialTabIndex=null,currentTabIndex=index,currentTabController=controller})})}function getTabContainers(){return view.querySelectorAll(".tabContent")}function onTabChange(e){var newIndex=parseInt(e.detail.selectedTabIndex),previousTabController=null==e.detail.previousIndex?null:self.tabControllers[e.detail.previousIndex];previousTabController&&previousTabController.onPause&&previousTabController.onPause(),loadTab(newIndex)}this.tabControllers=[],this.view=view,this.params=params;var currentTabController,self=this,currentTabIndex=parseInt(params.tab||this.getDefaultTabIndex(params.parentId)),initialTabIndex=currentTabIndex;view.addEventListener("viewbeforehide",function(e){currentTabController&&currentTabController.onPause&&currentTabController.onPause()}),view.addEventListener("viewbeforeshow",function(e){mainTabsManager.setTabs(view,currentTabIndex,self.getTabs,getTabContainers,onBeforeTabChange,onTabChange,!1)}),view.addEventListener("viewshow",function(e){var isViewRestored=e.detail.isRestored;self.setTitle(),backdrop.clear(),isViewRestored?currentTabController&&currentTabController.onResume&&currentTabController.onResume({}):mainTabsManager.selectedTabIndex(initialTabIndex)}),view.addEventListener("viewdestroy",onViewDestroy.bind(this))}return TabbedView.prototype.setTitle=function(){Emby.Page.setTitle("")},TabbedView});