diff --git a/WooCommerce/Classes/Extensions/Booking+Helpers.swift b/WooCommerce/Classes/Extensions/Booking+Helpers.swift index 8c86a703be5..a1263360371 100644 --- a/WooCommerce/Classes/Extensions/Booking+Helpers.swift +++ b/WooCommerce/Classes/Extensions/Booking+Helpers.swift @@ -2,14 +2,18 @@ import Foundation import struct Yosemite.Booking extension Booking { + var productName: String? { + orderInfo?.productInfo?.name + } + + var customerName: String { + guard let name = orderInfo?.customerInfo?.billingAddress.fullName else { + return Localization.guest + } + return name.isEmpty ? Localization.guest : name + } + var summaryText: String { - let productName = orderInfo?.productInfo?.name - let customerName: String = { - guard let name = orderInfo?.customerInfo?.billingAddress.fullName else { - return Localization.guest - } - return name.isEmpty ? Localization.guest : name - }() return [productName, customerName] .compactMap { $0 } .joined(separator: " • ") diff --git a/WooCommerce/Classes/ViewModels/Booking Details/HeaderContent.swift b/WooCommerce/Classes/ViewModels/Booking Details/HeaderContent.swift index eae058c9fb7..83817addc7e 100644 --- a/WooCommerce/Classes/ViewModels/Booking Details/HeaderContent.swift +++ b/WooCommerce/Classes/ViewModels/Booking Details/HeaderContent.swift @@ -11,7 +11,8 @@ extension BookingDetailsViewModel { @Published private(set) var bookingDate: String = "" @Published private(set) var attendanceStatus: BookingAttendanceStatus = .unknown @Published private(set) var bookingStatus: BookingStatus = .unknown - @Published private(set) var serviceAndCustomerLine: String = "" + @Published private(set) var serviceLine: String = "" + @Published private(set) var customerLine: String = "" func update(with booking: Booking) { bookingDate = booking.startDate.toString( @@ -19,7 +20,8 @@ extension BookingDetailsViewModel { timeStyle: .short, timeZone: BookingListTab.utcTimeZone ) - serviceAndCustomerLine = booking.summaryText + serviceLine = booking.productName ?? "" + customerLine = booking.customerName attendanceStatus = booking.attendanceStatus bookingStatus = booking.bookingStatus } diff --git a/WooCommerce/Classes/ViewRelated/Bookings/Booking Details/BookingDetailsView.swift b/WooCommerce/Classes/ViewRelated/Bookings/Booking Details/BookingDetailsView.swift index baecbc78318..6191a146fda 100644 --- a/WooCommerce/Classes/ViewRelated/Bookings/Booking Details/BookingDetailsView.swift +++ b/WooCommerce/Classes/ViewRelated/Bookings/Booking Details/BookingDetailsView.swift @@ -14,8 +14,8 @@ struct BookingDetailsView: View { enum Layout { static let contentSidePadding: CGFloat = 16 static let contentVerticalPadding: CGFloat = 16 - static let headerContentVerticalPadding: CGFloat = 6 - static let headerBadgesAdditionalTopPadding: CGFloat = 4 + static let headerContentVerticalPadding: CGFloat = 2 + static let headerBadgesAdditionalTopPadding: CGFloat = 6 static let sectionFooterTextVerticalPadding: CGFloat = 8 static let rowTextVerticalPadding: CGFloat = 11 } diff --git a/WooCommerce/Classes/ViewRelated/Bookings/Booking Details/HeaderView.swift b/WooCommerce/Classes/ViewRelated/Bookings/Booking Details/HeaderView.swift index 3e17b5024a4..b4091d817de 100644 --- a/WooCommerce/Classes/ViewRelated/Bookings/Booking Details/HeaderView.swift +++ b/WooCommerce/Classes/ViewRelated/Bookings/Booking Details/HeaderView.swift @@ -11,9 +11,14 @@ extension BookingDetailsView { .font(TextFont.bodyMedium) .foregroundColor(.primary) } - if !content.serviceAndCustomerLine.isEmpty { - Text(content.serviceAndCustomerLine) - .font(.footnote.weight(.medium)) + if !content.serviceLine.isEmpty { + Text(content.serviceLine) + .font(.body) + .foregroundColor(.secondary) + } + if !content.customerLine.isEmpty { + Text(content.customerLine) + .font(.body) .foregroundColor(.secondary) } HStack { diff --git a/WooCommerce/WooCommerceTests/ViewRelated/Bookings/BookingDetailsViewModelTests.swift b/WooCommerce/WooCommerceTests/ViewRelated/Bookings/BookingDetailsViewModelTests.swift index b857d06f723..08b2eb1dc19 100644 --- a/WooCommerce/WooCommerceTests/ViewRelated/Bookings/BookingDetailsViewModelTests.swift +++ b/WooCommerce/WooCommerceTests/ViewRelated/Bookings/BookingDetailsViewModelTests.swift @@ -126,7 +126,7 @@ final class BookingDetailsViewModelTests: XCTestCase { XCTAssertFalse(hasCustomerSection) } - func test_header_content_uses_booking_summary_text() { + func test_header_content_uses_correct_contents() { // Given let billingAddress = Address.fake().copy( firstName: "Jane", @@ -159,7 +159,8 @@ final class BookingDetailsViewModelTests: XCTestCase { return } - XCTAssertEqual(headerContent.serviceAndCustomerLine, "Massage Therapy • Jane Smith") + XCTAssertEqual(headerContent.serviceLine, "Massage Therapy") + XCTAssertEqual(headerContent.customerLine, "Jane Smith") } func test_customer_content_populated_from_billing_address() {