Chat View Refinement
Nucleic-Session: 4E56990A-96AE-4597-9140-753CB82E769D Co-authored-by: Nucleic <[email protected]>
This commit is contained in:
@@ -21,39 +21,16 @@ struct SessionDetailView: View {
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
Group {
|
||||
if tab == 0 {
|
||||
TranscriptList(events: store.openEvents)
|
||||
} else if store.capabilities.canFetchDiff || store.openDiff != nil {
|
||||
SessionDiffView(diff: store.openDiff, loading: store.diffLoading)
|
||||
.onAppear { store.fetchDiff(sessionID) }
|
||||
} else {
|
||||
// Older host with no on-demand diff — the stat summary is all it projects.
|
||||
DiffSummaryView(diffStat: summary?.diffStat)
|
||||
TranscriptList(events: store.openEvents)
|
||||
// The chat bar floats over the scrolling content on Liquid Glass instead of sitting
|
||||
// in a boxed strip below it, so the transcript runs the full height of the screen.
|
||||
.safeAreaInset(edge: .bottom) { actionArea }
|
||||
.navigationTitle(summary?.title ?? "Session")
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
.toolbar {
|
||||
ToolbarItem(placement: .topBarTrailing) { sessionMenu }
|
||||
}
|
||||
}
|
||||
// The chat bar floats over the scrolling content on Liquid Glass instead of sitting in
|
||||
// a boxed strip below it, so the transcript runs the full height of the screen.
|
||||
.safeAreaInset(edge: .bottom) { actionArea }
|
||||
.navigationTitle(summary?.title ?? "Session")
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
.toolbar {
|
||||
// Transcript/Diff lives in the navigation bar (icon segments) rather than a
|
||||
// dedicated row — it's a mode flip, not content, and shouldn't cost chat height.
|
||||
ToolbarItem(placement: .topBarTrailing) {
|
||||
Picker("View", selection: $tab) {
|
||||
Image(systemName: "text.bubble").tag(0)
|
||||
.accessibilityLabel("Transcript")
|
||||
Image(systemName: "plus.forwardslash.minus").tag(1)
|
||||
.accessibilityLabel("Diff")
|
||||
}
|
||||
.pickerStyle(.segmented)
|
||||
.fixedSize()
|
||||
}
|
||||
if let summary, store.canControl {
|
||||
ToolbarItem(placement: .topBarTrailing) { sessionMenu(summary) }
|
||||
}
|
||||
}
|
||||
.sheet(isPresented: $showDiff) { diffSheet }
|
||||
.alert("Rename chat", isPresented: $showRename) {
|
||||
TextField("Title", text: $renameDraft)
|
||||
Button("Cancel", role: .cancel) {}
|
||||
|
||||
Reference in New Issue
Block a user