| | |
| | | } |
| | | switch proEntitlement.accessState { |
| | | case .free: |
| | | return .locked |
| | | return .neutral |
| | | case .purchased: |
| | | return .unlocked |
| | | case .legacy: |
| | |
| | | ) |
| | | } |
| | | |
| | | private var dataProStatusCard: some View { |
| | | private var proStatusCard: some View { |
| | | HStack(alignment: .top, spacing: 18) { |
| | | VStack(alignment: .leading, spacing: 10) { |
| | | HStack(spacing: 10) { |
| | |
| | | Spacer(minLength: 36) |
| | | |
| | | VStack(alignment: .center, spacing: 24) { |
| | | dataProStatusCard |
| | | |
| | | dataSection(minHeight: 124) { |
| | | HStack(alignment: .center, spacing: 12) { |
| | | dataSectionTitle(tr("settings.initialLayout")) |
| | |
| | | case .about: |
| | | // Tab 6: About |
| | | VStack(spacing: 0) { |
| | | Spacer(minLength: 72) |
| | | Spacer(minLength: 44) |
| | | |
| | | HStack { |
| | | VStack(alignment: .center, spacing: 24) { |
| | | proStatusCard |
| | | |
| | | HStack(alignment: .center, spacing: 24) { |
| | | if let icon = NSImage(named: NSImage.applicationIconName) { |
| | | Image(nsImage: icon) |
| | | .resizable() |
| | | .frame(width: 128, height: 128) |
| | | .frame(width: 112, height: 112) |
| | | } |
| | | VStack(alignment: .leading, spacing: 4) { |
| | | Text("TagLauncher") |
| | |
| | | .foregroundStyle(.secondary) |
| | | } |
| | | } |
| | | .frame(width: 560, alignment: .leading) |
| | | .frame(width: dataPanelWidth, alignment: .leading) |
| | | } |
| | | .frame(width: dataPanelWidth, alignment: .center) |
| | | |
| | | Spacer(minLength: 30) |
| | | Spacer(minLength: 18) |