improvement: address feedback

This commit is contained in:
Scott Wilson
2025-07-29 17:06:33 -07:00
parent 4f00fc6777
commit 2aa548c7dc
4 changed files with 9 additions and 8 deletions

View File

@@ -15,7 +15,7 @@ type TDeleteOrgMembership = {
userAliasDAL: Pick<TUserAliasDALFactory, "delete">;
licenseService: Pick<TLicenseServiceFactory, "updateSubscriptionOrgMemberCount">;
projectUserAdditionalPrivilegeDAL: Pick<TProjectUserAdditionalPrivilegeDALFactory, "delete">;
userId: string;
userId?: string;
};
type TDeleteOrgMemberships = {
@@ -27,7 +27,7 @@ type TDeleteOrgMemberships = {
userAliasDAL: Pick<TUserAliasDALFactory, "delete">;
licenseService: Pick<TLicenseServiceFactory, "updateSubscriptionOrgMemberCount">;
projectUserAdditionalPrivilegeDAL: Pick<TProjectUserAdditionalPrivilegeDALFactory, "delete">;
userId: string;
userId?: string;
};
export const deleteOrgMembershipFn = async ({
@@ -44,7 +44,7 @@ export const deleteOrgMembershipFn = async ({
const deletedMembership = await orgDAL.transaction(async (tx) => {
const orgMembership = await orgDAL.deleteMembershipById(orgMembershipId, orgId, tx);
if (orgMembership.userId === userId) {
if (userId && orgMembership.userId === userId) {
// scott: this is temporary, we will add a leave org endpoint with proper handling to ensure org isn't abandoned/broken
throw new BadRequestError({ message: "You cannot remove yourself from an organization" });
}
@@ -125,7 +125,7 @@ export const deleteOrgMembershipsFn = async ({
.filter((member) => Boolean(member.userId))
.map((member) => member.userId) as string[];
if (membershipUserIds.includes(userId)) {
if (userId && membershipUserIds.includes(userId)) {
// scott: this is temporary, we will add a leave org endpoint with proper handling to ensure org isn't abandoned/broken
throw new BadRequestError({ message: "You cannot remove yourself from an organization" });
}

View File

@@ -339,7 +339,6 @@ export const projectMembershipDALFactory = (db: TDbClient) => {
)
.select(
db.ref("id").withSchema(TableName.ProjectMembership),
db.ref("userId").withSchema(TableName.ProjectMembership),
db.ref("isGhost").withSchema(TableName.Users),
db.ref("username").withSchema(TableName.Users),
db.ref("email").withSchema(TableName.Users),

View File

@@ -159,7 +159,7 @@ export const OrgMembersSection = () => {
)}
>
<div className="flex items-center rounded-md border border-mineshaft-600 bg-mineshaft-800 px-4 py-2 text-bunker-300">
<div className="mr-2 text-sm">{selectedMemberIds.length > 0} Selected</div>
<div className="mr-2 text-sm">{selectedMemberIds.length} Selected</div>
<button
type="button"
className="mr-auto text-xs text-mineshaft-400 underline-offset-2 hover:text-mineshaft-200 hover:underline"
@@ -271,7 +271,7 @@ export const OrgMembersSection = () => {
{(popUp.removeMembers.data?.selectedOrgMemberships as OrgUser[])?.map((member) => {
const email = member.user.email ?? member.user.username ?? member.inviteEmail;
return (
<li className="flex items-center">
<li key={member.id} className="flex items-center">
<span className={userId === member.user.id ? "line-through" : ""}>
{member.user.firstName || member.user.lastName
? `${`${member.user.firstName} ${member.user.lastName}`.trim()} (${email})`

View File

@@ -387,7 +387,9 @@ export const OrgMembersTable = ({
onCheckedChange={() => {
if (isPageSelected) {
setSelectedMemberIds((prev) =>
prev.filter((member) => !filteredMembersPage.find((m) => m.id !== member))
prev.filter(
(memberId) => !filteredMembersPage.find((m) => m.id === memberId)
)
);
} else {
setSelectedMemberIds((prev) => [