mirror of
https://github.com/Dimillian/IceCubesApp.git
synced 2025-04-27 02:14:45 +00:00
Composer: Better ALT editing UI
This commit is contained in:
parent
263ecbb715
commit
255af8c482
1 changed files with 17 additions and 2 deletions
|
@ -12,6 +12,9 @@ struct StatusEditorMediaEditView: View {
|
||||||
let container: StatusEditorMediaContainer
|
let container: StatusEditorMediaContainer
|
||||||
|
|
||||||
@State private var imageDescription: String = ""
|
@State private var imageDescription: String = ""
|
||||||
|
@FocusState private var isFieldFocused: Bool
|
||||||
|
|
||||||
|
@State private var isUpdating: Bool = false
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
NavigationStack {
|
NavigationStack {
|
||||||
|
@ -20,6 +23,7 @@ struct StatusEditorMediaEditView: View {
|
||||||
TextField("status.editor.media.image-description",
|
TextField("status.editor.media.image-description",
|
||||||
text: $imageDescription,
|
text: $imageDescription,
|
||||||
axis: .vertical)
|
axis: .vertical)
|
||||||
|
.focused($isFieldFocused)
|
||||||
}
|
}
|
||||||
.listRowBackground(theme.primaryBackgroundColor)
|
.listRowBackground(theme.primaryBackgroundColor)
|
||||||
Section {
|
Section {
|
||||||
|
@ -48,24 +52,35 @@ struct StatusEditorMediaEditView: View {
|
||||||
.background(theme.secondaryBackgroundColor)
|
.background(theme.secondaryBackgroundColor)
|
||||||
.onAppear {
|
.onAppear {
|
||||||
imageDescription = container.mediaAttachment?.description ?? ""
|
imageDescription = container.mediaAttachment?.description ?? ""
|
||||||
|
isFieldFocused = true
|
||||||
}
|
}
|
||||||
.navigationTitle("status.editor.media.edit-image")
|
.navigationTitle("status.editor.media.edit-image")
|
||||||
.navigationBarTitleDisplayMode(.inline)
|
.navigationBarTitleDisplayMode(.inline)
|
||||||
.toolbar {
|
.toolbar {
|
||||||
ToolbarItem(placement: .navigationBarTrailing) {
|
ToolbarItem(placement: .navigationBarTrailing) {
|
||||||
Button("action.done") {
|
Button {
|
||||||
if !imageDescription.isEmpty {
|
if !imageDescription.isEmpty {
|
||||||
|
isUpdating = true
|
||||||
if currentInstance.isEditAltTextSupported && viewModel.mode.isEditing {
|
if currentInstance.isEditAltTextSupported && viewModel.mode.isEditing {
|
||||||
Task {
|
Task {
|
||||||
await viewModel.editDescription(container: container, description: imageDescription)
|
await viewModel.editDescription(container: container, description: imageDescription)
|
||||||
|
dismiss()
|
||||||
|
isUpdating = false
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Task {
|
Task {
|
||||||
await viewModel.addDescription(container: container, description: imageDescription)
|
await viewModel.addDescription(container: container, description: imageDescription)
|
||||||
|
dismiss()
|
||||||
|
isUpdating = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dismiss()
|
} label: {
|
||||||
|
if isUpdating {
|
||||||
|
ProgressView()
|
||||||
|
} else {
|
||||||
|
Text("action.done")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue