Fixed Toolbar Visibility Issue

This commit is contained in:
Beingpax 2025-03-20 19:27:06 +05:45
parent d889e3a6c2
commit c6fbb1d6be

View File

@ -52,59 +52,66 @@ struct TranscriptionHistoryView: View {
} }
var body: some View { var body: some View {
VStack(spacing: 0) { ZStack(alignment: .bottom) {
searchBar VStack(spacing: 0) {
searchBar
if displayedTranscriptions.isEmpty && !isLoading {
emptyStateView if displayedTranscriptions.isEmpty && !isLoading {
} else { emptyStateView
ScrollView { } else {
LazyVStack(spacing: 10) { ScrollView {
ForEach(displayedTranscriptions) { transcription in LazyVStack(spacing: 10) {
TranscriptionCard( ForEach(displayedTranscriptions) { transcription in
transcription: transcription, TranscriptionCard(
isExpanded: expandedTranscription == transcription, transcription: transcription,
isSelected: selectedTranscriptions.contains(transcription), isExpanded: expandedTranscription == transcription,
onDelete: { deleteTranscription(transcription) }, isSelected: selectedTranscriptions.contains(transcription),
onToggleSelection: { toggleSelection(transcription) } onDelete: { deleteTranscription(transcription) },
) onToggleSelection: { toggleSelection(transcription) }
.onTapGesture { )
expandedTranscription = expandedTranscription == transcription ? nil : transcription .onTapGesture {
} expandedTranscription = expandedTranscription == transcription ? nil : transcription
}
if hasMoreContent {
Button(action: {
loadMoreContent()
}) {
HStack(spacing: 8) {
if isLoading {
ProgressView()
.controlSize(.small)
}
Text(isLoading ? "Loading..." : "Load More")
.font(.system(size: 14, weight: .medium))
} }
.frame(maxWidth: .infinity)
.padding(.vertical, 12)
.background(Color(.windowBackgroundColor).opacity(0.4))
.cornerRadius(8)
} }
.buttonStyle(.plain)
.disabled(isLoading) if hasMoreContent {
.padding(.top, 12) Button(action: {
loadMoreContent()
}) {
HStack(spacing: 8) {
if isLoading {
ProgressView()
.controlSize(.small)
}
Text(isLoading ? "Loading..." : "Load More")
.font(.system(size: 14, weight: .medium))
}
.frame(maxWidth: .infinity)
.padding(.vertical, 12)
.background(Color(.windowBackgroundColor).opacity(0.4))
.cornerRadius(8)
}
.buttonStyle(.plain)
.disabled(isLoading)
.padding(.top, 12)
}
} }
.padding(24)
// Add bottom padding to ensure content is not hidden by the toolbar when visible
.padding(.bottom, !selectedTranscriptions.isEmpty ? 60 : 0)
} }
.padding(24) .padding(.vertical, 16)
} }
.padding(.vertical, 16)
} }
.background(Color(NSColor.controlBackgroundColor))
// Selection toolbar as an overlay
if !selectedTranscriptions.isEmpty { if !selectedTranscriptions.isEmpty {
selectionToolbar selectionToolbar
.transition(.move(edge: .bottom).combined(with: .opacity))
.animation(.easeInOut(duration: 0.3), value: !selectedTranscriptions.isEmpty)
} }
} }
.background(Color(NSColor.controlBackgroundColor))
.alert("Delete Selected Items?", isPresented: $showDeleteConfirmation) { .alert("Delete Selected Items?", isPresented: $showDeleteConfirmation) {
Button("Delete", role: .destructive) { Button("Delete", role: .destructive) {
deleteSelectedTranscriptions() deleteSelectedTranscriptions()
@ -208,7 +215,11 @@ struct TranscriptionHistoryView: View {
} }
} }
.padding(16) .padding(16)
.background(Color(.windowBackgroundColor)) .frame(maxWidth: .infinity)
.background(
Color(.windowBackgroundColor)
.shadow(color: Color.black.opacity(0.1), radius: 3, y: -2)
)
} }
private func loadInitialContent() async { private func loadInitialContent() async {