发现页面
This commit is contained in:
@@ -52,7 +52,8 @@ class MomentController extends GetxController {
|
||||
|
||||
Future<void> loadMoreList() async {
|
||||
final res = await MomentProvider.fetchMomentList(
|
||||
momentData.value?.data?.last.createdAt);
|
||||
momentData.value?.data?.last.createdAt,
|
||||
);
|
||||
if (res != null) {
|
||||
final data = res.data ?? [];
|
||||
if (data.isEmpty || res.page?.hasMore == true) {
|
||||
|
||||
@@ -10,10 +10,10 @@ class MomentModel {
|
||||
List<MomentItemModel>? data;
|
||||
PageModel? page;
|
||||
|
||||
factory MomentModel.fromMap(Map<String, dynamic> json) => MomentModel(
|
||||
factory MomentModel.fromJson(Map<String, dynamic> json) => MomentModel(
|
||||
data: List<MomentItemModel>.from(
|
||||
json['data'].map(
|
||||
(x) => MomentItemModel.fromMap(x),
|
||||
(x) => MomentItemModel.fromJson(x),
|
||||
),
|
||||
),
|
||||
page: PageModel.fromJson(json['page']),
|
||||
@@ -47,7 +47,8 @@ class MomentItemModel {
|
||||
String? createdAt;
|
||||
String? time;
|
||||
|
||||
factory MomentItemModel.fromMap(Map<String, dynamic> json) => MomentItemModel(
|
||||
factory MomentItemModel.fromJson(Map<String, dynamic> json) =>
|
||||
MomentItemModel(
|
||||
dynamicId: json['dynamic_id'],
|
||||
user: UserInfoModel.fromJson(json['user']),
|
||||
description: json['description'],
|
||||
@@ -57,8 +58,8 @@ class MomentItemModel {
|
||||
likerCount: json['liker_count'],
|
||||
liker: List<UserInfoModel>.from(
|
||||
json['liker'].map((x) => UserInfoModel.fromJson(x))),
|
||||
comments:
|
||||
List<Comment>.from(json['comments'].map((x) => Comment.fromMap(x))),
|
||||
comments: List<Comment>.from(
|
||||
json['comments'].map((x) => Comment.fromJson(x))),
|
||||
createdAt: json['created_at'],
|
||||
time: json['time'],
|
||||
);
|
||||
@@ -79,7 +80,7 @@ class Comment {
|
||||
String? content;
|
||||
bool isMe;
|
||||
|
||||
factory Comment.fromMap(Map<String, dynamic> json) => Comment(
|
||||
factory Comment.fromJson(Map<String, dynamic> json) => Comment(
|
||||
id: json['comment_id'],
|
||||
parent: json['parent'] == null
|
||||
? null
|
||||
|
||||
@@ -9,10 +9,12 @@ class MomentProvider {
|
||||
static Future<MomentModel?> fetchMomentList([String? createAt]) async {
|
||||
try {
|
||||
final result = await Http.get(
|
||||
'user/dynamics',
|
||||
params: {'created_at': createAt},
|
||||
'dynamics',
|
||||
params: {
|
||||
'created_at': createAt,
|
||||
},
|
||||
);
|
||||
return MomentModel.fromMap(result);
|
||||
return MomentModel.fromJson(result);
|
||||
} catch (e) {
|
||||
UiTools.toast('获取发现列表失败');
|
||||
}
|
||||
@@ -60,7 +62,7 @@ class MomentProvider {
|
||||
'parent_id': parentId,
|
||||
},
|
||||
);
|
||||
return Comment.fromMap(result);
|
||||
return Comment.fromJson(result);
|
||||
} catch (e) {
|
||||
UiTools.toast('评论失败');
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:chat/configs/app_colors.dart';
|
||||
import 'package:chat/routes/moments_routes.dart';
|
||||
import 'package:chat/services/auth_service.dart';
|
||||
import 'package:chat/services/tabbar_service.dart';
|
||||
import 'package:chat/widgets/custom_avatar.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -79,7 +80,7 @@ class _HeaderBackground extends StatelessWidget {
|
||||
bottom: 32,
|
||||
child: GestureDetector(
|
||||
child: Image.asset(
|
||||
'assets/backgrounds/moment_3.jpg',
|
||||
'assets/images/login_bg.png',
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
@@ -94,9 +95,9 @@ class _HeaderBackground extends StatelessWidget {
|
||||
SizedBox(
|
||||
height: 52,
|
||||
child: Obx(() {
|
||||
return const Text(
|
||||
"UserController.to.userInfo.value?.nickname ?? ''",
|
||||
style: TextStyle(
|
||||
return Text(
|
||||
AuthService.to.userInfo.value.nickname ?? '',
|
||||
style: const TextStyle(
|
||||
color: AppColors.white,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 16,
|
||||
@@ -109,7 +110,7 @@ class _HeaderBackground extends StatelessWidget {
|
||||
return GestureDetector(
|
||||
onTap: () => TabbarService.to.index = 4,
|
||||
child: CustomAvatar(
|
||||
'',
|
||||
AuthService.to.userInfo.value.avatar,
|
||||
size: 64,
|
||||
),
|
||||
);
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:chat/configs/app_colors.dart';
|
||||
import 'package:chat/services/tabbar_service.dart';
|
||||
import 'package:chat/views/contact/index/index_page.dart';
|
||||
import 'package:chat/views/home/index_page.dart';
|
||||
import 'package:chat/views/moments/index/index_page.dart';
|
||||
import 'package:chat/views/user/index/index_page.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -13,7 +14,7 @@ class AppPage extends StatelessWidget {
|
||||
final List<IndexedStackChild> _tabBarPageList = [
|
||||
IndexedStackChild(child: const HomePage()),
|
||||
IndexedStackChild(child: const ContactPage()),
|
||||
// IndexedStackChild(child: const MomentsPage()),
|
||||
IndexedStackChild(child: const MomentsPage()),
|
||||
IndexedStackChild(child: const UserPage()),
|
||||
];
|
||||
|
||||
@@ -28,11 +29,11 @@ class AppPage extends StatelessWidget {
|
||||
'active_icon': Icons.contact_page,
|
||||
'label': '通讯录',
|
||||
},
|
||||
// {
|
||||
// 'icon': Icons.explore_outlined,
|
||||
// 'active_icon': Icons.explore,
|
||||
// 'label': '发现',
|
||||
// },
|
||||
{
|
||||
'icon': Icons.explore_outlined,
|
||||
'active_icon': Icons.explore,
|
||||
'label': '发现',
|
||||
},
|
||||
{
|
||||
'icon': Icons.person_outline,
|
||||
'active_icon': Icons.person,
|
||||
|
||||
@@ -34,6 +34,7 @@ class _UserInfoPageState extends State<UserInfoPage> {
|
||||
Get.context!,
|
||||
pickerConfig: const AssetPickerConfig(
|
||||
maxAssets: 1,
|
||||
textDelegate: AssetPickerTextDelegate(),
|
||||
requestType: RequestType.image,
|
||||
),
|
||||
);
|
||||
@@ -77,12 +78,12 @@ class _UserInfoPageState extends State<UserInfoPage> {
|
||||
sourcePath: imagePath,
|
||||
maxHeight: 128,
|
||||
maxWidth: 128,
|
||||
compressQuality: 70,
|
||||
compressQuality: 100,
|
||||
aspectRatio: const CropAspectRatio(
|
||||
ratioX: 1,
|
||||
ratioY: 1,
|
||||
),
|
||||
compressFormat: ImageCompressFormat.png,
|
||||
compressFormat: ImageCompressFormat.jpg,
|
||||
uiSettings: [
|
||||
IOSUiSettings(
|
||||
title: '头像剪裁',
|
||||
|
||||
Reference in New Issue
Block a user