mirror of
https://github.com/zen-browser/desktop.git
synced 2025-10-06 09:56:36 +00:00
Refactor tab addition logic and streamline tab filtering in Zen components
This commit is contained in:
@@ -600,10 +600,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
addToEssentials(tab) {
|
addToEssentials(tab) {
|
||||||
const tabs = tab ? (
|
const tabs = tab
|
||||||
// if it's already an array, dont make it [tab]
|
? // if it's already an array, dont make it [tab]
|
||||||
tab?.length ? tab : [tab]
|
tab?.length
|
||||||
) : TabContextMenu.contextTab.multiselected ? gBrowser.selectedTabs : [TabContextMenu.contextTab];
|
? tab
|
||||||
|
: [tab]
|
||||||
|
: TabContextMenu.contextTab.multiselected
|
||||||
|
? gBrowser.selectedTabs
|
||||||
|
: [TabContextMenu.contextTab];
|
||||||
for (let i = 0; i < tabs.length; i++) {
|
for (let i = 0; i < tabs.length; i++) {
|
||||||
const tab = tabs[i];
|
const tab = tabs[i];
|
||||||
if (tab.hasAttribute('zen-essential')) {
|
if (tab.hasAttribute('zen-essential')) {
|
||||||
|
@@ -824,9 +824,7 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
|
|||||||
* @param {string} gridType - The type of grid layout.
|
* @param {string} gridType - The type of grid layout.
|
||||||
*/
|
*/
|
||||||
splitTabs(tabs, gridType, initialIndex = 0) {
|
splitTabs(tabs, gridType, initialIndex = 0) {
|
||||||
tabs = tabs.filter(
|
tabs = tabs.filter((t) => !t.hidden && !t.hasAttribute('zen-empty-tab'));
|
||||||
(t) => !t.hidden && !t.hasAttribute('zen-empty-tab')
|
|
||||||
);
|
|
||||||
if (tabs.length < 2 || tabs.length > this.MAX_TABS) {
|
if (tabs.length < 2 || tabs.length > this.MAX_TABS) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1494,15 +1492,19 @@ class ZenViewSplitter extends ZenDOMOperatedFeature {
|
|||||||
// Put tabs always as if it was dropped from the left
|
// Put tabs always as if it was dropped from the left
|
||||||
this.splitTabs([draggedTab, droppedOnTab], gridType, 1);
|
this.splitTabs([draggedTab, droppedOnTab], gridType, 1);
|
||||||
if (draggedTab.linkedBrowser) {
|
if (draggedTab.linkedBrowser) {
|
||||||
gZenUIManager.motion.animate(draggedTab.linkedBrowser.closest('.browserSidebarContainer'), {
|
gZenUIManager.motion.animate(
|
||||||
scale: [0.98, 1],
|
draggedTab.linkedBrowser.closest('.browserSidebarContainer'),
|
||||||
opacity: [0, 1],
|
{
|
||||||
}, {
|
scale: [0.98, 1],
|
||||||
type: 'spring',
|
opacity: [0, 1],
|
||||||
bounce: 0.6,
|
},
|
||||||
duration: 0.5,
|
{
|
||||||
delay: 0.1,
|
type: 'spring',
|
||||||
});
|
bounce: 0.6,
|
||||||
|
duration: 0.5,
|
||||||
|
delay: 0.1,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user