views: refactor post_changed in PostView
Use some helper functions instead of the full switch
This commit is contained in:
@@ -185,28 +185,12 @@ struct PostView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func post_changed(post: NSMutableAttributedString, media: [UploadedMedia]) {
|
func post_changed(post: NSMutableAttributedString, media: [UploadedMedia]) {
|
||||||
switch action {
|
if let draft = load_draft_for_post(drafts: damus_state.drafts, action: action) {
|
||||||
case .replying_to(let ev):
|
draft.content = post
|
||||||
if let draft = damus_state.drafts.replies[ev] {
|
draft.media = media
|
||||||
draft.content = post
|
} else {
|
||||||
draft.media = media
|
let artifacts = DraftArtifacts(content: post, media: media)
|
||||||
} else {
|
set_draft_for_post(drafts: damus_state.drafts, action: action, artifacts: artifacts)
|
||||||
damus_state.drafts.replies[ev] = DraftArtifacts(content: post, media: media)
|
|
||||||
}
|
|
||||||
case .quoting(let ev):
|
|
||||||
if let draft = damus_state.drafts.quotes[ev] {
|
|
||||||
draft.content = post
|
|
||||||
draft.media = media
|
|
||||||
} else {
|
|
||||||
damus_state.drafts.quotes[ev] = DraftArtifacts(content: post, media: media)
|
|
||||||
}
|
|
||||||
case .posting:
|
|
||||||
if let draft = damus_state.drafts.post {
|
|
||||||
draft.content = post
|
|
||||||
draft.media = media
|
|
||||||
} else {
|
|
||||||
damus_state.drafts.post = DraftArtifacts(content: post, media: media)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -544,6 +528,17 @@ struct UploadedMedia: Equatable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func set_draft_for_post(drafts: Drafts, action: PostAction, artifacts: DraftArtifacts) {
|
||||||
|
switch action {
|
||||||
|
case .replying_to(let ev):
|
||||||
|
drafts.replies[ev] = artifacts
|
||||||
|
case .quoting(let ev):
|
||||||
|
drafts.quotes[ev] = artifacts
|
||||||
|
case .posting:
|
||||||
|
drafts.post = artifacts
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func load_draft_for_post(drafts: Drafts, action: PostAction) -> DraftArtifacts? {
|
func load_draft_for_post(drafts: Drafts, action: PostAction) -> DraftArtifacts? {
|
||||||
switch action {
|
switch action {
|
||||||
case .replying_to(let ev):
|
case .replying_to(let ev):
|
||||||
|
|||||||
Reference in New Issue
Block a user