1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-08-06 19:40:08 +02:00

👌 Cleanup UI code

This commit is contained in:
2023-11-29 18:42:14 +01:00
parent 13447ba533
commit ba04c94c05
3 changed files with 43 additions and 34 deletions

View File

@ -21,9 +21,7 @@ struct BrewPhpFormula: Equatable {
/// The upgrade that is currently available, if it exists.
let upgradeVersion: String?
#warning("The rebuild attribute should be checked, it can be used to check if a Tap update exists for a pre-release version.")
/// A rebuild version, if applicable.
// let rebuild: String?
// TODO: A rebuild attribute could be checked, to check if a Tap update exists for a pre-release version
/// Whether this formula is a stable version of PHP.
let prerelease: Bool

View File

@ -29,10 +29,11 @@ class BrewTapFormulae {
let versionRange = Range(match.range(at: 2), in: file) {
// Determine what the extension's name is
let phpExtensionName = String(file[phpExtensionRange])
// Determine what PHP version this is for
let phpVersion = String(file[versionRange])
// Create a new BrewPhpExtension object, which will determine whether this extension is installed or not
// Create a new BrewPhpExtension object (determines if installed)
let phpExtension = BrewPhpExtension(
path: "\(Paths.tapPath)/\(tap)/Formula/\(file)",
name: phpExtensionName,

View File

@ -98,6 +98,44 @@ struct PhpExtensionManagerView: View {
}
}
private func dependency(named name: String) -> some View {
return Text(name)
.font(.system(size: 9))
.padding(.horizontal, 5)
.padding(.vertical, 1)
.background(Color.appPrimary)
.foregroundColor(Color.white)
.clipShape(Capsule())
.fixedSize(horizontal: true, vertical: true)
}
private func extensionLabel(for ext: BrewPhpExtension) -> some View {
return Group {
if ext.isInstalled {
if let dependent = ext.firstDependent(in: self.manager.extensions) {
Text("You cannot uninstall this before uninstalling **\(dependent.name)**.")
.font(.system(size: 11))
.foregroundStyle(.secondary)
} else {
Text("This extension is installed and can be managed by PHP Monitor.")
.font(.system(size: 11))
.foregroundStyle(.secondary)
}
} else {
if ext.hasAlternativeInstall {
Text("This extension is already installed via another source, and cannot be managed.")
.font(.system(size: 11))
.foregroundStyle(.orange)
} else {
Text("This extension can be installed.")
.font(.system(size: 11))
.foregroundStyle(.secondary)
}
}
}
}
private func listContent(for ext: BrewPhpExtension) -> some View {
HStack(alignment: .center, spacing: 7.0) {
VStack(alignment: .center, spacing: 0) {
@ -121,40 +159,12 @@ struct PhpExtensionManagerView: View {
Text("Depends on:")
.font(.system(size: 10))
ForEach(ext.extensionDependencies, id: \.self) {
Text($0)
.font(.system(size: 9))
.padding(.horizontal, 5)
.padding(.vertical, 1)
.background(Color.appPrimary)
.foregroundColor(Color.white)
.clipShape(Capsule())
.fixedSize(horizontal: true, vertical: true)
dependency(named: $0)
}
}
}
if ext.isInstalled {
if let dependent = ext.firstDependent(in: self.manager.extensions) {
Text("You cannot uninstall this before uninstalling **\(dependent.name)**.")
.font(.system(size: 11))
.foregroundStyle(.secondary)
} else {
Text("This extension is installed and can be managed by PHP Monitor.")
.font(.system(size: 11))
.foregroundStyle(.secondary)
}
} else {
if ext.hasAlternativeInstall {
Text("This extension is already installed via another source, and cannot be managed.")
.font(.system(size: 11))
.foregroundStyle(.orange)
} else {
Text("This extension can be installed.")
.font(.system(size: 11))
.foregroundStyle(.secondary)
}
}
extensionLabel(for: ext)
}
}
}