refactor(ui): prioritize editor space
This commit is contained in:
parent
002fde6169
commit
0b01178f24
1 changed files with 16 additions and 10 deletions
|
|
@ -155,16 +155,17 @@ private final class SaplingAppModel: ObservableObject {
|
||||||
private struct MainWindow: View {
|
private struct MainWindow: View {
|
||||||
@ObservedObject var model: SaplingAppModel
|
@ObservedObject var model: SaplingAppModel
|
||||||
@State private var isImportingMarkdown = false
|
@State private var isImportingMarkdown = false
|
||||||
|
@State private var columnVisibility: NavigationSplitViewVisibility = .all
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
NavigationSplitView {
|
NavigationSplitView(columnVisibility: $columnVisibility) {
|
||||||
WorkspaceTreeView(
|
WorkspaceTreeView(
|
||||||
workspace: model.workspace,
|
workspace: model.workspace,
|
||||||
onSelectFile: model.select(file:),
|
onSelectFile: model.select(file:),
|
||||||
onSelectProject: model.select(project:)
|
onSelectProject: model.select(project:)
|
||||||
)
|
)
|
||||||
.frame(minWidth: 220)
|
.navigationSplitViewColumnWidth(min: 180, ideal: 220, max: 260)
|
||||||
} content: {
|
} detail: {
|
||||||
if let editorViewModel = model.editorViewModel {
|
if let editorViewModel = model.editorViewModel {
|
||||||
HybridMarkdownEditor(
|
HybridMarkdownEditor(
|
||||||
viewModel: editorViewModel,
|
viewModel: editorViewModel,
|
||||||
|
|
@ -174,16 +175,17 @@ private struct MainWindow: View {
|
||||||
} else {
|
} else {
|
||||||
EmptyEditorPlaceholder()
|
EmptyEditorPlaceholder()
|
||||||
}
|
}
|
||||||
} detail: {
|
|
||||||
SaplingInspectorView(
|
|
||||||
project: model.selectedProject,
|
|
||||||
document: model.editorViewModel?.document ?? model.selectedDocument,
|
|
||||||
statuses: model.gitStatuses
|
|
||||||
)
|
|
||||||
.frame(minWidth: 260)
|
|
||||||
}
|
}
|
||||||
.toolbar {
|
.toolbar {
|
||||||
ToolbarItemGroup {
|
ToolbarItemGroup {
|
||||||
|
Button {
|
||||||
|
toggleSidebar()
|
||||||
|
} label: {
|
||||||
|
Label("Toggle Sidebar", systemImage: "sidebar.leading")
|
||||||
|
}
|
||||||
|
.help("Toggle Sidebar")
|
||||||
|
.keyboardShortcut("0", modifiers: [.command, .option])
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
isImportingMarkdown = true
|
isImportingMarkdown = true
|
||||||
} label: {
|
} label: {
|
||||||
|
|
@ -232,6 +234,10 @@ private struct MainWindow: View {
|
||||||
private func navigationTitle(for viewModel: HybridMarkdownEditorViewModel) -> String {
|
private func navigationTitle(for viewModel: HybridMarkdownEditorViewModel) -> String {
|
||||||
viewModel.hasUnsavedChanges ? "\(viewModel.document.title) *" : viewModel.document.title
|
viewModel.hasUnsavedChanges ? "\(viewModel.document.title) *" : viewModel.document.title
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func toggleSidebar() {
|
||||||
|
columnVisibility = columnVisibility == .all ? .detailOnly : .all
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private extension UTType {
|
private extension UTType {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue