fix: postpone fetching member (#5648)

This commit is contained in:
Mathias Mogensen 2024-06-28 03:03:30 +02:00 committed by GitHub
parent bf087bba5d
commit b09ff040f1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,3 +1,5 @@
import 'package:flutter/foundation.dart';
import 'package:appflowy/generated/locale_keys.g.dart';
import 'package:appflowy/shared/feature_flags.dart';
import 'package:appflowy/user/application/user_listener.dart';
@ -10,7 +12,6 @@ import 'package:appflowy_backend/protobuf/flowy-user/protobuf.dart';
import 'package:appflowy_result/appflowy_result.dart';
import 'package:collection/collection.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:protobuf/protobuf.dart';
@ -55,23 +56,22 @@ class UserWorkspaceBloc extends Bloc<UserWorkspaceEvent, UserWorkspaceState> {
await _userService.openWorkspace(currentWorkspace.workspaceId);
}
WorkspaceMemberPB? currentWorkspaceMember;
final workspaceMemberResult =
await _userService.getWorkspaceMember();
currentWorkspaceMember = workspaceMemberResult.fold(
(s) => s,
(e) => null,
);
emit(
state.copyWith(
currentWorkspace: currentWorkspace,
workspaces: workspaces,
isCollabWorkspaceOn: isCollabWorkspaceOn,
currentWorkspaceMember: currentWorkspaceMember,
actionResult: null,
),
);
/// We wait with fetching the workspace member as it may take some time,
/// to avoid blocking the UI from rendering (the sidebar).
final workspaceMemberResult =
await _userService.getWorkspaceMember();
final workspaceMember = workspaceMemberResult.toNullable();
emit(state.copyWith(currentWorkspaceMember: workspaceMember));
},
fetchWorkspaces: () async {
final result = await _fetchWorkspaces();
@ -208,14 +208,6 @@ class UserWorkspaceBloc extends Bloc<UserWorkspaceEvent, UserWorkspaceState> {
(e) => state.currentWorkspace,
);
WorkspaceMemberPB? currentWorkspaceMember;
final workspaceMemberResult =
await _userService.getWorkspaceMember();
currentWorkspaceMember = workspaceMemberResult.fold(
(s) => s,
(e) => null,
);
result
..onSuccess((s) {
Log.info(
@ -229,7 +221,6 @@ class UserWorkspaceBloc extends Bloc<UserWorkspaceEvent, UserWorkspaceState> {
emit(
state.copyWith(
currentWorkspace: currentWorkspace,
currentWorkspaceMember: currentWorkspaceMember,
actionResult: UserWorkspaceActionResult(
actionType: UserWorkspaceActionType.open,
isLoading: false,
@ -237,6 +228,14 @@ class UserWorkspaceBloc extends Bloc<UserWorkspaceEvent, UserWorkspaceState> {
),
),
);
/// We wait with fetching the workspace member as it may take some time,
/// to avoid blocking the UI from rendering (the sidebar).
final workspaceMemberResult =
await _userService.getWorkspaceMember();
final workspaceMember = workspaceMemberResult.toNullable();
emit(state.copyWith(currentWorkspaceMember: workspaceMember));
},
renameWorkspace: (workspaceId, name) async {
final result =