Skip to content

Commit a3dc5b1

Browse files
committed
Add List testing view(s)
1 parent 3eac87d commit a3dc5b1

File tree

6 files changed

+87
-7
lines changed

6 files changed

+87
-7
lines changed

Demo App/Twift_SwiftUI.xcodeproj/project.pbxproj

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10+
710AAC9927F3552C00427266 /* CreateList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 710AAC9827F3552C00427266 /* CreateList.swift */; };
11+
710AAC9C27F3561900427266 /* Lists.swift in Sources */ = {isa = PBXBuildFile; fileRef = 710AAC9B27F3561900427266 /* Lists.swift */; };
1012
71242AAB278F1F57000372DE /* Twift in Frameworks */ = {isa = PBXBuildFile; productRef = 71242AAA278F1F57000372DE /* Twift */; };
1113
71242AAE27918311000372DE /* Users.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71242AAD27918310000372DE /* Users.swift */; };
1214
71242AB12791839F000372DE /* GetUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71242AB02791839F000372DE /* GetUser.swift */; };
@@ -51,6 +53,8 @@
5153
/* End PBXBuildFile section */
5254

5355
/* Begin PBXFileReference section */
56+
710AAC9827F3552C00427266 /* CreateList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateList.swift; sourceTree = "<group>"; };
57+
710AAC9B27F3561900427266 /* Lists.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Lists.swift; sourceTree = "<group>"; };
5458
711A9309278F1F1000F2F451 /* Twift */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = Twift; path = ..; sourceTree = "<group>"; };
5559
71242AAC278F21FE000372DE /* Twift-SwiftUI-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Twift-SwiftUI-Info.plist"; sourceTree = SOURCE_ROOT; };
5660
71242AAD27918310000372DE /* Users.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Users.swift; sourceTree = "<group>"; };
@@ -108,6 +112,15 @@
108112
/* End PBXFrameworksBuildPhase section */
109113

110114
/* Begin PBXGroup section */
115+
710AAC9A27F355FE00427266 /* Lists */ = {
116+
isa = PBXGroup;
117+
children = (
118+
710AAC9827F3552C00427266 /* CreateList.swift */,
119+
710AAC9B27F3561900427266 /* Lists.swift */,
120+
);
121+
path = Lists;
122+
sourceTree = "<group>";
123+
};
111124
711A9308278F1F1000F2F451 /* Packages */ = {
112125
isa = PBXGroup;
113126
children = (
@@ -140,6 +153,7 @@
140153
714749CB2793326B00CB128B /* UnblockUser.swift */,
141154
71242AC72791F8A5000372DE /* UnfollowUser.swift */,
142155
714749D52793417700CB128B /* UnmuteUser.swift */,
156+
71242AAD27918310000372DE /* Users.swift */,
143157
);
144158
path = Users;
145159
sourceTree = "<group>";
@@ -187,11 +201,10 @@
187201
712BF22A278F1C02006CB2F2 /* ContentView.swift */,
188202
714749F12799CED800CB128B /* Helpers.swift */,
189203
71242ACD279202BA000372DE /* Secrets.swift */,
190-
714749D727934ADE00CB128B /* Tweets.swift */,
191204
712BF228278F1C02006CB2F2 /* Twift_SwiftUIApp.swift */,
192-
71242AAD27918310000372DE /* Users.swift */,
193205
712BF22C278F1C03006CB2F2 /* Assets.xcassets */,
194206
71242AB227918C49000372DE /* Helper Views */,
207+
710AAC9A27F355FE00427266 /* Lists */,
195208
714749D927934B0E00CB128B /* Tweets */,
196209
71242AAF27918388000372DE /* Users */,
197210
);
@@ -204,6 +217,7 @@
204217
714749DA27934B1A00CB128B /* GetTweet.swift */,
205218
714749ED27960BBC00CB128B /* LikeTweet.swift */,
206219
71D283EE279DAD5F00640B2A /* PostTweet.swift */,
220+
714749D727934ADE00CB128B /* Tweets.swift */,
207221
714749F52799DA5100CB128B /* UploadMedia.swift */,
208222
714749EF27980EDC00CB128B /* UserLikes.swift */,
209223
714749EB2796079400CB128B /* UserMentions.swift */,
@@ -316,6 +330,7 @@
316330
712BF229278F1C02006CB2F2 /* Twift_SwiftUIApp.swift in Sources */,
317331
71242ABA2791B624000372DE /* GetUsersByUsernames.swift in Sources */,
318332
714749F027980EDC00CB128B /* UserLikes.swift in Sources */,
333+
710AAC9927F3552C00427266 /* CreateList.swift in Sources */,
319334
7157CD1527F303D900324A43 /* PaginatedTweetsMethodView.swift in Sources */,
320335
714749F22799CED800CB128B /* Helpers.swift in Sources */,
321336
71242AC82791F8A5000372DE /* UnfollowUser.swift in Sources */,
@@ -328,6 +343,7 @@
328343
714749E82795B45F00CB128B /* VolumeStream.swift in Sources */,
329344
714749D0279337B200CB128B /* MethodRow.swift in Sources */,
330345
714749D2279340B600CB128B /* GetMutedUsers.swift in Sources */,
346+
710AAC9C27F3561900427266 /* Lists.swift in Sources */,
331347
714749F42799DA2C00CB128B /* PhotoPicker.swift in Sources */,
332348
71242ABE2791D244000372DE /* AsyncButton.swift in Sources */,
333349
71242AC62791F69C000372DE /* FollowUser.swift in Sources */,

Demo App/Twift_SwiftUI/ContentView.swift

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,10 @@ struct ContentView: View {
5050

5151
Section("Examples") {
5252
NavigationLink(destination: Users()) { Label("Users", systemImage: "person") }
53-
.disabled(!twitterClient.hasUserAuth)
5453
NavigationLink(destination: Tweets()) { Label("Tweets", systemImage: "bubble.left") }
55-
.disabled(!twitterClient.hasUserAuth)
56-
54+
NavigationLink(destination: Lists()) { Label("Lists", systemImage: "list.star") }
5755
NavigationLink(destination: UploadMedia()) { Label("Upload Image", systemImage: "photo") }
58-
.disabled(!twitterClient.hasUserAuth)
59-
}
56+
}.disabled(!twitterClient.hasUserAuth)
6057

6158
Section {
6259
NavigationLink(destination: HelpfulIDs()) { Label("Helpful IDs", systemImage: "lifepreserver") }
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
//
2+
// CreateList.swift
3+
// Twift_SwiftUI
4+
//
5+
// Created by Daniel Eden on 29/03/2022.
6+
//
7+
8+
import SwiftUI
9+
import Twift
10+
11+
struct CreateList: View {
12+
@EnvironmentObject var twitterClient: Twift
13+
@State var listName = ""
14+
@State var listDescription = ""
15+
@State var isPrivate = false
16+
17+
var body: some View {
18+
Form {
19+
Section {
20+
TextField("List name", text: $listName)
21+
TextField("List description", text: $listDescription)
22+
Toggle("Private list", isOn: $isPrivate)
23+
24+
AsyncButton {
25+
do {
26+
let result = try await twitterClient.createList(name: listName,
27+
description: listDescription,
28+
isPrivate: isPrivate)
29+
print(result)
30+
} catch {
31+
print(error.localizedDescription)
32+
}
33+
} label: {
34+
Text("Create List")
35+
}.disabled(listName.isEmpty)
36+
}
37+
}.navigationTitle("Create List")
38+
}
39+
}
40+
41+
struct CreateList_Previews: PreviewProvider {
42+
static var previews: some View {
43+
CreateList()
44+
}
45+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
//
2+
// Lists.swift
3+
// Twift_SwiftUI
4+
//
5+
// Created by Daniel Eden on 29/03/2022.
6+
//
7+
8+
import SwiftUI
9+
10+
struct Lists: View {
11+
var body: some View {
12+
Form {
13+
NavigationLink(destination: CreateList()) { MethodRow(label: "`createList(name:description:isPrivate)`", method: .POST) }
14+
}.navigationTitle("Lists")
15+
}
16+
}
17+
18+
struct Lists_Previews: PreviewProvider {
19+
static var previews: some View {
20+
Lists()
21+
}
22+
}
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)