D1APP-61 basic ui and api call

This commit is contained in:
MohammadTaha Basiri 2022-01-11 18:54:42 +03:30
parent a366c0372f
commit 0d3077cc25
2 changed files with 68 additions and 0 deletions

View File

@ -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<String, dynamic> pageData;
const Comments({
Key? key,
required this.pageData,
}) : super(key: key);
@override
_CommentsState createState() => _CommentsState();
}
class _CommentsState extends State<Comments> {
@override
void initState() {
final state = context.read<CommentsState>();
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(),
);
}
}

View File

@ -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<Comment> comments = [];
bool isRadar = true;
int id = 0;
Future<void> 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;
}
}