From d0229ed81f731788428bb5f70f33b7f3479f4f4f Mon Sep 17 00:00:00 2001 From: hannathkadher Date: Mon, 11 Nov 2024 21:20:41 +0400 Subject: [PATCH] fixed spaces api --- .../model/connection_model.dart | 12 +++++++ .../model/space_data_model.dart | 15 +++++++++ .../spaces_management/model/space_model.dart | 20 +++++------- .../view/curved_line_painter.dart | 2 +- .../view/spaces_management_page.dart | 32 ++----------------- lib/utils/constants/api_const.dart | 2 +- 6 files changed, 40 insertions(+), 43 deletions(-) create mode 100644 lib/pages/spaces_management/model/connection_model.dart create mode 100644 lib/pages/spaces_management/model/space_data_model.dart diff --git a/lib/pages/spaces_management/model/connection_model.dart b/lib/pages/spaces_management/model/connection_model.dart new file mode 100644 index 00000000..085ceefc --- /dev/null +++ b/lib/pages/spaces_management/model/connection_model.dart @@ -0,0 +1,12 @@ +import 'package:syncrow_web/pages/spaces_management/model/space_data_model.dart'; + +class Connection { + final SpaceData startSpace; + final SpaceData endSpace; + final String direction; + + Connection( + {required this.startSpace, + required this.endSpace, + required this.direction}); +} diff --git a/lib/pages/spaces_management/model/space_data_model.dart b/lib/pages/spaces_management/model/space_data_model.dart new file mode 100644 index 00000000..74465dad --- /dev/null +++ b/lib/pages/spaces_management/model/space_data_model.dart @@ -0,0 +1,15 @@ +import 'dart:ui'; + +class SpaceData { + final String name; + final String icon; + Offset position; + bool isHovered; + + SpaceData({ + required this.name, + required this.icon, + required this.position, + this.isHovered = false, + }); +} diff --git a/lib/pages/spaces_management/model/space_model.dart b/lib/pages/spaces_management/model/space_model.dart index 273c09cd..fcd55b61 100644 --- a/lib/pages/spaces_management/model/space_model.dart +++ b/lib/pages/spaces_management/model/space_model.dart @@ -9,7 +9,6 @@ class SpaceModel { final String name; final bool isPrivate; final String? invitationCode; - final bool isParent; final SpaceModel? parent; final CommunityModel? community; final List children; @@ -25,7 +24,6 @@ class SpaceModel { required this.name, required this.isPrivate, this.invitationCode, - required this.isParent, this.parent, this.community, required this.children, @@ -40,21 +38,20 @@ class SpaceModel { createdAt: DateTime.parse(json['createdAt']), updatedAt: DateTime.parse(json['updatedAt']), spaceTuyaUuid: json['spaceTuyaUuid'], - name: json['name'], - isPrivate: json['isPrivate'], + name: json['spaceName'], + isPrivate: json['isPrivate'] ?? false, invitationCode: json['invitationCode'], - isParent: json['isParent'], parent: json['parent'] != null ? SpaceModel.fromJson(json['parent']) : null, community: json['community'] != null ? CommunityModel.fromJson(json['community']) : null, - children: json['children'] != null - ? (json['children'] as List) - .map((child) => SpaceModel.fromJson(child)) - .toList() - : [], - icon: json['icon'], + children: json['children'] != null + ? (json['children'] as List) + .map((child) => SpaceModel.fromJson(child)) + .toList() + : [], + icon: json['icon'] as String?, position: json['position'] != null ? Offset(json['position']['dx'], json['position']['dy']) : const Offset(0, 0), @@ -71,7 +68,6 @@ class SpaceModel { 'name': name, 'isPrivate': isPrivate, 'invitationCode': invitationCode, - 'isParent': isParent, 'parent': parent?.toMap(), 'community': community?.toMap(), 'children': children.map((child) => child.toMap()).toList(), diff --git a/lib/pages/spaces_management/view/curved_line_painter.dart b/lib/pages/spaces_management/view/curved_line_painter.dart index 4cbb7f3f..f9a79fdf 100644 --- a/lib/pages/spaces_management/view/curved_line_painter.dart +++ b/lib/pages/spaces_management/view/curved_line_painter.dart @@ -1,7 +1,7 @@ import 'dart:ui'; import 'package:flutter/material.dart'; -import 'package:syncrow_web/pages/spaces_management/view/spaces_management_page.dart'; +import 'package:syncrow_web/pages/spaces_management/model/connection_model.dart'; import 'package:syncrow_web/utils/color_manager.dart'; class CurvedLinePainter extends CustomPainter { diff --git a/lib/pages/spaces_management/view/spaces_management_page.dart b/lib/pages/spaces_management/view/spaces_management_page.dart index 92d59271..c70d8814 100644 --- a/lib/pages/spaces_management/view/spaces_management_page.dart +++ b/lib/pages/spaces_management/view/spaces_management_page.dart @@ -7,6 +7,8 @@ import 'package:syncrow_web/pages/spaces_management/bloc/space_management_bloc.d import 'package:syncrow_web/pages/spaces_management/bloc/space_management_event.dart'; import 'package:syncrow_web/pages/spaces_management/bloc/space_management_state.dart'; import 'package:syncrow_web/pages/spaces_management/model/community_model.dart'; +import 'package:syncrow_web/pages/spaces_management/model/connection_model.dart'; +import 'package:syncrow_web/pages/spaces_management/model/space_data_model.dart'; import 'package:syncrow_web/pages/spaces_management/model/space_model.dart'; import 'package:syncrow_web/pages/spaces_management/view/curved_line_painter.dart'; import 'package:syncrow_web/pages/spaces_management/view/dialogs/create_space_dialog.dart'; @@ -172,7 +174,7 @@ class SpaceManagementPageState extends State { selectedCommunity!.name, // Show community name style: const TextStyle( fontSize: 16, - color: ColorsManager.blackColor, // Slightly muted color + color: ColorsManager.blackColor, ), ), ] @@ -294,31 +296,3 @@ class SpaceManagementPageState extends State { } } -// Function to open the Create Space dialog - -// Model for storing space information -class SpaceData { - final String name; - final String icon; - Offset position; - bool isHovered; - - SpaceData({ - required this.name, - required this.icon, - required this.position, - this.isHovered = false, - }); -} - -// Class for connection lines between spaces -class Connection { - final SpaceData startSpace; - final SpaceData endSpace; - final String direction; - - Connection( - {required this.startSpace, - required this.endSpace, - required this.direction}); -} diff --git a/lib/utils/constants/api_const.dart b/lib/utils/constants/api_const.dart index 6198d7c1..950b7223 100644 --- a/lib/utils/constants/api_const.dart +++ b/lib/utils/constants/api_const.dart @@ -50,7 +50,7 @@ abstract class ApiEndpoints { static const String getSpace = '/communities/{communityId}/spaces/{spaceId}'; static const String getSpaceHierarchy = - '/communities/{communityId}/spaces/hierarchy'; + '/communities/{communityId}/spaces'; // Community Module static const String createCommunity = '/communities';