Skip to content

Commit

Permalink
refactor: simplify role management logic and unify props interface in…
Browse files Browse the repository at this point in the history
… InviteModal components
  • Loading branch information
pavkout committed Jan 31, 2025
1 parent b765390 commit 55ab9b6
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ const MemberListItem: FC<{
confirmMessage='Confirm'
className="flex items-center gap-2 min-w-[85px] py-1 px-2 font-semibold aria-pressed:bg-[--hl-sm] text-[--color-font] transition-all text-sm"
doneMessage={isFailed ? 'Failed' : isAcceptedMember || isGroup ? 'Removed' : 'Revoked'}
disabled={memberRoleName === 'owner' || (isCurrentUser && isAcceptedMember)}
disabled={memberRoleName === 'owner' || isCurrentUser}
onClick={() => {
if (!permissionRef.current['delete:membership']) {
showAlert({
Expand Down Expand Up @@ -561,26 +561,6 @@ export const InviteModalContainer: FC<{
};
};

enum ITEM_TYPE {
MEMBER,
INVITE,
GROUP
};

export interface PendingMember {
id: string;
inviter: {
name: string;
};
invitee: {
email: string;
};
created_at: string;
expires_at: string;
roles: string[];
itemType: ITEM_TYPE.INVITE;
}

function checkPermissionRefType(permissionRef: MutableRefObject<Record<Permission, boolean> | undefined>): permissionRef is MutableRefObject<Record<Permission, boolean>> {
return Boolean(permissionRef.current);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ export enum SELECTOR_TYPE {
INVITE = 'invite',
};

interface PropsForUpdateRole {
type: SELECTOR_TYPE.UPDATE;
interface Props {
type: SELECTOR_TYPE.UPDATE | SELECTOR_TYPE.INVITE;
availableRoles: Role[];
memberRoles: string[];
userRole: Role;
Expand All @@ -79,16 +79,7 @@ interface PropsForUpdateRole {
onRoleChange: (role: Role) => Promise<void>;
}

interface PropsForInvite {
type: SELECTOR_TYPE.INVITE;
availableRoles: Role[];
memberRoles: string[];
isDisabled?: boolean;
className?: string;
onRoleChange: (role: Role) => Promise<void>;
}

export const OrganizationMemberRolesSelector = (props: PropsForUpdateRole | PropsForInvite) => {
export const OrganizationMemberRolesSelector = (props: Props) => {
const {
type,
availableRoles,
Expand Down

0 comments on commit 55ab9b6

Please sign in to comment.