fix(ui): keep right panel layout in empty states

Render SplitFilePanel consistently and move empty/loading messages into the viewer area so the right drawer keeps its standard layout even when there are no session diffs, no git changes, or files are still loading.
This commit is contained in:
Shantur Rathore
2026-02-11 10:51:27 +00:00
parent a93252621a
commit d34e0163e3
3 changed files with 160 additions and 164 deletions

View File

@@ -37,15 +37,8 @@ interface FilesTabProps {
const FilesTab: Component<FilesTabProps> = (props) => {
const renderContent = (): JSX.Element => {
if (props.browserLoading() && props.browserEntries() === null) {
return (
<div class="right-panel-empty">
<span class="text-xs">Loading files...</span>
</div>
)
}
const entries = props.browserEntries() || []
const entriesValue = props.browserEntries()
const entries = entriesValue || []
const sorted = [...entries].sort((a, b) => {
const aDir = a.type === "directory" ? 0 : 1
const bDir = b.type === "directory" ? 0 : 1
@@ -57,6 +50,11 @@ const FilesTab: Component<FilesTabProps> = (props) => {
const headerDisplayedPath = () => props.browserSelectedPath() || props.browserPath()
const emptyViewerMessage = () => {
if (props.browserLoading() && entriesValue === null) return "Loading files..."
return "Select a file to preview"
}
const renderViewer = () => (
<div class="file-viewer-panel flex-1">
<div class="file-viewer-content file-viewer-content--monaco">
@@ -74,7 +72,7 @@ const FilesTab: Component<FilesTabProps> = (props) => {
}
fallback={
<div class="file-viewer-empty">
<span class="file-viewer-empty-text">Select a file to preview</span>
<span class="file-viewer-empty-text">{emptyViewerMessage()}</span>
</div>
}
>
@@ -114,6 +112,10 @@ const FilesTab: Component<FilesTabProps> = (props) => {
)}
</Show>
<Show when={props.browserLoading() && entriesValue === null}>
<div class="p-3 text-xs text-secondary">Loading files...</div>
</Show>
<For each={sorted}>
{(item) => (
<div