inviteActions function

FutureOr<List<(String, FutureOr<void> Function()?)>> inviteActions(
  1. BuildContext context,
  2. Notification notification
)

Actions builder for NotificationType.invite.

Implementation

FutureOr<List<(String, FutureOr<void> Function()?)>> inviteActions(BuildContext context, Notification notification) async {
  final invites = context.watch<InvitesRepository>();

  final invite = invites.filter(id: notification.context).firstOrNull;

  if (invite == null) return [];

  if (invite.status != PlanInviteStatus.pending) {
    return [
      (
        invite.status == PlanInviteStatus.accepted ? context.t.notification_invite_accepted : context.t.notification_invite_declined,
        null,
      ),
    ];
  }

  return [
    (
      context.t.notification_invite_accept,
      () async => invites.acceptInvite(notification.context!),
    ),
    (
      context.t.notification_invite_decline,
      () async => invites.declineInvite(notification.context!),
    ),
  ];
}