diff --git a/lib/pages/home/comments/comments.dart b/lib/pages/home/comments/comments.dart new file mode 100644 index 0000000..5846b44 --- /dev/null +++ b/lib/pages/home/comments/comments.dart @@ -0,0 +1,37 @@ +import 'package:didvan/models/view/app_bar_data.dart'; +import 'package:didvan/pages/home/comments/comments_state.dart'; +import 'package:didvan/widgets/didvan/scaffold.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class Comments extends StatefulWidget { + final Map pageData; + const Comments({ + Key? key, + required this.pageData, + }) : super(key: key); + + @override + _CommentsState createState() => _CommentsState(); +} + +class _CommentsState extends State { + @override + void initState() { + final state = context.read(); + state.id = widget.pageData['id']; + state.isRadar = widget.pageData['isRadar']; + Future.delayed( + Duration.zero, + () => state.getComments(), + ); + super.initState(); + } + + @override + Widget build(BuildContext context) { + return DidvanScaffold( + appBarData: AppBarData(), + ); + } +} diff --git a/lib/pages/home/comments/comments_state.dart b/lib/pages/home/comments/comments_state.dart new file mode 100644 index 0000000..5f48e8a --- /dev/null +++ b/lib/pages/home/comments/comments_state.dart @@ -0,0 +1,31 @@ +import 'package:didvan/models/comment/comment.dart'; +import 'package:didvan/models/enums.dart'; +import 'package:didvan/providers/core_provider.dart'; +import 'package:didvan/services/network/request.dart'; +import 'package:didvan/services/network/request_helper.dart'; + +class CommentsState extends CoreProvier { + final List comments = []; + + bool isRadar = true; + int id = 0; + + Future getComments() async { + appState = AppState.busy; + final service = RequestService( + isRadar + ? RequestHelper.radarComments(id) + : RequestHelper.newsComments(id), + ); + await service.httpGet(); + if (service.isSuccess) { + final messages = service.result['messages']; + for (var i = 0; i < messages.length; i++) { + comments.add(Comment.fromJson(messages[i])); + } + appState = AppState.idle; + return; + } + appState = AppState.failed; + } +}