Moved all the Profile UI files into their own Profile module.
This commit is contained in:
parent
e24d3e115c
commit
330d790394
@ -14,8 +14,6 @@
|
|||||||
02AE650029363DC1005A4AF3 /* BeRealTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02AE64FF29363DC1005A4AF3 /* BeRealTests.swift */; };
|
02AE650029363DC1005A4AF3 /* BeRealTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02AE64FF29363DC1005A4AF3 /* BeRealTests.swift */; };
|
||||||
02AE650A29363DC1005A4AF3 /* BeRealUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02AE650929363DC1005A4AF3 /* BeRealUITests.swift */; };
|
02AE650A29363DC1005A4AF3 /* BeRealUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02AE650929363DC1005A4AF3 /* BeRealUITests.swift */; };
|
||||||
02AE650C29363DC1005A4AF3 /* BeRealUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02AE650B29363DC1005A4AF3 /* BeRealUITestsLaunchTests.swift */; };
|
02AE650C29363DC1005A4AF3 /* BeRealUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02AE650B29363DC1005A4AF3 /* BeRealUITestsLaunchTests.swift */; };
|
||||||
02CE5562293B452E00730DC9 /* ProfileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CE5561293B452E00730DC9 /* ProfileView.swift */; };
|
|
||||||
02CE5565293B517700730DC9 /* NameAndValueLabelStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02CE5564293B517700730DC9 /* NameAndValueLabelStyle.swift */; };
|
|
||||||
02FFFD7B29395DD200306533 /* String+Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02FFFD7A29395DD200306533 /* String+Constants.swift */; };
|
02FFFD7B29395DD200306533 /* String+Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02FFFD7A29395DD200306533 /* String+Constants.swift */; };
|
||||||
4694AAA0293A7C8800D54903 /* Modules in Frameworks */ = {isa = PBXBuildFile; productRef = 4694AA9F293A7C8800D54903 /* Modules */; };
|
4694AAA0293A7C8800D54903 /* Modules in Frameworks */ = {isa = PBXBuildFile; productRef = 4694AA9F293A7C8800D54903 /* Modules */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
@ -49,8 +47,6 @@
|
|||||||
02AE650529363DC1005A4AF3 /* BeRealUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BeRealUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
02AE650529363DC1005A4AF3 /* BeRealUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BeRealUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
02AE650929363DC1005A4AF3 /* BeRealUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeRealUITests.swift; sourceTree = "<group>"; };
|
02AE650929363DC1005A4AF3 /* BeRealUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeRealUITests.swift; sourceTree = "<group>"; };
|
||||||
02AE650B29363DC1005A4AF3 /* BeRealUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeRealUITestsLaunchTests.swift; sourceTree = "<group>"; };
|
02AE650B29363DC1005A4AF3 /* BeRealUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeRealUITestsLaunchTests.swift; sourceTree = "<group>"; };
|
||||||
02CE5561293B452E00730DC9 /* ProfileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileView.swift; sourceTree = "<group>"; };
|
|
||||||
02CE5564293B517700730DC9 /* NameAndValueLabelStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NameAndValueLabelStyle.swift; sourceTree = "<group>"; };
|
|
||||||
02FFFD7A29395DD200306533 /* String+Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Constants.swift"; sourceTree = "<group>"; };
|
02FFFD7A29395DD200306533 /* String+Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Constants.swift"; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
@ -147,27 +143,9 @@
|
|||||||
path = Profile;
|
path = Profile;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
02CE5560293B452400730DC9 /* Views */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
02CE5561293B452E00730DC9 /* ProfileView.swift */,
|
|
||||||
);
|
|
||||||
path = Views;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
02CE5563293B516600730DC9 /* Styles */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
02CE5564293B517700730DC9 /* NameAndValueLabelStyle.swift */,
|
|
||||||
);
|
|
||||||
path = Styles;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
02FFFD7929395DBF00306533 /* Extensions */ = {
|
02FFFD7929395DBF00306533 /* Extensions */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
02CE5563293B516600730DC9 /* Styles */,
|
|
||||||
02CE5560293B452400730DC9 /* Views */,
|
|
||||||
02FFFD7A29395DD200306533 /* String+Constants.swift */,
|
02FFFD7A29395DD200306533 /* String+Constants.swift */,
|
||||||
);
|
);
|
||||||
path = Extensions;
|
path = Extensions;
|
||||||
@ -314,10 +292,8 @@
|
|||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
02CE5562293B452E00730DC9 /* ProfileView.swift in Sources */,
|
|
||||||
02AE64F129363DBF005A4AF3 /* ContentView.swift in Sources */,
|
02AE64F129363DBF005A4AF3 /* ContentView.swift in Sources */,
|
||||||
02AE64EF29363DBF005A4AF3 /* BeRealApp.swift in Sources */,
|
02AE64EF29363DBF005A4AF3 /* BeRealApp.swift in Sources */,
|
||||||
02CE5565293B517700730DC9 /* NameAndValueLabelStyle.swift in Sources */,
|
|
||||||
02FFFD7B29395DD200306533 /* String+Constants.swift in Sources */,
|
02FFFD7B29395DD200306533 /* String+Constants.swift in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
import SwiftUI
|
import SwiftUI
|
||||||
import Browse
|
import Browse
|
||||||
import Login
|
import Login
|
||||||
|
import Profile
|
||||||
|
|
||||||
struct ContentView: View {
|
struct ContentView: View {
|
||||||
var body: some View {
|
var body: some View {
|
||||||
@ -16,7 +17,7 @@ struct ContentView: View {
|
|||||||
BrowseView()
|
BrowseView()
|
||||||
}
|
}
|
||||||
.sheet(isPresented: .constant(true)) {
|
.sheet(isPresented: .constant(true)) {
|
||||||
LoginView()
|
ProfileView()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,8 @@ let package = Package(
|
|||||||
name: "Modules",
|
name: "Modules",
|
||||||
targets: [
|
targets: [
|
||||||
"Login",
|
"Login",
|
||||||
"Browse"
|
"Browse",
|
||||||
|
"Profile"
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@ -25,6 +26,10 @@ let package = Package(
|
|||||||
.target(
|
.target(
|
||||||
name: "Browse",
|
name: "Browse",
|
||||||
resources: [.process("Resources")]
|
resources: [.process("Resources")]
|
||||||
|
),
|
||||||
|
.target(
|
||||||
|
name: "Profile",
|
||||||
|
resources: [.process("Resources")]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Localizable.strings
|
||||||
|
Profile
|
||||||
|
|
||||||
|
Created by Javier Cicchelli on 03/12/2022.
|
||||||
|
Copyright © 2022 Röck+Cöde. All rights reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
"profile.sections.names.header.text" = "Names";
|
||||||
|
"profile.sections.names.label.first_name.text" = "First name";
|
||||||
|
"profile.sections.names.label.last_name.text" = "Last name";
|
||||||
|
|
||||||
|
"profile.sections.root_info.header.text" = "Root item information";
|
||||||
|
"profile.sections.root_info.label.identifier.text" = "Identifier";
|
||||||
|
"profile.sections.root_info.label.is_directory.text" = "Is a directory?";
|
||||||
|
"profile.sections.root_info.label.last_modified.text" = "Last modified";
|
||||||
|
"profile.sections.root_info.label.name.text" = "Name";
|
||||||
|
|
||||||
|
"profile.button.log_out.text" = "Log out";
|
@ -0,0 +1,48 @@
|
|||||||
|
//
|
||||||
|
// ClearBackgroundList.swift
|
||||||
|
// Profile
|
||||||
|
//
|
||||||
|
// Created by Javier Cicchelli on 03/12/2022.
|
||||||
|
// Copyright © 2022 Röck+Cöde. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
|
||||||
|
struct ClearBackgroundList<Content>: View where Content: View {
|
||||||
|
|
||||||
|
// MARK: Properties
|
||||||
|
|
||||||
|
@ViewBuilder let content: Content
|
||||||
|
|
||||||
|
// MARK: Body
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
if #available(iOS 16.0, *) {
|
||||||
|
List{
|
||||||
|
content
|
||||||
|
}
|
||||||
|
.scrollContentBackground(.hidden)
|
||||||
|
.scrollIndicators(.hidden)
|
||||||
|
} else {
|
||||||
|
List {
|
||||||
|
content
|
||||||
|
}
|
||||||
|
.onAppear {
|
||||||
|
UITableView.appearance().backgroundColor = .clear
|
||||||
|
UITableView.appearance().showsVerticalScrollIndicator = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Previews
|
||||||
|
|
||||||
|
struct ClearBackgroundList_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
ClearBackgroundList {
|
||||||
|
Text("Something...")
|
||||||
|
}
|
||||||
|
.background(Color.red)
|
||||||
|
}
|
||||||
|
}
|
@ -8,9 +8,16 @@
|
|||||||
|
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
struct ProfileView: View {
|
public struct ProfileView: View {
|
||||||
var body: some View {
|
|
||||||
List {
|
// MARK: Initialisers
|
||||||
|
|
||||||
|
public init() {}
|
||||||
|
|
||||||
|
// MARK: Body
|
||||||
|
|
||||||
|
public var body: some View {
|
||||||
|
ClearBackgroundList {
|
||||||
Section {
|
Section {
|
||||||
Image.photo
|
Image.photo
|
||||||
.resizable()
|
.resizable()
|
||||||
@ -24,73 +31,105 @@ struct ProfileView: View {
|
|||||||
Label {
|
Label {
|
||||||
Text("Javier")
|
Text("Javier")
|
||||||
} icon: {
|
} icon: {
|
||||||
Text("First name")
|
Text(
|
||||||
|
"profile.sections.names.label.first_name.text",
|
||||||
|
bundle: .module,
|
||||||
|
comment: "First name label text."
|
||||||
|
)
|
||||||
}
|
}
|
||||||
.labelStyle(.nameAndValue)
|
.labelStyle(.nameAndValue)
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
Text("Cicchelli")
|
Text("Cicchelli")
|
||||||
} icon: {
|
} icon: {
|
||||||
Text("Last name")
|
Text(
|
||||||
|
"profile.sections.names.label.last_name.text",
|
||||||
|
bundle: .module,
|
||||||
|
comment: "Last name label text."
|
||||||
|
)
|
||||||
}
|
}
|
||||||
.labelStyle(.nameAndValue)
|
.labelStyle(.nameAndValue)
|
||||||
} header: {
|
} header: {
|
||||||
Text("Names")
|
Text(
|
||||||
|
"profile.sections.names.header.text",
|
||||||
|
bundle: .module,
|
||||||
|
comment: "Names section header text."
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
Section {
|
Section {
|
||||||
Label {
|
Label {
|
||||||
Text("71207ee4c0573fde80b03643caafe62731406404")
|
Text("71207ee4c0573fde80b03643caafe62731406404")
|
||||||
} icon: {
|
} icon: {
|
||||||
Text("Identifier")
|
Text(
|
||||||
|
"profile.sections.root_info.label.identifier.text",
|
||||||
|
bundle: .module,
|
||||||
|
comment: "Identifier label text."
|
||||||
|
)
|
||||||
}
|
}
|
||||||
.labelStyle(.nameAndValue)
|
.labelStyle(.nameAndValue)
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
Text("Yes")
|
Text("Yes")
|
||||||
} icon: {
|
} icon: {
|
||||||
Text("Is a directory?")
|
Text(
|
||||||
|
"profile.sections.root_info.label.is_directory.text",
|
||||||
|
bundle: .module,
|
||||||
|
comment: "Is directory label text."
|
||||||
|
)
|
||||||
}
|
}
|
||||||
.labelStyle(.nameAndValue)
|
.labelStyle(.nameAndValue)
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
Text("3 days ago")
|
Text("3 days ago")
|
||||||
} icon: {
|
} icon: {
|
||||||
Text("Last modified")
|
Text(
|
||||||
|
"profile.sections.root_info.label.last_modified.text",
|
||||||
|
bundle: .module,
|
||||||
|
comment: "Last modified label text."
|
||||||
|
)
|
||||||
}
|
}
|
||||||
.labelStyle(.nameAndValue)
|
.labelStyle(.nameAndValue)
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
Text("My files")
|
Text("My files")
|
||||||
} icon: {
|
} icon: {
|
||||||
Text("name")
|
Text(
|
||||||
|
"profile.sections.root_info.label.name.text",
|
||||||
|
bundle: .module,
|
||||||
|
comment: "Root name label text."
|
||||||
|
)
|
||||||
}
|
}
|
||||||
.labelStyle(.nameAndValue)
|
.labelStyle(.nameAndValue)
|
||||||
} header: {
|
} header: {
|
||||||
Text("Root item information")
|
Text(
|
||||||
|
"profile.sections.root_info.header.text",
|
||||||
|
bundle: .module,
|
||||||
|
comment: "Root item information header text."
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
Section {
|
Section {
|
||||||
Button {
|
Button {
|
||||||
// TODO: Log out the existing user.
|
// TODO: Log out the existing user.
|
||||||
} label: {
|
} label: {
|
||||||
Text("Log out")
|
Text(
|
||||||
.fontWeight(.semibold)
|
"profile.button.log_out.text",
|
||||||
.foregroundColor(.primary)
|
bundle: .module,
|
||||||
.frame(maxWidth: .infinity)
|
comment: "Log out button text."
|
||||||
|
)
|
||||||
|
.fontWeight(.semibold)
|
||||||
|
.foregroundColor(.primary)
|
||||||
|
.frame(maxWidth: .infinity)
|
||||||
}
|
}
|
||||||
.tint(.orange)
|
.tint(.orange)
|
||||||
.buttonStyle(.borderedProminent)
|
.buttonStyle(.borderedProminent)
|
||||||
.buttonBorderShape(.roundedRectangle(radius: 8))
|
.buttonBorderShape(.roundedRectangle(radius: 8))
|
||||||
.controlSize(.large)
|
.controlSize(.large)
|
||||||
.padding(0)
|
|
||||||
}
|
}
|
||||||
.listRowBackground(Color.clear)
|
.listRowBackground(Color.clear)
|
||||||
}
|
}
|
||||||
.background(Color.red)
|
.background(Color.red)
|
||||||
.onAppear {
|
|
||||||
UITableView.appearance().backgroundColor = .clear
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user