refactor(desktop): tighten right-rail tab close API

Promote closeRightRailTab/closeActiveRightRailTab as the single
public entry point. Drops the activeTabRef + handleCloseDocument
indirection in ChatPreviewRail, the unused $rightRailHasContent
atom, and the legacy dismissFilePreviewTarget alias. -70 LOC.
This commit is contained in:
Brooklyn Nicholson
2026-05-05 13:27:05 -05:00
parent dda3894523
commit c9987f1e22
4 changed files with 23 additions and 93 deletions
+6 -15
View File
@@ -58,9 +58,6 @@ export const $filePreviewTarget = computed([$filePreviewTabs, $rightRailActiveTa
return tabs.find(tab => tab.id === activeTabId)?.target ?? null
})
export const $rightRailHasContent = computed([$previewTarget, $filePreviewTabs], (target, tabs) =>
Boolean(target || tabs.length)
)
export const $previewReloadRequest = atom(0)
export const $previewServerRestart = atom<PreviewServerRestart | null>(null)
export const $previewServerRestartStatus = computed($previewServerRestart, restart => restart?.status ?? 'idle')
@@ -368,7 +365,7 @@ export function dismissPreviewTarget() {
}
}
export function closeFilePreviewTab(tabId: RightRailTabId) {
function closeFilePreviewTab(tabId: RightRailTabId) {
if (!tabId.startsWith('file:')) {
return
}
@@ -389,14 +386,8 @@ export function closeFilePreviewTab(tabId: RightRailTabId) {
}
}
export function dismissFilePreviewTarget() {
closeFilePreviewTab($rightRailActiveTabId.get())
}
export function closeActiveRightRailTab() {
const activeTabId = $rightRailActiveTabId.get()
if (activeTabId === RIGHT_RAIL_PREVIEW_TAB_ID) {
export function closeRightRailTab(tabId: RightRailTabId) {
if (tabId === RIGHT_RAIL_PREVIEW_TAB_ID) {
if ($previewTarget.get()) {
dismissPreviewTarget()
}
@@ -404,11 +395,11 @@ export function closeActiveRightRailTab() {
return
}
if (activeTabId.startsWith('file:')) {
closeFilePreviewTab(activeTabId)
}
closeFilePreviewTab(tabId)
}
export const closeActiveRightRailTab = () => closeRightRailTab($rightRailActiveTabId.get())
export function clearSessionPreviewRegistry() {
$sessionPreviewRegistry.set({})
setPreviewTarget(null)