Meteor-Community-Packages/meteor-roles

Question: How to reactively check roles in React with v4.0.0?

Open

#416 opened on Feb 3, 2025

View on GitHub
 (5 comments) (0 reactions) (0 assignees)JavaScript (161 forks)batch import
enhancementgood first issue

Repository metrics

Stars
 (919 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

I upgraded from Meteor 2 with roles@1.x to Meteor 3 with roles@4.0.0. With the old package, where the roles were bound to the user object, calls to Roles.isUserInRole() worked reactively. We used this a lot to enable or disable app features based on roles. It was pretty impressive when we just added new features to a user in a Zoom session.

But now, the user has to reload the page to get the upated roles information, although I publish the role information like this:

import { Meteor } from 'meteor/meteor';

Meteor.publish(null, async function() {
 if (!this.userId) return this.ready();
 return Meteor.roleAssignment.find({ 'user._id': this.userId });
});

What is the best way to get back to the old reactivity in React? A hook maybe that works reactively?

Contributor guide