refactor to use mutations where helpful

This commit is contained in:
Henry Hiles 2026-11-02 17:06:01 -05:00
commit e9b009d1b9
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
2 changed files with 157 additions and 85 deletions

View file

@ -1,5 +1,6 @@
import "package:collection/collection.dart";
import "package:fast_immutable_collections/fast_immutable_collections.dart";
import "package:flutter_riverpod/experimental/mutation.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";
import "package:nexus/controllers/client.dart";
import "package:nexus/controllers/client_state.dart";
@ -115,6 +116,10 @@ class InvitesController extends Notifier<IList<RoomSummary>> {
Future<void> declineAll() =>
Future.wait(state.map((invite) => decline(invite.roomId)));
/// Accepting or declining an invite, keyed by its room ID
static final respondMutation = Mutation<void>();
static final declineAllMutation = Mutation<void>();
static final provider =
NotifierProvider<InvitesController, IList<RoomSummary>>(
InvitesController.new,

View file

@ -1,3 +1,4 @@
import "package:flutter_riverpod/experimental/mutation.dart";
import "package:hooks_riverpod/hooks_riverpod.dart";
import "package:nexus/controllers/client.dart";
import "package:nexus/models/space_hierarchy.dart";
@ -27,6 +28,12 @@ class SpaceHierarchyController(final String spaceId)
);
}
/// Adding rooms to a space, keyed by its ID
static final addChildrenMutation = Mutation<void>();
/// Removing a room from a space, keyed by (space ID, room ID)
static final removeChildMutation = Mutation<void>();
static final provider = AsyncNotifierProvider.family
.autoDispose<SpaceHierarchyController, SpaceHierarchy, String>(
SpaceHierarchyController.new,