From cc4768b5e77d71da683679c5c00fe9faeaba95c3 Mon Sep 17 00:00:00 2001 From: Thomas Ricouard Date: Fri, 24 Feb 2023 09:23:16 +0100 Subject: [PATCH] Profile edit: Allow re order of fields --- Packages/Account/Sources/Account/Edit/EditAccountView.swift | 4 ++++ Packages/Network/Sources/Network/Client.swift | 1 + Packages/Network/Sources/Network/Endpoint/Accounts.swift | 6 ++---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Packages/Account/Sources/Account/Edit/EditAccountView.swift b/Packages/Account/Sources/Account/Edit/EditAccountView.swift index f622f8e2..cf8c110c 100644 --- a/Packages/Account/Sources/Account/Edit/EditAccountView.swift +++ b/Packages/Account/Sources/Account/Edit/EditAccountView.swift @@ -24,6 +24,7 @@ public struct EditAccountView: View { accountSection } } + .environment(\.editMode, .constant(.active)) .scrollContentBackground(.hidden) .background(theme.secondaryBackgroundColor) .scrollDismissesKeyboard(.immediately) @@ -108,6 +109,9 @@ public struct EditAccountView: View { TextField("account.edit.metadata-value-placeholder", text: $field.value) } } + .onMove(perform: { indexSet, newOffset in + viewModel.fields.move(fromOffsets: indexSet, toOffset: newOffset) + }) .onDelete { indexes in if let index = indexes.first { viewModel.fields.remove(at: index) diff --git a/Packages/Network/Sources/Network/Client.swift b/Packages/Network/Sources/Network/Client.swift index 10fe715f..2b79323f 100644 --- a/Packages/Network/Sources/Network/Client.swift +++ b/Packages/Network/Sources/Network/Client.swift @@ -93,6 +93,7 @@ public final class Client: ObservableObject, Equatable, Identifiable, Hashable { if let json = endpoint.jsonValue { let encoder = JSONEncoder() encoder.keyEncodingStrategy = .convertToSnakeCase + encoder.outputFormatting = .sortedKeys do { let jsonData = try encoder.encode(json) request.httpBody = jsonData diff --git a/Packages/Network/Sources/Network/Endpoint/Accounts.swift b/Packages/Network/Sources/Network/Endpoint/Accounts.swift index e5479f85..c01c817d 100644 --- a/Packages/Network/Sources/Network/Endpoint/Accounts.swift +++ b/Packages/Network/Sources/Network/Endpoint/Accounts.swift @@ -199,10 +199,8 @@ public struct UpdateCredentialsData: Encodable, Sendable { self.discoverable = discoverable var fieldAttributes: [String: FieldData] = [:] - var index: Int = 0 - for fieldsAttribute in fieldsAttributes { - fieldAttributes[String(index)] = fieldsAttribute - index += 1 + for (index, field) in fieldsAttributes.enumerated() { + fieldAttributes[String(index)] = field } self.fieldsAttributes = fieldAttributes }