Skip to content

Commit 27d6e31

Browse files
authored
Merge pull request #6996 from woocommerce/issue/6861-date-time-order-details
[Order Details] Display date and time in the order details screen
2 parents 2c5585f + c889eeb commit 27d6e31

File tree

4 files changed

+16
-33
lines changed

4 files changed

+16
-33
lines changed

RELEASE-NOTES.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
9.4
44
-----
5-
5+
- [*] Orders: Order details now displays both the date and time for all orders. [https://github.com/woocommerce/woocommerce-ios/pull/6996]
66

77
9.3
88
-----

WooCommerce/Classes/Extensions/DateFormatter+Helpers.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,4 +154,15 @@ extension DateFormatter {
154154
formatter.setLocalizedDateFormatFromTemplate("hh:mm a")
155155
return formatter
156156
}()
157+
158+
/// Date formatter used for creating a **localized** date and time string.
159+
///
160+
/// Example output in English: "Jan 28, 2018, 11:23 AM"
161+
///
162+
public static let dateAndTimeFormatter: DateFormatter = {
163+
let formatter = DateFormatter()
164+
formatter.setLocalizedDateFormatFromTemplate("MMM d yyyy hh:mm a")
165+
166+
return formatter
167+
}()
157168
}

WooCommerce/Classes/ViewRelated/Orders/Order Details/Order Summary Section/SummaryTableViewCell.swift

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,19 +46,10 @@ struct SummaryTableViewCellViewModel {
4646
}
4747
}
4848

49-
/// The date and the order number concatenated together. Example, “Jan 22, 2018 • #1587”.
50-
///
51-
/// If the date is today, the time will be returned instead.
49+
/// The date, time, and the order number concatenated together. Example, “Jan 22, 2018, 11:23 AM • #1587”.
5250
///
5351
var subtitle: String {
54-
let formatter: DateFormatter = {
55-
if dateCreated.isSameDay(as: Date(), using: calendar) {
56-
return DateFormatter.timeFormatter
57-
} else {
58-
return DateFormatter.mediumLengthLocalizedDateFormatter
59-
}
60-
}()
61-
52+
let formatter = DateFormatter.dateAndTimeFormatter
6253
return "\(formatter.string(from: dateCreated)) • #\(orderNumber)"
6354
}
6455
}

WooCommerce/WooCommerceTests/ViewRelated/Orders/Order Details/Order Summary Section/SummaryTableViewCell/SummaryTableViewCellViewModelTests.swift

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -32,28 +32,9 @@ final class SummaryTableViewCellViewModelTests: XCTestCase {
3232
XCTAssertEqual(personName, "Skylar Ferry")
3333
}
3434

35-
func test_subtitle_returns_the_date_and_order_number() throws {
35+
func test_subtitle_returns_the_date_and_time_and_order_number() throws {
3636
// Given
37-
let expectedFormatter = DateFormatter.mediumLengthLocalizedDateFormatter
38-
let calendar = Calendar(identifier: .gregorian, timeZone: expectedFormatter.timeZone)
39-
40-
let order = makeOrder(dateCreated: try XCTUnwrap(Date().adding(days: -2, using: calendar)))
41-
42-
let viewModel = SummaryTableViewCellViewModel(order: order,
43-
status: nil,
44-
calendar: calendar)
45-
46-
// When
47-
let subtitle = viewModel.subtitle
48-
49-
// Then
50-
let expectedSubtitle = expectedFormatter.string(from: order.dateCreated) + " • #\(order.number)"
51-
XCTAssertEqual(subtitle, expectedSubtitle)
52-
}
53-
54-
func test_given_an_order_created_today_then_subtitle_returns_the_time_and_order_number() {
55-
// Given
56-
let expectedFormatter = DateFormatter.timeFormatter
37+
let expectedFormatter = DateFormatter.dateAndTimeFormatter
5738
let calendar = Calendar(identifier: .gregorian, timeZone: expectedFormatter.timeZone)
5839

5940
let order = makeOrder(dateCreated: Date())

0 commit comments

Comments
 (0)