Improve buttons

This commit is contained in:
Christoph Hagen
2025-05-04 20:59:45 +02:00
parent f968ccad29
commit d779b7a42c
6 changed files with 31 additions and 41 deletions

View File

@ -51,20 +51,24 @@ struct FileDetailView: View {
text: "A file that can be used in a post or page")
GenericPropertyView(title: "Actions") {
HStack(spacing: 10) {
ButtonIcon(.folder, action: showFileInFinder)
ButtonIcon(.arrowClockwise, action: markFileAsChanged)
if file.isExternallyStored {
ButtonIcon(.squareAndArrowDown, action: replaceFile)
} else {
ButtonIcon(.arrowLeftArrowRight, action: replaceFile)
ButtonIcon(.squareDashed, action: convertToExternal)
}
ButtonIcon(.trash, action: deleteFile)
.foregroundStyle(.red)
ColoredButton(icon: .folder, text: "Show in folder", action: showFileInFinder)
ColoredButton(icon: .arrowClockwise, text: "Mark file as changed", action: markFileAsChanged)
if file.isExternallyStored {
ColoredButton(
icon: .squareAndArrowDown,
text: "Convert to internal file",
action: replaceFile)
} else {
ColoredButton(
icon: .arrowLeftArrowRight,
text: "Replace file",
action: replaceFile)
ColoredButton(
icon: .squareDashed,
text: "Convert to external file",
action: convertToExternal)
}
.buttonStyle(.plain)
.foregroundStyle(.blue)
ColoredButton(delete: deleteFile)
}
IdPropertyView(

View File

@ -1,20 +0,0 @@
import SwiftUI
struct DeleteButton: View {
let action: () -> Void
var body: some View {
Button(action: action) {
HStack {
Spacer()
Image(systemSymbol: .trash)
Text("Delete")
.padding(.vertical, 8)
Spacer()
}
.foregroundStyle(Color.white)
.background(RoundedRectangle(cornerRadius: 8).fill(Color.red))
}.buttonStyle(.plain)
}
}

View File

@ -76,7 +76,7 @@ struct PageDetailView: View {
page: page.localized(in: language),
transferImage: transferImage)
.id(page.id + language.rawValue)
DeleteButton(action: deletePage)
ColoredButton(delete: deletePage)
}
.padding()
}

View File

@ -1,4 +1,5 @@
import SwiftUI
import SFSafeSymbols
struct PostDetailView: View {
@ -33,7 +34,12 @@ struct PostDetailView: View {
text: "Posts capture quick updates and can link to pages")
if post.linkedPage == nil {
Button("Create page", action: createPageFromPost)
ColoredButton(
icon: .documentBadgePlus,
text: "Create page",
fillColor: .blue,
textColor: .white,
action: createPageFromPost)
}
IdPropertyView(
@ -76,7 +82,7 @@ struct PostDetailView: View {
LocalizedPostDetailView(
post: post.localized(in: language),
transferImage: transferImage)
DeleteButton(action: deletePost)
ColoredButton(delete: deletePost)
}
.padding()
}

View File

@ -43,7 +43,7 @@ struct TagDetailView: View {
tag: tag.localized(in: language),
transferImage: transferImage)
.id(tag.id + language.rawValue)
DeleteButton(action: deleteTag)
ColoredButton(delete: deleteTag)
}
.padding()
}