diff --git a/lib/common/widgets/custom_expansion_tile.dart b/lib/common/widgets/custom_expansion_tile.dart index 3823b18f..74151ca2 100644 --- a/lib/common/widgets/custom_expansion_tile.dart +++ b/lib/common/widgets/custom_expansion_tile.dart @@ -101,7 +101,7 @@ class CustomExpansionTileState extends State { widget.children != null && widget.children!.isNotEmpty) Padding( - padding: const EdgeInsets.only(left: 48.0), // Indented children + padding: const EdgeInsets.only(left: 24.0), // Indented children child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: widget.children!, diff --git a/lib/pages/space_tree/view/custom_expansion.dart b/lib/pages/space_tree/view/custom_expansion.dart index 9e40f320..515a8448 100644 --- a/lib/pages/space_tree/view/custom_expansion.dart +++ b/lib/pages/space_tree/view/custom_expansion.dart @@ -83,7 +83,7 @@ class CustomExpansionTileSpaceTree extends StatelessWidget { ), if (isExpanded && children != null && children!.isNotEmpty) Padding( - padding: const EdgeInsets.only(left: 48.0), + padding: const EdgeInsets.only(left: 24.0), child: Column( children: children ?? [], ), diff --git a/lib/pages/spaces_management/all_spaces/widgets/community_tile.dart b/lib/pages/spaces_management/all_spaces/widgets/community_tile.dart index 9bd45671..b097b0c3 100644 --- a/lib/pages/spaces_management/all_spaces/widgets/community_tile.dart +++ b/lib/pages/spaces_management/all_spaces/widgets/community_tile.dart @@ -22,7 +22,7 @@ class CommunityTile extends StatelessWidget { @override Widget build(BuildContext context) { return Padding( - padding: const EdgeInsets.only(left: 16.0), + padding: const EdgeInsets.all(8.0), child: CustomExpansionTile( title: title, initiallyExpanded: isExpanded, 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 fef2a4c9..bcaec59f 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 @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:syncrow_web/pages/space_tree/bloc/space_tree_bloc.dart'; import 'package:syncrow_web/pages/space_tree/view/space_tree_view.dart'; import 'package:syncrow_web/pages/spaces_management/all_spaces/model/community_model.dart'; import 'package:syncrow_web/pages/spaces_management/all_spaces/model/product_model.dart'; @@ -87,6 +88,7 @@ class _LoadedSpaceViewState extends State { Expanded( child: BlocProvider( create: (context) => SpaceModelBloc( + BlocProvider.of(context), api: SpaceModelManagementApi(), initialSpaceModels: _spaceModels, ), diff --git a/lib/pages/spaces_management/all_spaces/widgets/sidebar_widget.dart b/lib/pages/spaces_management/all_spaces/widgets/sidebar_widget.dart index a38743dc..17566da7 100644 --- a/lib/pages/spaces_management/all_spaces/widgets/sidebar_widget.dart +++ b/lib/pages/spaces_management/all_spaces/widgets/sidebar_widget.dart @@ -205,30 +205,32 @@ class _SidebarWidgetState extends State { ); } - Widget _buildSpaceTile(SpaceModel space, CommunityModel community) { + Widget _buildSpaceTile(SpaceModel space, CommunityModel community, {int depth = 1}) { bool isExpandedSpace = _isSpaceOrChildSelected(space); - return SpaceTile( - title: space.name, - key: ValueKey(space.uuid), - isSelected: _selectedId == space.uuid, - initiallyExpanded: isExpandedSpace, - onExpansionChanged: (bool expanded) { - _handleExpansionChange(space.uuid ?? '', expanded); - }, - onItemSelected: () { - setState(() { - _selectedId = space.uuid; - _selectedSpaceUuid = space.uuid; - }); + return Padding( + padding: EdgeInsets.only(left: depth * 16.0), + child: SpaceTile( + title: space.name, + key: ValueKey(space.uuid), + isSelected: _selectedId == space.uuid, + initiallyExpanded: isExpandedSpace, + onExpansionChanged: (bool expanded) { + _handleExpansionChange(space.uuid ?? '', expanded); + }, + onItemSelected: () { + setState(() { + _selectedId = space.uuid; + _selectedSpaceUuid = space.uuid; + }); - context.read().add( - SelectSpaceEvent(selectedCommunity: community, selectedSpace: space), - ); - }, - children: space.children.isNotEmpty - ? space.children.map((childSpace) => _buildSpaceTile(childSpace, community)).toList() - : [], // Recursively render child spaces if available - ); + context.read().add( + SelectSpaceEvent(selectedCommunity: community, selectedSpace: space), + ); + }, + children: space.children.isNotEmpty + ? space.children.map((childSpace) => _buildSpaceTile(childSpace, community)).toList() + : [], // Recursively render child spaces if available + )); } void _handleExpansionChange(String uuid, bool expanded) {} diff --git a/lib/pages/spaces_management/all_spaces/widgets/space_tile_widget.dart b/lib/pages/spaces_management/all_spaces/widgets/space_tile_widget.dart index 63cf9b7d..d72f22ac 100644 --- a/lib/pages/spaces_management/all_spaces/widgets/space_tile_widget.dart +++ b/lib/pages/spaces_management/all_spaces/widgets/space_tile_widget.dart @@ -35,18 +35,20 @@ class _SpaceTileState extends State { @override Widget build(BuildContext context) { - return CustomExpansionTile( - isSelected: widget.isSelected, - title: widget.title, - initiallyExpanded: _isExpanded, - onItemSelected: widget.onItemSelected, - onExpansionChanged: (bool expanded) { - setState(() { - _isExpanded = expanded; - }); - widget.onExpansionChanged(expanded); - }, - children: widget.children ?? [], - ); + return Padding( + padding: const EdgeInsets.only(left: 8.0, right: 8.0, top: 8.0), + child: CustomExpansionTile( + isSelected: widget.isSelected, + title: widget.title, + initiallyExpanded: _isExpanded, + onItemSelected: widget.onItemSelected, + onExpansionChanged: (bool expanded) { + setState(() { + _isExpanded = expanded; + }); + widget.onExpansionChanged(expanded); + }, + children: widget.children ?? [], + )); } } 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 d94751d9..37a8c0a9 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,7 +1,7 @@ -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/space_tree/bloc/space_tree_bloc.dart'; +import 'package:syncrow_web/pages/space_tree/bloc/space_tree_event.dart'; import 'package:syncrow_web/pages/spaces_management/space_model/bloc/space_model_event.dart'; import 'package:syncrow_web/pages/spaces_management/space_model/bloc/space_model_state.dart'; import 'package:syncrow_web/pages/spaces_management/space_model/models/space_template_model.dart'; @@ -9,8 +9,10 @@ import 'package:syncrow_web/services/space_model_mang_api.dart'; class SpaceModelBloc extends Bloc { final SpaceModelManagementApi api; + final SpaceTreeBloc _spaceTreeBloc; - SpaceModelBloc({ + SpaceModelBloc( + this._spaceTreeBloc, { required this.api, required List initialSpaceModels, }) : super(SpaceModelLoaded(spaceModels: initialSpaceModels)) { @@ -50,6 +52,7 @@ class SpaceModelBloc extends Bloc { final updatedSpaceModels = currentState.spaceModels.map((model) { return model.uuid == event.spaceModelUuid ? newSpaceModel : model; }).toList(); + _spaceTreeBloc.add(InitialEvent()); emit(SpaceModelLoaded(spaceModels: updatedSpaceModels)); } } catch (e) { @@ -71,7 +74,7 @@ class SpaceModelBloc extends Bloc { final updatedSpaceModels = currentState.spaceModels .where((model) => model.uuid != event.spaceModelUuid) .toList(); - + _spaceTreeBloc.add(InitialEvent()); emit(SpaceModelLoaded(spaceModels: updatedSpaceModels)); } } catch (e) { diff --git a/lib/utils/color_manager.dart b/lib/utils/color_manager.dart index 4e506093..a4bcc0da 100644 --- a/lib/utils/color_manager.dart +++ b/lib/utils/color_manager.dart @@ -52,7 +52,7 @@ abstract class ColorsManager { static const Color semiTransparentBlackColor = Color(0x3F000000); static const Color transparentColor = Color(0x00000000); static const Color spaceColor = Color(0xB2023DFE); - static const Color counterBackgroundColor = Color.fromARGB(204, 105, 2, 2); + static const Color counterBackgroundColor = Color(0xCCF4F4F4); static const Color neutralGray = Color(0xFFE5E5E5); static const Color warningRed = Color(0xFFFF6465); static const Color borderColor = Color(0xFFE5E5E5);