mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-04 04:04:18 +00:00 
			
		
		
		
	Fix refresh issue
This commit is contained in:
		@@ -101,10 +101,14 @@ abstract class MainController extends State<MainRoute> {
 | 
				
			|||||||
      PageInfo(type: PageType.LATEST_POSTS_PAGE, child: NewestPostsScreen()));
 | 
					      PageInfo(type: PageType.LATEST_POSTS_PAGE, child: NewestPostsScreen()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Open user page
 | 
					  /// Open user page
 | 
				
			||||||
  void openUserPage(int userID) => pushPage(PageInfo(
 | 
					  void openUserPage(int userID) {
 | 
				
			||||||
 | 
					    final key = GlobalKey();
 | 
				
			||||||
 | 
					    pushPage(PageInfo(
 | 
				
			||||||
        type: PageType.USER_PAGE,
 | 
					        type: PageType.USER_PAGE,
 | 
				
			||||||
      child: UserPageScreen(userID: userID),
 | 
					        child: UserPageScreen(userID: userID, key: key),
 | 
				
			||||||
      id: userID));
 | 
					        id: userID,
 | 
				
			||||||
 | 
					        widgetKey: key));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void openUserAccessDeniedPage(int userID) =>
 | 
					  void openUserAccessDeniedPage(int userID) =>
 | 
				
			||||||
      pushPage(PageInfo(child: UserAccessDeniedScreen(userID: userID)));
 | 
					      pushPage(PageInfo(child: UserAccessDeniedScreen(userID: userID)));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,7 @@ class PageInfo {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /// Unique identification of this child
 | 
					  /// Unique identification of this child
 | 
				
			||||||
  final key = UniqueKey();
 | 
					  final key = UniqueKey();
 | 
				
			||||||
 | 
					  final GlobalKey? widgetKey;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  PageInfo({
 | 
					  PageInfo({
 | 
				
			||||||
    this.type = PageType.OTHER_PAGE,
 | 
					    this.type = PageType.OTHER_PAGE,
 | 
				
			||||||
@@ -31,5 +32,6 @@ class PageInfo {
 | 
				
			|||||||
    this.id,
 | 
					    this.id,
 | 
				
			||||||
    this.hideNavBar = false,
 | 
					    this.hideNavBar = false,
 | 
				
			||||||
    this.canShowAsDialog = false,
 | 
					    this.canShowAsDialog = false,
 | 
				
			||||||
 | 
					    this.widgetKey
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,8 +20,7 @@ enum _PageStatus { LOADING, ERROR, READY }
 | 
				
			|||||||
class UserPageScreen extends StatefulWidget {
 | 
					class UserPageScreen extends StatefulWidget {
 | 
				
			||||||
  final int userID;
 | 
					  final int userID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const UserPageScreen({Key? key, required this.userID})
 | 
					  const UserPageScreen({Key? key, required this.userID}) : super(key: key);
 | 
				
			||||||
      : super(key: key);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  _UserPageScreenState createState() => _UserPageScreenState();
 | 
					  _UserPageScreenState createState() => _UserPageScreenState();
 | 
				
			||||||
@@ -33,18 +32,23 @@ class _UserPageScreenState extends SafeState<UserPageScreen> {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  // Objects members
 | 
					  // Objects members
 | 
				
			||||||
  _PageStatus _status = _PageStatus.LOADING;
 | 
					  _PageStatus _status = _PageStatus.LOADING;
 | 
				
			||||||
  late AdvancedUserInfo _userInfo;
 | 
					  AdvancedUserInfo? _userInfo;
 | 
				
			||||||
  FriendStatus? _frienshipStatus;
 | 
					  FriendStatus? _frienshipStatus;
 | 
				
			||||||
  final _refreshIndicatorKey = GlobalKey<RefreshIndicatorState>();
 | 
					  final _refreshIndicatorKey = GlobalKey<RefreshIndicatorState>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  final _pageKey = GlobalKey();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  _setStatus(_PageStatus s) => setState(() => _status = s);
 | 
					  _setStatus(_PageStatus s) => setState(() => _status = s);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  void didChangeDependencies() {
 | 
					  void didChangeDependencies() {
 | 
				
			||||||
    super.didChangeDependencies();
 | 
					    super.didChangeDependencies();
 | 
				
			||||||
 | 
					    if(_userInfo?.id != widget.userID)
 | 
				
			||||||
     _getUserInfo();
 | 
					     _getUserInfo();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Future<void> _getUserInfo() async {
 | 
					  Future<void> _getUserInfo() async {
 | 
				
			||||||
    _setStatus(_PageStatus.LOADING);
 | 
					    _setStatus(_PageStatus.LOADING);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -112,12 +116,14 @@ class _UserPageScreenState extends SafeState<UserPageScreen> {
 | 
				
			|||||||
  Widget _buildBody() {
 | 
					  Widget _buildBody() {
 | 
				
			||||||
    return isTablet(context)
 | 
					    return isTablet(context)
 | 
				
			||||||
        ? UserPageTablet(
 | 
					        ? UserPageTablet(
 | 
				
			||||||
            userInfo: _userInfo,
 | 
					            key: _pageKey,
 | 
				
			||||||
 | 
					            userInfo: _userInfo!,
 | 
				
			||||||
            onNeedRefresh: () => _refreshIndicatorKey.currentState!.show(),
 | 
					            onNeedRefresh: () => _refreshIndicatorKey.currentState!.show(),
 | 
				
			||||||
            friendshipStatus: _frienshipStatus,
 | 
					            friendshipStatus: _frienshipStatus,
 | 
				
			||||||
          )
 | 
					          )
 | 
				
			||||||
        : UserMobilePage(
 | 
					        : UserMobilePage(
 | 
				
			||||||
            userInfo: _userInfo,
 | 
					            key: _pageKey,
 | 
				
			||||||
 | 
					            userInfo: _userInfo!,
 | 
				
			||||||
            onNeedRefresh: () => _refreshIndicatorKey.currentState!.show(),
 | 
					            onNeedRefresh: () => _refreshIndicatorKey.currentState!.show(),
 | 
				
			||||||
          );
 | 
					          );
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,6 +38,8 @@ class UserPageTablet extends StatefulWidget {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class _UserPageTabletState extends State<UserPageTablet> {
 | 
					class _UserPageTabletState extends State<UserPageTablet> {
 | 
				
			||||||
 | 
					  final _formKey = GlobalKey<PostCreateFormWidgetState>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  AdvancedUserInfo get _userInfo => widget.userInfo;
 | 
					  AdvancedUserInfo get _userInfo => widget.userInfo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  bool get _isCurrentUser => _userInfo.id == userID();
 | 
					  bool get _isCurrentUser => _userInfo.id == userID();
 | 
				
			||||||
@@ -70,6 +72,7 @@ class _UserPageTabletState extends State<UserPageTablet> {
 | 
				
			|||||||
        topWidgets: [
 | 
					        topWidgets: [
 | 
				
			||||||
          _userInfo.canPostTexts
 | 
					          _userInfo.canPostTexts
 | 
				
			||||||
              ? PostCreateFormWidget(
 | 
					              ? PostCreateFormWidget(
 | 
				
			||||||
 | 
					                  key: _formKey,
 | 
				
			||||||
                  postTarget: PostTarget.USER_PAGE,
 | 
					                  postTarget: PostTarget.USER_PAGE,
 | 
				
			||||||
                  targetID: _userInfo.id,
 | 
					                  targetID: _userInfo.id,
 | 
				
			||||||
                  onCreated: widget.onNeedRefresh,
 | 
					                  onCreated: widget.onNeedRefresh,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user