Skip to content

Commit b26c219

Browse files
committed
1.2.5+17: Fix Load More, profile page and commenting
1 parent c852f75 commit b26c219

File tree

5 files changed

+44
-23
lines changed

5 files changed

+44
-23
lines changed

android/app/src/main/AndroidManifest.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
android:name="io.flutter.embedding.android.NormalTheme"
1818
android:resource="@style/NormalTheme" />
1919

20+
<meta-data
21+
android:name="flutter_deeplinking_enabled"
22+
android:value="true" />
23+
2024
<intent-filter>
2125
<action android:name="android.intent.action.MAIN" />
2226
<category android:name="android.intent.category.LAUNCHER" />

lib/data/api.dart

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// ignore_for_file: prefer_single_quotes
2+
13
import 'dart:convert';
24
import 'dart:io';
35

@@ -27,12 +29,14 @@ final class Api {
2729
if (statusCode == 403 || statusCode == 404) {
2830
// Ignore 403 errors when unable to login with magic link
2931
// Ignore 404 errors so we can update the build-id and re-fetch posts
30-
handler.resolve(Response(
31-
requestOptions: error.requestOptions,
32-
statusCode: statusCode,
33-
));
32+
handler.resolve(
33+
Response(
34+
requestOptions: error.requestOptions,
35+
statusCode: statusCode,
36+
),
37+
);
3438
} else {
35-
debugPrint(error.response?.data);
39+
debugPrint(error.response?.data.toString());
3640
handler.next(error);
3741
}
3842
},
@@ -165,16 +169,28 @@ final class Api {
165169
throw Exception('Error fetching more');
166170
}
167171

168-
final response = await _dio.post(
169-
'https://stacker.news/api/graphql',
170-
data: postType.getGraphQLBody(cursor),
171-
);
172+
try {
173+
final response = await _dio.post(
174+
'https://stacker.news/api/graphql',
175+
data: postType.getGraphQLBody(cursor),
176+
);
172177

173-
if (response.statusCode == 200) {
174-
return await _parsePosts(response.data, postType);
178+
if (response.statusCode == 200) {
179+
return await _parsePosts(response.data, postType);
180+
}
181+
} catch (e, st) {
182+
debugPrint(e.toString());
183+
debugPrintStack(stackTrace: st);
184+
185+
final msg =
186+
((e is DioException) ? e.response?.data.toString() : e.toString()) ??
187+
'';
188+
Utils.showException(msg, st);
189+
190+
rethrow;
175191
}
176192

177-
throw Exception('Error fetching more');
193+
throw Exception('Error fetching more posts');
178194
}
179195

180196
Future<Post> fetchPostDetails(String id) async {
@@ -251,8 +267,9 @@ final class Api {
251267
}
252268

253269
User _parseProfile(dynamic responseData) {
254-
final userMap =
255-
responseData['pageProps']['data']['user'] as Map<String, dynamic>;
270+
final response = (responseData['pageProps'] ?? responseData);
271+
final data = response['ssrData'] ?? response['data'];
272+
final userMap = data['user'] as Map<String, dynamic>;
256273

257274
return User.fromJson(userMap);
258275
}
@@ -466,7 +483,7 @@ final class Api {
466483
// #endregion Zap Things
467484

468485
// #region Items & Comments
469-
Future<Post?> createComment({
486+
Future<Post?> upsertComment({
470487
required String parentId,
471488
required String text,
472489
}) async {
@@ -475,7 +492,7 @@ final class Api {
475492
final response = await _dio.post(
476493
'https://stacker.news/api/graphql',
477494
data:
478-
'{"operationName":"createComment","variables":{"text":"$text","parentId":"$parentId"},"query":"fragment CommentFields on Item {\\n id\\n parentId\\n createdAt\\n deletedAt\\n text\\n user {\\n name\\n streak\\n hideCowboyHat\\n id\\n __typename\\n }\\n sats\\n upvotes\\n wvotes\\n boost\\n meSats\\n meDontLike\\n meBookmark\\n meSubscription\\n outlawed\\n freebie\\n path\\n commentSats\\n mine\\n otsHash\\n ncomments\\n __typename\\n}\\n\\nfragment CommentsRecursive on Item {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n}\\n\\nmutation createComment(\$text: String!, \$parentId: ID!) {\\n createComment(text: \$text, parentId: \$parentId) {\\n ...CommentFields\\n comments {\\n ...CommentsRecursive\\n __typename\\n }\\n __typename\\n }\\n}\\n"}',
495+
"{\"operationName\":\"upsertComment\",\"variables\":{\"parentId\":\"$parentId\",\"text\":\"$text\"},\"query\":\"fragment CommentFields on Item {\\n id\\n parentId\\n createdAt\\n deletedAt\\n text\\n user {\\n name\\n streak\\n hideCowboyHat\\n id\\n meMute\\n __typename\\n }\\n sats\\n upvotes\\n wvotes\\n boost\\n meSats\\n meDontLike\\n meBookmark\\n meSubscription\\n outlawed\\n freebie\\n path\\n commentSats\\n mine\\n otsHash\\n ncomments\\n imgproxyUrls\\n __typename\\n}\\n\\nfragment CommentsRecursive on Item {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n comments {\\n ...CommentFields\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n }\\n __typename\\n}\\n\\nmutation upsertComment(\$text: String!, \$parentId: ID!, \$hash: String, \$hmac: String) {\\n upsertComment(text: \$text, parentId: \$parentId, hash: \$hash, hmac: \$hmac) {\\n ...CommentFields\\n comments {\\n ...CommentsRecursive\\n __typename\\n }\\n __typename\\n }\\n}\"}",
479496
);
480497

481498
if (response.statusCode == 200) {

0 commit comments

Comments
 (0)