Skip to content

Commit 6bce372

Browse files
committed
Display attendance status in booking details
1 parent 92b1598 commit 6bce372

File tree

4 files changed

+51
-4
lines changed

4 files changed

+51
-4
lines changed
Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
import Foundation
2+
import Networking
23

34
extension BookingDetailsViewModel {
4-
struct AttendanceContent {
5-
/// Hardcoded attendance value
6-
/// Will be replaced with model value or binding
7-
let value = "Booked"
5+
final class AttendanceContent {
6+
private(set) var value = ""
7+
8+
func update(with booking: Booking) {
9+
value = booking.attendanceStatus.localizedTitle
10+
}
811
}
912
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import Foundation
2+
import Networking
3+
4+
extension BookingAttendanceStatus {
5+
var localizedTitle: String {
6+
switch self {
7+
case .booked:
8+
return NSLocalizedString(
9+
"BookingAttendanceStatus.booked",
10+
value: "Booked",
11+
comment: "Title for 'Booked' booking attendance status."
12+
)
13+
case .checkedIn:
14+
return NSLocalizedString(
15+
"BookingAttendanceStatus.checkedIn",
16+
value: "Checked In",
17+
comment: "Title for 'Checked In' booking attendance status."
18+
)
19+
case .cancelled:
20+
return NSLocalizedString(
21+
"BookingAttendanceStatus.cancelled",
22+
value: "Cancelled",
23+
comment: "Title for 'Cancelled' booking attendance status."
24+
)
25+
case .noShow:
26+
return NSLocalizedString(
27+
"BookingAttendanceStatus.noShow",
28+
value: "No Show",
29+
comment: "Title for 'No Show' booking attendance status."
30+
)
31+
case .unknown:
32+
return NSLocalizedString(
33+
"BookingAttendanceStatus.unknown",
34+
value: "Unknown",
35+
comment: "Title for 'Unknown' booking attendance status."
36+
)
37+
}
38+
}
39+
}

WooCommerce/Classes/ViewModels/Booking Details/BookingDetailsViewModel.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ private extension BookingDetailsViewModel {
9292
}
9393
headerContent.update(with: booking)
9494
appointmentDetailsContent.update(with: booking, resource: bookingResource)
95+
attendanceContent.update(with: booking)
9596
paymentContent.update(with: booking)
9697
}
9798

WooCommerce/WooCommerce.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1008,6 +1008,7 @@
10081008
2D880B492DFB2F3F00A6FB2C /* OptionalBinding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D880B482DFB2F3D00A6FB2C /* OptionalBinding.swift */; };
10091009
2D88C1112DF883C300A6FB2C /* AttributedString+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D88C1102DF883BD00A6FB2C /* AttributedString+Helpers.swift */; };
10101010
2DA63E042E69B6D400B0CB28 /* ApplicationPasswordsExperimentAvailabilityCheckerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DA63E032E69B6D200B0CB28 /* ApplicationPasswordsExperimentAvailabilityCheckerTests.swift */; };
1011+
2DA7D58C2EA6722A007B0F48 /* BookingAttendanceStatus+Localization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DA7D58B2EA6722A007B0F48 /* BookingAttendanceStatus+Localization.swift */; };
10111012
2DAC25202E82A02C008521AF /* BookingDetailsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DAC251F2E82A02C008521AF /* BookingDetailsViewModel.swift */; };
10121013
2DAC2C992E82A185008521AF /* BookingDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DAC2C972E82A185008521AF /* BookingDetailsView.swift */; };
10131014
2DB877522E25466C0001B175 /* ShippingItemRowAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DB877512E25466B0001B175 /* ShippingItemRowAccessibility.swift */; };
@@ -3916,6 +3917,7 @@
39163917
2D880B482DFB2F3D00A6FB2C /* OptionalBinding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OptionalBinding.swift; sourceTree = "<group>"; };
39173918
2D88C1102DF883BD00A6FB2C /* AttributedString+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AttributedString+Helpers.swift"; sourceTree = "<group>"; };
39183919
2DA63E032E69B6D200B0CB28 /* ApplicationPasswordsExperimentAvailabilityCheckerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationPasswordsExperimentAvailabilityCheckerTests.swift; sourceTree = "<group>"; };
3920+
2DA7D58B2EA6722A007B0F48 /* BookingAttendanceStatus+Localization.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BookingAttendanceStatus+Localization.swift"; sourceTree = "<group>"; };
39193921
2DAC251F2E82A02C008521AF /* BookingDetailsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookingDetailsViewModel.swift; sourceTree = "<group>"; };
39203922
2DAC2C972E82A185008521AF /* BookingDetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookingDetailsView.swift; sourceTree = "<group>"; };
39213923
2DB877512E25466B0001B175 /* ShippingItemRowAccessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShippingItemRowAccessibility.swift; sourceTree = "<group>"; };
@@ -7977,6 +7979,7 @@
79777979
2D05D19E2E82D1A3004111FD /* BookingDetailsViewModel+Section.swift */,
79787980
2D05D1A02E82D1EF004111FD /* BookingDetailsViewModel+SectionContent.swift */,
79797981
2D05337D2E951A62004111FD /* BookingDetailsViewModel+PriceFormatting.swift */,
7982+
2DA7D58B2EA6722A007B0F48 /* BookingAttendanceStatus+Localization.swift */,
79807983
);
79817984
path = "Booking Details";
79827985
sourceTree = "<group>";
@@ -14447,6 +14450,7 @@
1444714450
B92639FF293E2D4C00A257E0 /* JustInTimeMessagesProvider.swift in Sources */,
1444814451
02BBD6E529A2678100243BE2 /* StoreOnboardingView.swift in Sources */,
1444914452
02784A03238B8BC800BDD6A8 /* UIView+Border.swift in Sources */,
14453+
2DA7D58C2EA6722A007B0F48 /* BookingAttendanceStatus+Localization.swift in Sources */,
1445014454
CE1CCB402056F21C000EE3AC /* Style.swift in Sources */,
1445114455
EEC099382BF3C6A900FBCF6C /* MostActiveCouponsCardViewModel.swift in Sources */,
1445214456
B943E7252AFA41CF009CBA20 /* OrderDetailsCustomAmountCellViewModel.swift in Sources */,

0 commit comments

Comments
 (0)