Moved the definition of the toolbar from the BrowseView view to its own file.

This commit is contained in:
Javier Cicchelli 2022-12-03 08:46:22 +01:00
parent b6202c76af
commit b81d846aa8
3 changed files with 77 additions and 45 deletions

View File

@ -19,6 +19,7 @@
02CE5557293B134200730DC9 /* Image+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CE5556293B134200730DC9 /* Image+Helpers.swift */; };
02CE5559293B1AB600730DC9 /* Text+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CE5558293B1AB600730DC9 /* Text+Helpers.swift */; };
02CE555B293B1D8400730DC9 /* BrowseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CE555A293B1D8400730DC9 /* BrowseView.swift */; };
02CE555E293B34E900730DC9 /* BrowseToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CE555D293B34E900730DC9 /* BrowseToolbar.swift */; };
02FFFD7B29395DD200306533 /* String+Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02FFFD7A29395DD200306533 /* String+Constants.swift */; };
4694AAA0293A7C8800D54903 /* Modules in Frameworks */ = {isa = PBXBuildFile; productRef = 4694AA9F293A7C8800D54903 /* Modules */; };
/* End PBXBuildFile section */
@ -57,6 +58,7 @@
02CE5556293B134200730DC9 /* Image+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Image+Helpers.swift"; sourceTree = "<group>"; };
02CE5558293B1AB600730DC9 /* Text+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Text+Helpers.swift"; sourceTree = "<group>"; };
02CE555A293B1D8400730DC9 /* BrowseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrowseView.swift; sourceTree = "<group>"; };
02CE555D293B34E900730DC9 /* BrowseToolbar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrowseToolbar.swift; sourceTree = "<group>"; };
02FFFD7A29395DD200306533 /* String+Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Constants.swift"; sourceTree = "<group>"; };
/* End PBXFileReference section */
@ -151,6 +153,7 @@
children = (
02CE5555293B131D00730DC9 /* Extensions */,
02B334E6293A93CE00C45E31 /* Components */,
02CE555C293B34CF00730DC9 /* Toolbars */,
02B334E5293A93C400C45E31 /* Views */,
);
path = Browse;
@ -182,6 +185,14 @@
path = Extensions;
sourceTree = "<group>";
};
02CE555C293B34CF00730DC9 /* Toolbars */ = {
isa = PBXGroup;
children = (
02CE555D293B34E900730DC9 /* BrowseToolbar.swift */,
);
path = Toolbars;
sourceTree = "<group>";
};
02FFFD7929395DBF00306533 /* Extensions */ = {
isa = PBXGroup;
children = (
@ -339,6 +350,7 @@
02CE5559293B1AB600730DC9 /* Text+Helpers.swift in Sources */,
02AE64EF29363DBF005A4AF3 /* BeRealApp.swift in Sources */,
02FFFD7B29395DD200306533 /* String+Constants.swift in Sources */,
02CE555E293B34E900730DC9 /* BrowseToolbar.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

View File

@ -0,0 +1,62 @@
//
// BrowseToolbar.swift
// BeReal
//
// Created by Javier Cicchelli on 03/12/2022.
// Copyright © 2022 Röck+Cöde. All rights reserved.
//
import SwiftUI
struct BrowseToolbar: ToolbarContent {
var body: some ToolbarContent {
ToolbarItem(placement: .primaryAction) {
Menu {
Button {
// TODO: Implement the creation of a new folder.
} label: {
Label {
Text("Create a new folder")
} icon: {
Image.newFolder
}
}
Button {
// TODO: Implement the upload of a file from the device to the API.
} label: {
Label {
Text("Upload a file")
} icon: {
Image.newFile
}
}
} label: {
Label {
Text("Add file and/or folder")
} icon: {
Image.add
.foregroundColor(.red)
}
}
}
ToolbarItem(placement: .navigationBarTrailing) {
Button {
// TODO: Implement the show of the user profile.
} label: {
Image.profile
.foregroundColor(.red)
}
}
}
}
// MARK: - Image+Constants
private extension Image {
static let profile = Image(systemName: "person.crop.circle.fill")
static let add = Image(systemName: "plus.circle.fill")
static let newFolder = Image(systemName: "folder.badge.plus")
static let newFile = Image(systemName: "doc.badge.plus")
}

View File

@ -64,7 +64,7 @@ struct BrowseView: View {
allowsFullSwipe: true
) {
Button {
// ...
// TODO: Implement the removal of the item from the API.
} label: {
Label {
Text("Delete item")
@ -76,7 +76,7 @@ struct BrowseView: View {
// TODO: allow download only if item is a file.
Button {
// ...
// TODO: Implement the downloading of the data of the item from the API into the device.
} label: {
Label {
Text("Download item")
@ -91,45 +91,7 @@ struct BrowseView: View {
.background(Color.red)
.navigationTitle("Folder name")
.toolbar {
ToolbarItem(placement: .primaryAction) {
Menu {
Button {
// TODO: Implement the creation of a new folder.
} label: {
Label {
Text("Create a new folder")
} icon: {
Image.newFolder
}
}
Button {
// TODO: Implement the upload of a file from the device to the API.
} label: {
Label {
Text("Upload a file")
} icon: {
Image.newFile
}
}
} label: {
Label {
Text("Add file and/or folder")
} icon: {
Image.add
.foregroundColor(.red)
}
}
}
ToolbarItem(placement: .navigationBarTrailing) {
Button {
// TODO: Implement the show of the user profile.
} label: {
Image.profile
.foregroundColor(.red)
}
}
BrowseToolbar()
}
}
}
@ -137,10 +99,6 @@ struct BrowseView: View {
// MARK: - Image+Constants
private extension Image {
static let profile = Image(systemName: "person.crop.circle.fill")
static let add = Image(systemName: "plus.circle.fill")
static let newFolder = Image(systemName: "folder.badge.plus")
static let newFile = Image(systemName: "doc.badge.plus")
static let trash = Image(systemName: "trash")
static let download = Image(systemName: "arrow.down.doc")
}