Skip to content

Commit d39c379

Browse files
committed
5342 🏕 use ReceiptContent to render receipt
1 parent 39a8272 commit d39c379

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

Hardware/Hardware/Printer/AirPrintReceipt/ReceiptRenderer.swift

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ import UIKit
33
/// Renders a receipt in an AirPrint enabled printer.
44
///
55
public final class ReceiptRenderer: UIPrintPageRenderer {
6-
private let lines: [ReceiptLineItem]
7-
private let parameters: CardPresentReceiptParameters
8-
private let cartTotals: [ReceiptTotalLine]
6+
private let content: ReceiptContent
97

108
private let dateFormatter: DateFormatter = {
119
let formatter = DateFormatter()
@@ -17,9 +15,7 @@ public final class ReceiptRenderer: UIPrintPageRenderer {
1715
}()
1816

1917
public init(content: ReceiptContent) {
20-
self.lines = content.lineItems
21-
self.parameters = content.parameters
22-
self.cartTotals = content.cartTotals
18+
self.content = content
2319

2420
super.init()
2521

@@ -77,15 +73,15 @@ public extension ReceiptRenderer {
7773
<h1>\(receiptTitle)</h1>
7874
<h3>\(Localization.amountPaidSectionTitle.uppercased())</h3>
7975
<p>
80-
\(parameters.formattedAmount) \(parameters.currency.uppercased())
76+
\(content.parameters.formattedAmount) \(content.parameters.currency.uppercased())
8177
</p>
8278
<h3>\(Localization.datePaidSectionTitle.uppercased())</h3>
8379
<p>
84-
\(dateFormatter.string(from: parameters.date))
80+
\(dateFormatter.string(from: content.parameters.date))
8581
</p>
8682
<h3>\(Localization.paymentMethodSectionTitle.uppercased())</h3>
8783
<p>
88-
<span class="card-icon \(parameters.cardDetails.brand.iconName)-icon"></span> - \(parameters.cardDetails.last4)
84+
<span class="card-icon \(content.parameters.cardDetails.brand.iconName)-icon"></span> - \(content.parameters.cardDetails.last4)
8985
</p>
9086
</header>
9187
<h3>\(summarySectionTitle.uppercased())</h3>
@@ -112,8 +108,8 @@ private extension ReceiptRenderer {
112108

113109
private func summaryTable() -> String {
114110
var summaryContent = "<table>"
115-
for line in lines {
116-
summaryContent += "<tr><td>\(line.title) × \(line.quantity)</td><td>\(line.amount) \(parameters.currency.uppercased())</td></tr>"
111+
for line in content.lineItems {
112+
summaryContent += "<tr><td>\(line.title) × \(line.quantity)</td><td>\(line.amount) \(content.parameters.currency.uppercased())</td></tr>"
117113
}
118114
summaryContent += totalRows()
119115
summaryContent += "</table>"
@@ -123,7 +119,7 @@ private extension ReceiptRenderer {
123119

124120
private func totalRows() -> String {
125121
var rows = ""
126-
for total in cartTotals {
122+
for total in content.cartTotals {
127123
rows += summaryRow(title: total.description, amount: total.amount)
128124
}
129125
return rows
@@ -136,14 +132,14 @@ private extension ReceiptRenderer {
136132
\(title)
137133
</td>
138134
<td>
139-
\(amount) \(parameters.currency.uppercased())
135+
\(amount) \(content.parameters.currency.uppercased())
140136
</td>
141137
</tr>
142138
"""
143139
}
144140

145141
private func requiredItems() -> String {
146-
guard let emv = parameters.cardDetails.receipt else {
142+
guard let emv = content.parameters.cardDetails.receipt else {
147143
return "<br/>"
148144
}
149145

@@ -163,15 +159,15 @@ private extension ReceiptRenderer {
163159
}
164160

165161
private var receiptTitle: String {
166-
guard let storeName = parameters.storeName else {
162+
guard let storeName = content.parameters.storeName else {
167163
return Localization.receiptTitle
168164
}
169165

170166
return .localizedStringWithFormat(Localization.receiptFromFormat, storeName)
171167
}
172168

173169
private var summarySectionTitle: String {
174-
guard let orderID = parameters.orderID else {
170+
guard let orderID = content.parameters.orderID else {
175171
return Localization.summarySectionTitle
176172
}
177173
return String(format: Localization.summarySectionTitleWithOrderFormat, String(orderID))

0 commit comments

Comments
 (0)