add a module on tab management
This commit is contained in:
		
							parent
							
								
									ec730cfc5d
								
							
						
					
					
						commit
						9cf8abee70
					
				
					 2 changed files with 34 additions and 1 deletions
				
			
		|  | @ -1,5 +1,8 @@ | |||
| // Manage the sidepanel. 
 | ||||
| // The sidepanel is what I'll call the Sidebar. 
 | ||||
| 
 | ||||
| import Tabs from './tabs.js'; | ||||
| 
 | ||||
| export default class Sidebar { | ||||
| 	/*  | ||||
| 	Create a new sidebar.  | ||||
|  | @ -11,7 +14,7 @@ export default class Sidebar { | |||
| 		chrome.sidePanel.setOptions({ path: PATH }); | ||||
| 		 | ||||
| 		// Grab the current tab ID. 
 | ||||
| 		chrome.tabs.query({ active: true, currentWindow: true }, function ([TAB]) { | ||||
| 		Tabs.query({ active: true, currentWindow: true }, 0).then((TAB) => { | ||||
| 			chrome.sidePanel.open({windowId: TAB.id}); | ||||
| 			this.root = PATH; | ||||
| 		}); | ||||
|  |  | |||
							
								
								
									
										30
									
								
								scripts/GUI/tabs.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								scripts/GUI/tabs.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,30 @@ | |||
| export default class Tabs { | ||||
|      static addActionListener(event, callback) { | ||||
| 		(event.toLowerCase().contains(`update`)) ? chrome.tabs.onUpdated.addListener(async (tabId, info, tab) => {callback({"tabId": tabId, "info": info, "tab": tab})}) : false; | ||||
| 	}; | ||||
| 
 | ||||
|      static create(URL, index, pinned = false) { | ||||
|           ((typeof index).includes(`obj`) && index != null && !Array.isArray(index)) | ||||
|           // Set the options. 
 | ||||
|           let OPTIONS = {url: URL, active: true, pinned: pinned}; | ||||
|           (index) ? OPTIONS.index = index : null; | ||||
| 
 | ||||
|           // Create the tab. 
 | ||||
|           chrome.tabs.create(OPTIONS); | ||||
|      } | ||||
| 
 | ||||
|      /* Filters all tabs and returns a result. | ||||
|       | ||||
|      @param {Object} filters The filters on tab search | ||||
|      @param {number} index the tab number to return | ||||
|      */ | ||||
|      static async query(filters, index) { | ||||
|           filters = ((typeof filters).includes(`obj`)) ? filters : { active: true, currentWindow: true}; | ||||
|           let TABS = {}; | ||||
| 
 | ||||
|           TABS.all = await chrome.tabs.query(filters); | ||||
|           TABS.result = ((Array.isArray(TABS.all) ? (TABS.all).length > 0 : false) && ((index != null && (typeof index).contains(`num`)) ? index >= 0 : false)) ? TABS.all[index] : ((Array.isArray(TABS.all) ? (TABS.all).length > 0 : false) ? TABS.all : null); | ||||
| 
 | ||||
|           return (TABS.result); | ||||
|      } | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue