diff --git a/lib/pages/spaces_management/view/sidebar_widget.dart b/lib/pages/spaces_management/view/sidebar_widget.dart index 2056c148..975f53c8 100644 --- a/lib/pages/spaces_management/view/sidebar_widget.dart +++ b/lib/pages/spaces_management/view/sidebar_widget.dart @@ -5,6 +5,7 @@ import 'package:syncrow_web/common/search_bar.dart'; import 'package:syncrow_web/pages/spaces_management/model/space_model.dart'; import 'package:syncrow_web/pages/spaces_management/view/community_tile.dart'; import 'package:syncrow_web/pages/spaces_management/view/dialogs/create_community_dialog.dart'; +import 'package:syncrow_web/services/space_mana_api.dart'; import 'package:syncrow_web/utils/color_manager.dart'; import 'package:syncrow_web/utils/constants/assets.dart'; import 'package:syncrow_web/utils/style.dart'; @@ -22,6 +23,7 @@ class SidebarWidget extends StatefulWidget { class _SidebarWidgetState extends State { String _searchQuery = ''; // Track search query Map _expandedTiles = {}; // Track expanded state for each UUID + final CommunitySpaceManagementApi _api = CommunitySpaceManagementApi(); @override void initState() { @@ -53,12 +55,27 @@ class _SidebarWidgetState extends State { showDialog( context: context, builder: (context) => CreateCommunityDialog( - onCreateCommunity: (String communityName) { - setState(() { - debugPrint("hello"); + onCreateCommunity: (String communityName) async { + try { + // Assuming regionId and description are provided statically or via dialog in future. + String regionId = "42dc377a-1a39-4df9-b85a-b3817af88525"; + String description = ""; - // You can update the communitySpaces map here - }); + final newCommunity = await _api.createCommunity( + communityName, + description, + regionId, + ); + + if (newCommunity != null) { + setState(() { + // Add the newly created community to the communitySpaces map + widget.communitySpaces[newCommunity.name] = []; + }); + } + } catch (e) { + debugPrint('Error creating community: $e'); + } }, ), ); diff --git a/lib/pages/spaces_management/view/spaces_management_page.dart b/lib/pages/spaces_management/view/spaces_management_page.dart index 420eab36..31d24768 100644 --- a/lib/pages/spaces_management/view/spaces_management_page.dart +++ b/lib/pages/spaces_management/view/spaces_management_page.dart @@ -2,7 +2,6 @@ import 'dart:ui_web'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:syncrow_web/common/custom_expansion_tile.dart'; import 'package:syncrow_web/pages/common/buttons/add_space_button.dart'; import 'package:syncrow_web/pages/spaces_management/model/community_model.dart'; import 'package:syncrow_web/pages/spaces_management/model/space_model.dart'; @@ -10,7 +9,6 @@ import 'package:syncrow_web/pages/spaces_management/view/dialogs/create_space_di import 'package:syncrow_web/pages/spaces_management/view/sidebar_widget.dart'; import 'package:syncrow_web/services/space_mana_api.dart'; import 'package:syncrow_web/utils/color_manager.dart'; -import 'package:syncrow_web/utils/constants/assets.dart'; class SpaceManagementPage extends StatefulWidget { @override @@ -361,6 +359,7 @@ class SpaceManagementPageState extends State { ), ); } + } // Model for storing space information