import { Control, UseFormSetValue, useWatch } from "react-hook-form"; import { Select, SelectItem, Td, Tr } from "@app/components/v2"; import { ProjectPermissionSub } from "@app/context"; import { TFormSchema } from "@app/views/Project/RolePage/components/RolePermissionsSection/ProjectRoleModifySection.utils"; type Props = { isEditable: boolean; setValue: UseFormSetValue; control: Control; }; enum Permission { SameAsSecrets = "same-as-secrets", ReadOnly = "read-only" } export const RowPermissionSecretFoldersRow = ({ isEditable, setValue, control }: Props) => { const formName = ProjectPermissionSub.SecretFolders; const rule = useWatch({ control, name: `permissions.${formName}` }); const selectedPermissionCategory = rule !== undefined ? Permission.ReadOnly : Permission.SameAsSecrets; const handlePermissionChange = (val: Permission) => { if (!val) return; switch (val) { case Permission.SameAsSecrets: { setValue(`permissions.${formName}`, undefined, { shouldDirty: true }); break; } // Read-only default: setValue( `permissions.${formName}`, { read: true, edit: false, create: false, delete: false }, { shouldDirty: true } ); break; } }; return ( Secret Folders ); };