Add upload, preview sheet
This commit is contained in:
@ -39,6 +39,9 @@ struct MainView: App {
|
||||
@StateObject
|
||||
private var content: Content = .init()
|
||||
|
||||
@StateObject
|
||||
private var upload: RemotePush = .init()
|
||||
|
||||
@State
|
||||
private var language: ContentLanguage = .english
|
||||
|
||||
@ -60,6 +63,12 @@ struct MainView: App {
|
||||
@State
|
||||
private var showGenerationSheet = false
|
||||
|
||||
@State
|
||||
private var showPreviewSheet = false
|
||||
|
||||
@State
|
||||
private var showUploadSheet = false
|
||||
|
||||
@ViewBuilder
|
||||
var sidebar: some View {
|
||||
switch selection.tab {
|
||||
@ -67,7 +76,6 @@ struct MainView: App {
|
||||
case .pages: PageListView()
|
||||
case .tags: TagListView()
|
||||
case .files: FileListView(selectedFile: $selection.file)
|
||||
case .browser: EmptyView()
|
||||
}
|
||||
}
|
||||
|
||||
@ -82,9 +90,6 @@ struct MainView: App {
|
||||
SelectedContentView<TagContentView>(selected: $selection.tag)
|
||||
case .files:
|
||||
SelectedContentView<FileContentView>(selected: $selection.file)
|
||||
case .browser:
|
||||
WebContentView()
|
||||
.environmentObject(server)
|
||||
}
|
||||
}
|
||||
|
||||
@ -99,16 +104,13 @@ struct MainView: App {
|
||||
SelectedDetailView<TagDetailView>(selected: $selection.tag)
|
||||
case .files:
|
||||
SelectedDetailView<FileDetailView>(selected: $selection.file)
|
||||
case .browser:
|
||||
WebDetailView()
|
||||
.environmentObject(server)
|
||||
}
|
||||
}
|
||||
|
||||
@ViewBuilder
|
||||
var addItemSheet: some View {
|
||||
switch selection.tab {
|
||||
case .posts, .browser:
|
||||
case .posts:
|
||||
AddPostView(selected: $selection.post)
|
||||
case .pages:
|
||||
AddPageView(selected: $selection.page)
|
||||
@ -141,7 +143,6 @@ struct MainView: App {
|
||||
Text("Pages").tag(MainViewTab.pages)
|
||||
Text("Tags").tag(MainViewTab.tags)
|
||||
Text("Files").tag(MainViewTab.files)
|
||||
Text("Preview").tag(MainViewTab.browser)
|
||||
}.pickerStyle(.segmented)
|
||||
}.frame(minWidth: 400)
|
||||
}
|
||||
@ -179,8 +180,13 @@ struct MainView: App {
|
||||
}
|
||||
}
|
||||
ToolbarItem {
|
||||
Button(action: toggleWebServer) {
|
||||
Image(systemSymbol: server.isRunning ? .eye : .eyeSlash)
|
||||
Button(action: { showPreviewSheet = true }) {
|
||||
Image(systemSymbol: .eye)
|
||||
}
|
||||
}
|
||||
ToolbarItem {
|
||||
Button(action: { showUploadSheet = true }) {
|
||||
Image(systemSymbol: .squareAndArrowUp)
|
||||
}
|
||||
}
|
||||
ToolbarItem {
|
||||
@ -220,6 +226,16 @@ struct MainView: App {
|
||||
GenerationContentView()
|
||||
.environmentObject(content)
|
||||
}
|
||||
.sheet(isPresented: $showPreviewSheet) {
|
||||
WebsitePreviewSheet()
|
||||
.environmentObject(content)
|
||||
.environmentObject(server)
|
||||
}
|
||||
.sheet(isPresented: $showUploadSheet) {
|
||||
UploadSheet()
|
||||
.environmentObject(content)
|
||||
.environmentObject(upload)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -267,18 +283,5 @@ struct MainView: App {
|
||||
showInitialSetupSheet = true
|
||||
}
|
||||
}
|
||||
|
||||
private func toggleWebServer() {
|
||||
guard !server.isRunning else {
|
||||
server.stopServer()
|
||||
return
|
||||
}
|
||||
guard let folder = content.storage.outputScope?.url.path() else {
|
||||
print("No output folder to start server")
|
||||
return
|
||||
}
|
||||
|
||||
server.startServer(in: folder)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6,6 +6,5 @@ enum MainViewTab {
|
||||
case pages
|
||||
case tags
|
||||
case files
|
||||
case browser
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user