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 (919 stars) (161 forks)batch import
enhancementgood first issue

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