mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-17 02:25:31 +00:00
Refactor SpaceManagementCommunityStructure to improve widget structure and visibility handling. Introduce separate methods for building the canvas and empty state, enhancing readability and maintainability.
This commit is contained in:
@ -3,6 +3,8 @@ import 'package:flutter_bloc/flutter_bloc.dart';
|
|||||||
import 'package:syncrow_web/pages/space_management_v2/main_module/widgets/community_structure_canvas.dart';
|
import 'package:syncrow_web/pages/space_management_v2/main_module/widgets/community_structure_canvas.dart';
|
||||||
import 'package:syncrow_web/pages/space_management_v2/main_module/widgets/community_structure_header.dart';
|
import 'package:syncrow_web/pages/space_management_v2/main_module/widgets/community_structure_header.dart';
|
||||||
import 'package:syncrow_web/pages/space_management_v2/main_module/widgets/create_space_button.dart';
|
import 'package:syncrow_web/pages/space_management_v2/main_module/widgets/create_space_button.dart';
|
||||||
|
import 'package:syncrow_web/pages/space_management_v2/modules/communities/domain/models/community_model.dart';
|
||||||
|
import 'package:syncrow_web/pages/space_management_v2/modules/communities/domain/models/space_model.dart';
|
||||||
import 'package:syncrow_web/pages/space_management_v2/modules/communities/presentation/communities_tree_selection_bloc/communities_tree_selection_bloc.dart';
|
import 'package:syncrow_web/pages/space_management_v2/modules/communities/presentation/communities_tree_selection_bloc/communities_tree_selection_bloc.dart';
|
||||||
|
|
||||||
class SpaceManagementCommunityStructure extends StatelessWidget {
|
class SpaceManagementCommunityStructure extends StatelessWidget {
|
||||||
@ -13,28 +15,44 @@ class SpaceManagementCommunityStructure extends StatelessWidget {
|
|||||||
final selectionBloc = context.watch<CommunitiesTreeSelectionBloc>().state;
|
final selectionBloc = context.watch<CommunitiesTreeSelectionBloc>().state;
|
||||||
final selectedCommunity = selectionBloc.selectedCommunity;
|
final selectedCommunity = selectionBloc.selectedCommunity;
|
||||||
final selectedSpace = selectionBloc.selectedSpace;
|
final selectedSpace = selectionBloc.selectedSpace;
|
||||||
const spacer = Spacer(flex: 6);
|
return Column(
|
||||||
return Visibility(
|
|
||||||
visible: selectedCommunity!.spaces.isNotEmpty,
|
|
||||||
replacement: Row(
|
|
||||||
children: [
|
|
||||||
spacer,
|
|
||||||
Expanded(
|
|
||||||
child: CreateSpaceButton(communityUuid: selectedCommunity.uuid),
|
|
||||||
),
|
|
||||||
spacer
|
|
||||||
],
|
|
||||||
),
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
const CommunityStructureHeader(),
|
const CommunityStructureHeader(),
|
||||||
Expanded(
|
Visibility(
|
||||||
|
visible: selectedCommunity!.spaces.isNotEmpty,
|
||||||
|
replacement: _buildEmptyWidget(selectedCommunity),
|
||||||
|
child: _buildCanvas(selectedCommunity, selectedSpace),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildCanvas(
|
||||||
|
CommunityModel selectedCommunity,
|
||||||
|
SpaceModel? selectedSpace,
|
||||||
|
) {
|
||||||
|
return Expanded(
|
||||||
child: CommunityStructureCanvas(
|
child: CommunityStructureCanvas(
|
||||||
community: selectedCommunity,
|
community: selectedCommunity,
|
||||||
selectedSpace: selectedSpace,
|
selectedSpace: selectedSpace,
|
||||||
),
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildEmptyWidget(CommunityModel selectedCommunity) {
|
||||||
|
const spacer = Spacer(flex: 6);
|
||||||
|
|
||||||
|
return Expanded(
|
||||||
|
child: Row(
|
||||||
|
children: [
|
||||||
|
spacer,
|
||||||
|
Expanded(
|
||||||
|
child: CreateSpaceButton(
|
||||||
|
communityUuid: selectedCommunity.uuid,
|
||||||
),
|
),
|
||||||
|
),
|
||||||
|
spacer,
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user