mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-03 19:54:12 +00:00 
			
		
		
		
	Start to refactor user page
This commit is contained in:
		
							
								
								
									
										49
									
								
								lib/ui/screens/user_page_sections/user_page_header.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								lib/ui/screens/user_page_sections/user_page_header.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
import 'package:comunic/models/advanced_user_info.dart';
 | 
			
		||||
import 'package:comunic/ui/widgets/account_image_widget.dart';
 | 
			
		||||
import 'package:comunic/utils/account_utils.dart';
 | 
			
		||||
import 'package:comunic/utils/conversations_utils.dart';
 | 
			
		||||
import 'package:comunic/utils/ui_utils.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
 | 
			
		||||
/// User header
 | 
			
		||||
///
 | 
			
		||||
/// @author Pierre Hubert
 | 
			
		||||
 | 
			
		||||
class UserPageHeader extends StatelessWidget {
 | 
			
		||||
  final AdvancedUserInfo user;
 | 
			
		||||
  final Color bgColor;
 | 
			
		||||
 | 
			
		||||
  const UserPageHeader({
 | 
			
		||||
    Key key,
 | 
			
		||||
    @required this.user,
 | 
			
		||||
    @required this.bgColor,
 | 
			
		||||
  })  : assert(user != null),
 | 
			
		||||
        super(key: key);
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) => Container(
 | 
			
		||||
        color: bgColor,
 | 
			
		||||
        child: Padding(
 | 
			
		||||
          padding: const EdgeInsets.all(8.0),
 | 
			
		||||
          child: Row(
 | 
			
		||||
            children: <Widget>[
 | 
			
		||||
              InkWell(
 | 
			
		||||
                onTap: () => showImageFullScreen(context, user.accountImageURL),
 | 
			
		||||
                child: AccountImageWidget(user: user),
 | 
			
		||||
              ),
 | 
			
		||||
              Expanded(flex: 1, child: Text(" ${user.displayName}")),
 | 
			
		||||
              user.id == userID()
 | 
			
		||||
                  ? Container()
 | 
			
		||||
                  : IconButton(
 | 
			
		||||
                      icon: Icon(
 | 
			
		||||
                        Icons.chat,
 | 
			
		||||
                        color: DefaultTextStyle.of(context).style.color,
 | 
			
		||||
                      ),
 | 
			
		||||
                      onPressed: () {
 | 
			
		||||
                        openPrivateConversation(context, user.id);
 | 
			
		||||
                      }),
 | 
			
		||||
            ],
 | 
			
		||||
          ),
 | 
			
		||||
        ),
 | 
			
		||||
      );
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										49
									
								
								lib/ui/screens/user_page_sections/user_posts_section.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								lib/ui/screens/user_page_sections/user_posts_section.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
import 'package:comunic/enums/post_target.dart';
 | 
			
		||||
import 'package:comunic/helpers/posts_helper.dart';
 | 
			
		||||
import 'package:comunic/models/advanced_user_info.dart';
 | 
			
		||||
import 'package:comunic/ui/widgets/post_create_form_widget.dart';
 | 
			
		||||
import 'package:comunic/ui/widgets/posts_list_widget.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
 | 
			
		||||
/// User posts
 | 
			
		||||
///
 | 
			
		||||
/// @author Pierre Hubert
 | 
			
		||||
 | 
			
		||||
class UserPostsSection extends StatefulWidget {
 | 
			
		||||
  final AdvancedUserInfo user;
 | 
			
		||||
 | 
			
		||||
  const UserPostsSection({
 | 
			
		||||
    Key key,
 | 
			
		||||
    @required this.user,
 | 
			
		||||
  })  : assert(user != null),
 | 
			
		||||
        super(key: key);
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  _UserPostsSectionState createState() => _UserPostsSectionState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class _UserPostsSectionState extends State<UserPostsSection> {
 | 
			
		||||
  int get _userID => widget.user.id;
 | 
			
		||||
 | 
			
		||||
  final _postsKey = GlobalKey<PostsListWidgetState>();
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) => PostsListWidget(
 | 
			
		||||
        topWidgets: [
 | 
			
		||||
          widget.user.canPostTexts
 | 
			
		||||
              ? PostCreateFormWidget(
 | 
			
		||||
                  postTarget: PostTarget.USER_PAGE,
 | 
			
		||||
                  targetID: _userID,
 | 
			
		||||
                  onCreated: _postCreated,
 | 
			
		||||
                )
 | 
			
		||||
              : Container()
 | 
			
		||||
        ],
 | 
			
		||||
        getPostsList: () => PostsHelper().getUserPosts(_userID),
 | 
			
		||||
        getOlder: (from) => PostsHelper().getUserPosts(_userID, from: from),
 | 
			
		||||
        showPostsTarget: false,
 | 
			
		||||
      );
 | 
			
		||||
 | 
			
		||||
  void _postCreated() {
 | 
			
		||||
    _postsKey.currentState.loadPostsList(getOlder: false);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user