|
1 | 1 | import 'package:flutter/material.dart'; |
| 2 | +import 'package:go_router/go_router.dart'; |
| 3 | +import 'package:waves/core/common/extensions/ui.dart'; |
2 | 4 | import 'package:waves/core/common/widgets/empty_state.dart'; |
3 | 5 | import 'package:waves/core/common/widgets/images/user_profile_image.dart'; |
4 | 6 | import 'package:waves/core/common/widgets/loading_state.dart'; |
| 7 | +import 'package:waves/core/dependency_injection/dependency_injection.dart'; |
5 | 8 | import 'package:waves/core/locales/locale_text.dart'; |
6 | 9 | import 'package:waves/core/providers/bookmark_provider.dart'; |
| 10 | +import 'package:waves/core/routes/routes.dart'; |
7 | 11 | import 'package:waves/core/utilities/constants/ui_constants.dart'; |
8 | 12 | import 'package:waves/core/utilities/enum.dart'; |
9 | 13 | import 'package:waves/features/threads/models/thread_feeds/thread_bookmark_model.dart'; |
| 14 | +import 'package:waves/features/threads/models/thread_feeds/thread_feed_model.dart'; |
| 15 | +import 'package:waves/features/threads/repository/thread_repository.dart'; |
10 | 16 |
|
11 | 17 | class ThreadBookmarkWidget extends StatelessWidget { |
12 | 18 | const ThreadBookmarkWidget({super.key}); |
@@ -34,6 +40,29 @@ class ThreadBookmarkWidget extends StatelessWidget { |
34 | 40 | "${item.author}/${item.permlink}", |
35 | 41 | style: theme.textTheme.bodyMedium, |
36 | 42 | ), |
| 43 | + onTap: () async { |
| 44 | + context.showLoader(); |
| 45 | + final repo = getIt<ThreadRepository>(); |
| 46 | + final response = await repo.getcomments( |
| 47 | + item.author, item.permlink, null); |
| 48 | + if (!context.mounted) { |
| 49 | + return; |
| 50 | + } |
| 51 | + context.hideLoader(); |
| 52 | + if (response.isSuccess && |
| 53 | + response.data != null && |
| 54 | + response.data!.isNotEmpty) { |
| 55 | + final ThreadFeedModel target = response.data! |
| 56 | + .firstWhere( |
| 57 | + (element) => |
| 58 | + element.author == item.author && |
| 59 | + element.permlink == item.permlink, |
| 60 | + orElse: () => response.data!.first); |
| 61 | + context.pushNamed(Routes.commentDetailView, extra: target); |
| 62 | + } else { |
| 63 | + context.showSnackBar(LocaleText.somethingWentWrong); |
| 64 | + } |
| 65 | + }, |
37 | 66 | ); |
38 | 67 | }); |
39 | 68 | } else { |
|
0 commit comments