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