mirror of
https://github.com/otaviocc/Triton.git
synced 2026-01-30 04:04:27 +00:00
Improve dropzone when dragging an image from Finder
This commit is contained in:
parent
f5a4bf476d
commit
d15f7a1be3
1 changed files with 44 additions and 37 deletions
|
|
@ -25,16 +25,7 @@ struct UploadView: View {
|
|||
// MARK: - Public
|
||||
|
||||
var body: some View {
|
||||
VStack {
|
||||
HStack(alignment: .top) {
|
||||
makeSidebarView()
|
||||
.frame(width: 200)
|
||||
|
||||
makeEditorView()
|
||||
}
|
||||
|
||||
makeVisibilityView()
|
||||
}
|
||||
makeContentView()
|
||||
.frame(minWidth: 400, idealWidth: 640, maxWidth: 640)
|
||||
.toolbar {
|
||||
makeToolbarContent()
|
||||
|
|
@ -62,26 +53,42 @@ struct UploadView: View {
|
|||
|
||||
@ViewBuilder
|
||||
private func makeSidebarView() -> some View {
|
||||
if viewModel.isDragging {
|
||||
makeDropPictureView()
|
||||
} else {
|
||||
VStack {
|
||||
makePictureView()
|
||||
makePicturePickerView()
|
||||
}
|
||||
}
|
||||
|
||||
@ViewBuilder
|
||||
private func makeContentView() -> some View {
|
||||
ZStack {
|
||||
if viewModel.isDragging {
|
||||
makeDropZoneView()
|
||||
} else {
|
||||
VStack {
|
||||
HStack(alignment: .top) {
|
||||
makeSidebarView()
|
||||
.frame(width: 200)
|
||||
makeEditorView()
|
||||
}
|
||||
makeVisibilityView()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ViewBuilder
|
||||
private func makeDropPictureView() -> some View {
|
||||
VStack(alignment: .center, spacing: 8) {
|
||||
Image(systemName: "arrow.down.heart")
|
||||
.font(.largeTitle)
|
||||
|
||||
Text("Drop it here")
|
||||
}
|
||||
.frame(width: 100, height: 100)
|
||||
.card(.accentColor)
|
||||
private func makeDropZoneView() -> some View {
|
||||
RoundedRectangle(cornerRadius: 8)
|
||||
.fill(
|
||||
AnyShapeStyle(
|
||||
viewModel.isDragging ? Color.accentColor.opacity(0.1) : .clear
|
||||
)
|
||||
)
|
||||
.strokeBorder(
|
||||
viewModel.isDragging ? Color.accentColor : .secondary.opacity(0.3),
|
||||
style: StrokeStyle(lineWidth: 2, dash: [8, 4])
|
||||
)
|
||||
}
|
||||
|
||||
@ViewBuilder
|
||||
|
|
|
|||
Loading…
Reference in a new issue