mirror of
https://github.com/formbricks/formbricks.git
synced 2026-01-06 13:49:54 -06:00
Co-authored-by: Matti Nannt <mail@matthiasnannt.com> Co-authored-by: Johannes <72809645+jobenjada@users.noreply.github.com>
56 lines
1.4 KiB
TypeScript
56 lines
1.4 KiB
TypeScript
import { Control, Controller } from "react-hook-form";
|
|
|
|
import { Label } from "@formbricks/ui/Label";
|
|
import {
|
|
Select,
|
|
SelectContent,
|
|
SelectGroup,
|
|
SelectItem,
|
|
SelectTrigger,
|
|
SelectValue,
|
|
} from "@formbricks/ui/Select";
|
|
|
|
enum MembershipRole {
|
|
Admin = "admin",
|
|
Editor = "editor",
|
|
Developer = "developer",
|
|
Viewer = "viewer",
|
|
}
|
|
|
|
type AddMemberRoleProps = {
|
|
control: Control<{ name: string; email: string; role: MembershipRole }, any>;
|
|
canDoRoleManagement: boolean;
|
|
};
|
|
|
|
export const AddMemberRole = ({ control, canDoRoleManagement }: AddMemberRoleProps) => {
|
|
return (
|
|
<Controller
|
|
name="role"
|
|
control={control}
|
|
render={({ field: { onChange, value } }) => (
|
|
<div>
|
|
<Label>Role</Label>
|
|
<Select
|
|
defaultValue="admin"
|
|
value={value}
|
|
onValueChange={(v) => onChange(v as MembershipRole)}
|
|
disabled={!canDoRoleManagement}>
|
|
<SelectTrigger className="capitalize">
|
|
<SelectValue />
|
|
</SelectTrigger>
|
|
<SelectContent>
|
|
<SelectGroup>
|
|
{Object.values(MembershipRole).map((role) => (
|
|
<SelectItem className="capitalize" key={role} value={role}>
|
|
{role}
|
|
</SelectItem>
|
|
))}
|
|
</SelectGroup>
|
|
</SelectContent>
|
|
</Select>
|
|
</div>
|
|
)}
|
|
/>
|
|
);
|
|
};
|