Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,16 @@ extension OrderDetailsViewModel {
let customFieldsView = UIHostingController(
rootView: CustomFieldsListView(
isEditable: featureFlagService.isFeatureFlagEnabled(.viewEditCustomFieldsInProductsAndOrders),
viewModel: CustomFieldsListViewModel(customFields: customFields)))
viewController.present(customFieldsView, animated: true)
viewModel: CustomFieldsListViewModel(customFields: customFields),
onBackButtonTapped: {
// Restore the hidden navigation bar
viewController.navigationController?.setNavigationBarHidden(false, animated: true)
})
)

// Hide the navigation bar as `CustomFieldsListView` will create its own toolbar.
viewController.navigationController?.setNavigationBarHidden(true, animated: true)
viewController.navigationController?.pushViewController(customFieldsView, animated: true)
case .seeReceipt:
let countryCode = configurationLoader.configuration.countryCode
ServiceLocator.analytics.track(event: .InPersonPayments.receiptViewTapped(countryCode: countryCode, source: .backend))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,18 @@ struct CustomFieldsListView: View {
@ObservedObject private var viewModel: CustomFieldsListViewModel

let isEditable: Bool
let onBackButtonTapped: () -> Void

init(isEditable: Bool,
viewModel: CustomFieldsListViewModel) {
viewModel: CustomFieldsListViewModel,
onBackButtonTapped: @escaping () -> Void) {
self.isEditable = isEditable
self.viewModel = viewModel
self.onBackButtonTapped = onBackButtonTapped
}

var body: some View {
NavigationView {
NavigationStack {
List(viewModel.combinedList) { customField in
if isEditable {
NavigationLink(destination: CustomFieldEditorView(key: customField.key, value: customField.value)) {
Expand All @@ -29,14 +32,16 @@ struct CustomFieldsListView: View {
contentURL: nil)
}
}
.listStyle(.plain)
.navigationTitle(Localization.title)
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .cancellationAction) {
Button(action: {
onBackButtonTapped()
presentationMode.wrappedValue.dismiss()
}, label: {
Image(uiImage: .closeButton)
Image(systemName: "chevron.backward")
})
}

Expand Down Expand Up @@ -133,7 +138,6 @@ extension CustomFieldsListView {
private extension CustomFieldRow {
enum Constants {
static let spacing: CGFloat = 8
static let vStackPadding: CGFloat = 16
static let hStackPadding: CGFloat = 10
static let height: CGFloat = 64
}
Expand All @@ -149,7 +153,8 @@ struct OrderCustomFieldsDetails_Previews: PreviewProvider {
customFields: [
CustomFieldViewModel(id: 0, title: "First Title", content: "First Content"),
CustomFieldViewModel(id: 1, title: "Second Title", content: "Second Content", contentURL: URL(string: "https://woocommerce.com/"))
])
]),
onBackButtonTapped: { }
)
}
}
Expand Down