mac: simplify package manager picker
This commit is contained in:
@@ -4,7 +4,7 @@ import SwiftUI
|
|||||||
private enum NodePackageManager: String, CaseIterable, Identifiable {
|
private enum NodePackageManager: String, CaseIterable, Identifiable {
|
||||||
case npm
|
case npm
|
||||||
case pnpm
|
case pnpm
|
||||||
case yarn
|
case bun
|
||||||
|
|
||||||
var id: String { self.rawValue }
|
var id: String { self.rawValue }
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@ private enum NodePackageManager: String, CaseIterable, Identifiable {
|
|||||||
switch self {
|
switch self {
|
||||||
case .npm: "NPM"
|
case .npm: "NPM"
|
||||||
case .pnpm: "PNPM"
|
case .pnpm: "PNPM"
|
||||||
case .yarn: "Yarn"
|
case .bun: "Bun"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ private enum NodePackageManager: String, CaseIterable, Identifiable {
|
|||||||
switch self {
|
switch self {
|
||||||
case .npm: "npm install -g"
|
case .npm: "npm install -g"
|
||||||
case .pnpm: "pnpm add -g"
|
case .pnpm: "pnpm add -g"
|
||||||
case .yarn: "yarn global add"
|
case .bun: "bun add -g"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -223,22 +223,22 @@ struct ToolsSettings: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private var packageManager: NodePackageManager {
|
private var packageManager: NodePackageManager {
|
||||||
NodePackageManager(rawValue: self.packageManagerRaw) ?? .npm
|
if let parsed = NodePackageManager(rawValue: self.packageManagerRaw) {
|
||||||
|
return parsed
|
||||||
|
}
|
||||||
|
// Backward compatibility: map legacy "yarn" selection to Bun.
|
||||||
|
if self.packageManagerRaw == "yarn" { return .bun }
|
||||||
|
return .npm
|
||||||
}
|
}
|
||||||
|
|
||||||
private var packageManagerPicker: some View {
|
private var packageManagerPicker: some View {
|
||||||
VStack(alignment: .leading, spacing: 6) {
|
Picker("Preferred package manager", selection: self.$packageManagerRaw) {
|
||||||
Text("Preferred package manager")
|
ForEach(NodePackageManager.allCases) { manager in
|
||||||
.font(.caption.weight(.semibold))
|
Text(manager.label).tag(manager.rawValue)
|
||||||
.foregroundStyle(.secondary)
|
|
||||||
Picker("Preferred package manager", selection: self.$packageManagerRaw) {
|
|
||||||
ForEach(NodePackageManager.allCases) { manager in
|
|
||||||
Text(manager.label).tag(manager.rawValue)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.pickerStyle(.segmented)
|
|
||||||
.frame(maxWidth: 340)
|
|
||||||
}
|
}
|
||||||
|
.pickerStyle(.segmented)
|
||||||
|
.frame(maxWidth: 340)
|
||||||
.padding(.top, 2)
|
.padding(.top, 2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user