Skip to content

Commit f01aa49

Browse files
refactor: address pr comments.
1 parent 1929ed4 commit f01aa49

1 file changed

Lines changed: 59 additions & 56 deletions

File tree

src/app.js

Lines changed: 59 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1651,12 +1651,13 @@ const renderWorkspaceTabs = () => {
16511651

16521652
for (const tab of tabs) {
16531653
const isActive = tab.id === activeTabId
1654+
const isRenaming = workspaceTabRenameState.tabId === tab.id
16541655
const tabContainer = document.createElement('li')
16551656
tabContainer.className = 'workspace-tab'
16561657
tabContainer.dataset.active = isActive ? 'true' : 'false'
16571658
tabContainer.dataset.tabId = tab.id
16581659
tabContainer.setAttribute('aria-label', `Workspace tab ${tab.name}`)
1659-
tabContainer.draggable = true
1660+
tabContainer.draggable = !isRenaming
16601661
tabContainer.dataset.dragOver =
16611662
dragOverWorkspaceTabId && dragOverWorkspaceTabId === tab.id ? 'true' : 'false'
16621663
tabContainer.addEventListener('click', event => {
@@ -1678,70 +1679,72 @@ const renderWorkspaceTabs = () => {
16781679

16791680
setActiveWorkspaceTab(tab.id)
16801681
})
1681-
tabContainer.addEventListener('dragstart', event => {
1682-
draggedWorkspaceTabId = tab.id
1683-
dragOverWorkspaceTabId = ''
1684-
suppressWorkspaceTabClick = true
1685-
if (event.dataTransfer) {
1686-
event.dataTransfer.effectAllowed = 'move'
1687-
event.dataTransfer.setData('text/plain', tab.id)
1688-
}
1689-
})
1690-
tabContainer.addEventListener('dragend', () => {
1691-
clearWorkspaceTabDragState()
1692-
queueMicrotask(() => {
1693-
suppressWorkspaceTabClick = false
1682+
if (!isRenaming) {
1683+
tabContainer.addEventListener('dragstart', event => {
1684+
draggedWorkspaceTabId = tab.id
1685+
dragOverWorkspaceTabId = ''
1686+
suppressWorkspaceTabClick = true
1687+
if (event.dataTransfer) {
1688+
event.dataTransfer.effectAllowed = 'move'
1689+
event.dataTransfer.setData('text/plain', tab.id)
1690+
}
16941691
})
1695-
renderWorkspaceTabs()
1696-
})
1697-
tabContainer.addEventListener('dragover', event => {
1698-
if (!draggedWorkspaceTabId || draggedWorkspaceTabId === tab.id) {
1699-
return
1700-
}
1692+
tabContainer.addEventListener('dragend', () => {
1693+
clearWorkspaceTabDragState()
1694+
queueMicrotask(() => {
1695+
suppressWorkspaceTabClick = false
1696+
})
1697+
renderWorkspaceTabs()
1698+
})
1699+
tabContainer.addEventListener('dragover', event => {
1700+
if (!draggedWorkspaceTabId || draggedWorkspaceTabId === tab.id) {
1701+
return
1702+
}
17011703

1702-
event.preventDefault()
1703-
if (event.dataTransfer) {
1704-
event.dataTransfer.dropEffect = 'move'
1705-
}
1704+
event.preventDefault()
1705+
if (event.dataTransfer) {
1706+
event.dataTransfer.dropEffect = 'move'
1707+
}
17061708

1707-
if (dragOverWorkspaceTabId !== tab.id) {
1708-
dragOverWorkspaceTabId = tab.id
1709-
tabContainer.dataset.dragOver = 'true'
1710-
}
1711-
})
1712-
tabContainer.addEventListener('dragleave', event => {
1713-
const relatedTarget = event.relatedTarget
1714-
if (relatedTarget instanceof Node && tabContainer.contains(relatedTarget)) {
1715-
return
1716-
}
1709+
if (dragOverWorkspaceTabId !== tab.id) {
1710+
dragOverWorkspaceTabId = tab.id
1711+
tabContainer.dataset.dragOver = 'true'
1712+
}
1713+
})
1714+
tabContainer.addEventListener('dragleave', event => {
1715+
const relatedTarget = event.relatedTarget
1716+
if (relatedTarget instanceof Node && tabContainer.contains(relatedTarget)) {
1717+
return
1718+
}
17171719

1718-
if (dragOverWorkspaceTabId === tab.id) {
1719-
dragOverWorkspaceTabId = ''
1720-
tabContainer.dataset.dragOver = 'false'
1721-
}
1722-
})
1723-
tabContainer.addEventListener('drop', event => {
1724-
if (!draggedWorkspaceTabId || draggedWorkspaceTabId === tab.id) {
1725-
clearWorkspaceTabDragState()
1726-
renderWorkspaceTabs()
1727-
return
1728-
}
1720+
if (dragOverWorkspaceTabId === tab.id) {
1721+
dragOverWorkspaceTabId = ''
1722+
tabContainer.dataset.dragOver = 'false'
1723+
}
1724+
})
1725+
tabContainer.addEventListener('drop', event => {
1726+
event.preventDefault()
1727+
1728+
if (!draggedWorkspaceTabId || draggedWorkspaceTabId === tab.id) {
1729+
clearWorkspaceTabDragState()
1730+
renderWorkspaceTabs()
1731+
return
1732+
}
17291733

1730-
event.preventDefault()
1731-
persistActiveTabEditorContent()
1734+
persistActiveTabEditorContent()
17321735

1733-
const moved = workspaceTabsState.moveTabBefore(draggedWorkspaceTabId, tab.id)
1734-
clearWorkspaceTabDragState()
1735-
renderWorkspaceTabs()
1736+
const moved = workspaceTabsState.moveTabBefore(draggedWorkspaceTabId, tab.id)
1737+
clearWorkspaceTabDragState()
1738+
renderWorkspaceTabs()
17361739

1737-
if (!moved) {
1738-
return
1739-
}
1740+
if (!moved) {
1741+
return
1742+
}
17401743

1741-
queueWorkspaceSave()
1742-
})
1744+
queueWorkspaceSave()
1745+
})
1746+
}
17431747

1744-
const isRenaming = workspaceTabRenameState.tabId === tab.id
17451748
if (isRenaming) {
17461749
const renameInput = document.createElement('input')
17471750
renameInput.className = 'workspace-tab__name-input'

0 commit comments

Comments
 (0)