diff --git a/lib/pages/spaces_management/all_spaces/bloc/space_management_bloc.dart b/lib/pages/spaces_management/all_spaces/bloc/space_management_bloc.dart index 84dc2442..3b7b2626 100644 --- a/lib/pages/spaces_management/all_spaces/bloc/space_management_bloc.dart +++ b/lib/pages/spaces_management/all_spaces/bloc/space_management_bloc.dart @@ -75,7 +75,8 @@ class SpaceManagementBloc } } - _cachedSpaceModels = allSpaceModels; + _cachedSpaceModels = allSpaceModels; + return allSpaceModels; } catch (e) { return []; @@ -123,7 +124,6 @@ class SpaceManagementBloc } } - void _onloadProducts() async { if (_cachedProducts == null) { final products = await _productApi.fetchProducts(); @@ -313,13 +313,10 @@ class SpaceManagementBloc final updatedCommunities = prevCommunities..add(newCommunity); if (safeContext.mounted) { - print("added"); final spaceTreeBloc = safeContext.read< SpaceTreeBloc>(); // ✅ Read bloc only when context is mounted spaceTreeBloc.add(OnCommunityAdded(newCommunity)); - } else { - print("not mounted"); - } + } emit(SpaceManagementLoaded( spaceModels: prevSpaceModels, diff --git a/lib/pages/spaces_management/all_spaces/bloc/space_management_state.dart b/lib/pages/spaces_management/all_spaces/bloc/space_management_state.dart index 571651e5..10a02294 100644 --- a/lib/pages/spaces_management/all_spaces/bloc/space_management_state.dart +++ b/lib/pages/spaces_management/all_spaces/bloc/space_management_state.dart @@ -30,10 +30,6 @@ class SpaceManagementLoaded extends SpaceManagementState { this.spaceModels}); } -class SpaceModelManagenetLoaded extends SpaceManagementState { - SpaceModelManagenetLoaded(); -} - class BlankState extends SpaceManagementState { final List communities; final List products; diff --git a/lib/pages/spaces_management/all_spaces/view/spaces_management_page.dart b/lib/pages/spaces_management/all_spaces/view/spaces_management_page.dart index d5db20eb..6c30e03b 100644 --- a/lib/pages/spaces_management/all_spaces/view/spaces_management_page.dart +++ b/lib/pages/spaces_management/all_spaces/view/spaces_management_page.dart @@ -1,3 +1,5 @@ +import 'dart:developer'; + import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:syncrow_web/pages/device_managment/shared/navigate_home_grid_view.dart'; @@ -57,6 +59,7 @@ class SpaceManagementPageState extends State { shouldNavigateToSpaceModelPage: false, ); } else if (state is SpaceManagementLoaded) { + return LoadedSpaceView( communities: state.communities, selectedCommunity: state.selectedCommunity, diff --git a/lib/pages/spaces_management/all_spaces/widgets/loaded_space_widget.dart b/lib/pages/spaces_management/all_spaces/widgets/loaded_space_widget.dart index dccd7fd9..4d6fc3fb 100644 --- a/lib/pages/spaces_management/all_spaces/widgets/loaded_space_widget.dart +++ b/lib/pages/spaces_management/all_spaces/widgets/loaded_space_widget.dart @@ -40,6 +40,7 @@ class _LoadedSpaceViewState extends State { @override void initState() { super.initState(); + _spaceModels = List.from(widget.spaceModels ?? []); } @@ -47,6 +48,7 @@ class _LoadedSpaceViewState extends State { @override void didUpdateWidget(covariant LoadedSpaceView oldWidget) { super.didUpdateWidget(oldWidget); + if (widget.spaceModels != oldWidget.spaceModels) { WidgetsBinding.instance.addPostFrameCallback((_) { if (mounted) { @@ -76,29 +78,33 @@ class _LoadedSpaceViewState extends State { clipBehavior: Clip.none, children: [ widget.shouldNavigateToSpaceModelPage - ? Row( - children: [ - SizedBox(width: 300, child: SpaceTreeView(onSelect: () {})), - Expanded( - child: BlocProvider( - create: (context) => SpaceModelBloc( - api: SpaceModelManagementApi(), - initialSpaceModels: _spaceModels, + ? _spaceModels.isNotEmpty + ? Row( + children: [ + SizedBox( + width: 300, child: SpaceTreeView(onSelect: () {})), + Expanded( + child: BlocProvider( + create: (context) => SpaceModelBloc( + api: SpaceModelManagementApi(), + initialSpaceModels: _spaceModels, + ), + child: SpaceModelPage( + products: widget.products, + onSpaceModelsUpdated: _onSpaceModelsUpdated, + ), + ), ), - child: SpaceModelPage( - products: widget.products, - onSpaceModelsUpdated: _onSpaceModelsUpdated, - ), - ), - ), - ], - ) + ], + ) + : const Center(child: CircularProgressIndicator()) : Row( children: [ SidebarWidget( communities: widget.communities, - selectedSpaceUuid: - widget.selectedSpace?.uuid ?? widget.selectedCommunity?.uuid ?? '', + selectedSpaceUuid: widget.selectedSpace?.uuid ?? + widget.selectedCommunity?.uuid ?? + '', ), CommunityStructureArea( selectedCommunity: widget.selectedCommunity, diff --git a/lib/pages/spaces_management/space_model/bloc/space_model_bloc.dart b/lib/pages/spaces_management/space_model/bloc/space_model_bloc.dart index 16ba41c0..ed6ffa71 100644 --- a/lib/pages/spaces_management/space_model/bloc/space_model_bloc.dart +++ b/lib/pages/spaces_management/space_model/bloc/space_model_bloc.dart @@ -1,3 +1,5 @@ +import 'dart:developer'; + import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:syncrow_web/pages/common/bloc/project_manager.dart'; import 'package:syncrow_web/pages/spaces_management/space_model/bloc/space_model_event.dart'; @@ -12,6 +14,8 @@ class SpaceModelBloc extends Bloc { required this.api, required List initialSpaceModels, }) : super(SpaceModelLoaded(spaceModels: initialSpaceModels)) { + log('Initial Space Models in: ${initialSpaceModels.map((e) => e.toJson()).toList()}'); + on(_onCreateSpaceModel); on(_onUpdateSpaceModel); on(_onDeleteSpaceModel);