feature: add org role duplication

This commit is contained in:
Scott Wilson
2025-05-09 14:29:18 -07:00
parent 44c7be54cf
commit aa68a3ef58
8 changed files with 214 additions and 15 deletions
@@ -19,7 +19,7 @@ import { ProjectPermissionActions, ProjectPermissionSub, useWorkspace } from "@a
import { useDeleteProjectRole, useGetProjectRoleBySlug } from "@app/hooks/api";
import { ProjectMembershipRole } from "@app/hooks/api/roles/types";
import { usePopUp } from "@app/hooks/usePopUp";
import { DuplicateRoleModal } from "@app/pages/project/RoleDetailsBySlugPage/components/DuplicateRoleModal";
import { DuplicateProjectRoleModal } from "@app/pages/project/RoleDetailsBySlugPage/components/DuplicateProjectRoleModal";
import { ProjectAccessControlTabs } from "@app/types/project";
import { RoleDetailsSection } from "./components/RoleDetailsSection";
@@ -175,7 +175,7 @@ const Page = () => {
deleteKey="confirm"
onDeleteApproved={() => onDeleteRoleSubmit()}
/>
<DuplicateRoleModal
<DuplicateProjectRoleModal
isOpen={popUp.duplicateRole.isOpen}
onOpenChange={(isOpen) => handlePopUpToggle("duplicateRole", isOpen)}
roleSlug={roleSlug}
@@ -51,7 +51,7 @@ const Content = ({ role, onClose }: ContentProps) => {
const handleDuplicateRole = async (form: FormData) => {
try {
const newRole = await createRole.mutateAsync({
projectId: role.projectId,
projectId: currentWorkspace.id,
permissions: role.permissions,
...form
});
@@ -128,7 +128,7 @@ const Content = ({ role, onClose }: ContentProps) => {
);
};
export const DuplicateRoleModal = ({ isOpen, onOpenChange, roleSlug }: Props) => {
export const DuplicateProjectRoleModal = ({ isOpen, onOpenChange, roleSlug }: Props) => {
const { currentWorkspace } = useWorkspace();
const { data: role, isPending } = useGetProjectRoleBySlug(currentWorkspace.id, roleSlug ?? "");
@@ -17,7 +17,7 @@ import { slugSchema } from "@app/lib/schemas";
const schema = z
.object({
name: z.string(),
name: z.string().min(1, "Name required"),
description: z.string(),
slug: slugSchema({ min: 1 })
})