♻️ only select one role in CE and if user is non paying

This commit is contained in:
Fred KISSIE
2026-05-04 20:47:00 +02:00
parent 30e627cca8
commit 49d22498fc

View File

@@ -5,6 +5,8 @@ import { useDebounce } from "use-debounce";
import { useTranslations } from "next-intl";
import { MultiSelectTagInput } from "./multi-select/multi-select-tag-input";
import { usePaidStatus } from "@app/hooks/usePaidStatus";
import { TierFeature, tierMatrix } from "@server/lib/billing/tierMatrix";
export type SelectedRole = { id: string; text: string };
@@ -27,6 +29,8 @@ export function RolesSelector({
mapRolesByName,
buttonText
}: RolesSelectorProps) {
const { isPaidUser } = usePaidStatus();
const canSelectMultipleUsers = isPaidUser(tierMatrix.fullRbac);
const t = useTranslations();
const [roleSearchQuery, setRoleSearchQuery] = useState("");
@@ -74,7 +78,13 @@ export function RolesSelector({
onSearch={setRoleSearchQuery}
options={rolesShown}
value={selectedRoles}
onChange={onSelectRoles}
onChange={(newRoles) => {
let roles = canSelectMultipleUsers
? [...newRoles]
: [newRoles[0]];
onSelectRoles(roles);
}}
disabled={disabled}
/>
);