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:
@@ -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'))
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user