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
+2 -2
View File
@@ -10,7 +10,7 @@ import {
$sessionPreviewRegistry,
beginPreviewServerRestart,
clearSessionPreviewRegistry,
dismissFilePreviewTarget,
closeActiveRightRailTab,
dismissPreviewTarget,
getSessionPreviewRecord,
type PreviewTarget,
@@ -114,7 +114,7 @@ describe('preview store', () => {
expect($previewTarget.get()).toEqual(withRenderMode(preview, 'preview'))
expect(getSessionPreviewRecord('session-1')?.normalized).toEqual(withRenderMode(preview, 'preview'))
dismissFilePreviewTarget()
closeActiveRightRailTab()
expect($filePreviewTarget.get()).toBeNull()
expect($previewTarget.get()).toEqual(withRenderMode(preview, 'preview'))
+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)