Something went wrong. Try again.
A slopfork of Sam Henri Gold's Twitter client, reskinned like Tweetie 2 / Twitter for iPhone circa 2012. Personal use.
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758import ComposableArchitectureimport SwiftUIimport TwitterUI
/// Drafts to pick up again: tap one to finish it, swipe to delete.struct DraftsList: View { let store: StoreOf<ComposeFeature> @Environment(\.dismiss) private var dismiss
var body: some View { VStack(spacing: 0) { ClassicNavigationBar("Drafts") { EmptyView() } trailing: { Button("Done") { dismiss() } .buttonStyle(.classicProminent) .keyboardShortcut(.cancelAction) }
List { ForEach(store.drafts) { draft in Button { store.send(.draftTapped(draft)) } label: { VStack(alignment: .leading, spacing: 4) { if let replyingTo = draft.replyingTo { Text("Replying to @\(replyingTo.author.screenName)") .font(.footnote) .foregroundStyle(.secondary) }
Text(draft.text) .lineLimit(3)
Text(draft.savedAt, format: .relative(presentation: .named)) .font(.footnote) .foregroundStyle(.secondary) } .frame(maxWidth: .infinity, alignment: .leading) .contentShape(.rect) } .buttonStyle(.plain) } .onDelete { store.send(.deleteDrafts($0)) } } .listStyle(.plain) .overlay { if store.drafts.isEmpty { ContentUnavailableView( "No Drafts", twitterIcon: .drafts, description: Text("Saved Tweets will appear here.")) } } } .background(.background) .presentationDragIndicator(.hidden) }}