working sidebar

This commit is contained in:
Henry Hiles 2026-01-27 14:14:04 +00:00
commit 85d96b80bc
No known key found for this signature in database
13 changed files with 491 additions and 436 deletions

View file

@ -1,3 +1,4 @@
import "package:fast_immutable_collections/fast_immutable_collections.dart";
import "package:flutter/widgets.dart";
import "package:freezed_annotation/freezed_annotation.dart";
import "package:nexus/models/room.dart";
@ -10,6 +11,6 @@ abstract class Space with _$Space {
required String title,
IconData? icon,
Room? room,
required List<Room> children,
required IList<Room> children,
}) = _Space;
}

View file

@ -0,0 +1,14 @@
import "package:freezed_annotation/freezed_annotation.dart";
part "space_edge.freezed.dart";
part "space_edge.g.dart";
@freezed
abstract class SpaceEdge with _$SpaceEdge {
const factory SpaceEdge({
required String childId,
@Default(false) bool suggested,
}) = _SpaceEdge;
factory SpaceEdge.fromJson(Map<String, Object?> json) =>
_$SpaceEdgeFromJson(json);
}

View file

@ -1,6 +1,7 @@
import "package:fast_immutable_collections/fast_immutable_collections.dart";
import "package:freezed_annotation/freezed_annotation.dart";
import "package:nexus/models/room.dart";
import "package:nexus/models/space_edge.dart";
part "sync_data.freezed.dart";
part "sync_data.g.dart";
@ -12,8 +13,8 @@ abstract class SyncData with _$SyncData {
@Default(IMap.empty()) IMap<String, Room> rooms,
@Default(ISet.empty()) ISet<String> leftRooms,
// required IList<InvitedRoom> invitedRooms,
// required IList<SpaceEdge> spaceEdges,
@Default(IList.empty()) IList<String> topLevelSpaces,
IMap<String, IList<SpaceEdge>>? spaceEdges,
IList<String>? topLevelSpaces,
}) = _SyncData;
factory SyncData.fromJson(Map<String, Object?> json) =>