home.dart 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import 'package:e2ee_chat/common/global.dart';
  2. import 'package:e2ee_chat/network/api.dart';
  3. import 'package:e2ee_chat/models/user_model.dart';
  4. import 'package:e2ee_chat/widgets/empty.dart';
  5. import 'package:flukit/flukit.dart';
  6. import 'package:flutter/material.dart';
  7. import 'package:provider/provider.dart';
  8. class HomeRoute extends StatefulWidget {
  9. @override
  10. _HomeRouteState createState() => _HomeRouteState();
  11. }
  12. class _HomeRouteState extends State<HomeRoute> {
  13. @override
  14. Widget build(BuildContext context) {
  15. return Scaffold(
  16. appBar: AppBar(
  17. title: Text(GmLocalizations.of(context).home),
  18. ),
  19. body: _buildBody(), // 构建主页面
  20. );
  21. }
  22. Widget _buildBody() {
  23. UserModel userModel = Provider.of<UserModel>(context);
  24. if (!userModel.isLogin) {
  25. //用户未登录,显示登录按钮
  26. return Center(
  27. child: ElevatedButton(
  28. child: Text(GmLocalizations.of(context).login),
  29. onPressed: () => Navigator.of(context).pushNamed("login"),
  30. ),
  31. );
  32. } else {
  33. return EmptyWidget();
  34. //已登录,则展示项目列表
  35. /*
  36. return InfiniteListView<Repo>(
  37. onRetrieveData: (int page, List<Repo> items, bool refresh) async {
  38. var data = await Api(context).getRepos(
  39. refresh: refresh,
  40. queryParameters: {
  41. 'page': page,
  42. 'page_size': 20,
  43. },
  44. );
  45. //把请求到的新数据添加到items中
  46. items.addAll(data);
  47. // 如果接口返回的数量等于'page_size',则认为还有数据,反之则认为最后一页
  48. return data.length==20;
  49. },
  50. itemBuilder: (List list, int index, BuildContext ctx) {
  51. // 项目信息列表项
  52. return RepoItem(list[index]);
  53. },
  54. );
  55. */
  56. }
  57. }
  58. }