Skip to content
45 changes: 23 additions & 22 deletions src/components/analyticsConfigTable/analytics-action-cell.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import {
DialogDescription,
DialogHeader,
DialogTitle,
DialogTrigger,
} from "@/components/ui/dialog";
import {
DropdownMenu,
Expand All @@ -18,6 +17,7 @@ import {
import { MoreHorizontal } from "lucide-react";
import AddAnalyticsConfigForm from "../forms/AddAnalyticsConfigForm";
import { AnalyticsConfig } from "./columns";
import { useState } from "react";

interface AnalyticsActionsCellProps {
config: AnalyticsConfig;
Expand All @@ -40,30 +40,31 @@ export const AnalyticsActionsCell = ({
onUpdateConfig,
isReadOnly,
}: AnalyticsActionsCellProps) => {
const [isDialogOpen, setIsDialogOpen] = useState(false);

return (
<>
<Dialog modal={false}>
<DropdownMenu modal={false}>
<DropdownMenuTrigger asChild>
<Button
variant="ghost"
className="h-8 w-8 p-0"
disabled={isReadOnly}
>
<span className="sr-only">Open menu</span>
<MoreHorizontal className="h-4 w-4" />
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent align="end">
<DropdownMenuItem
onClick={(e) => e.stopPropagation()}
className="cursor-pointer"
>
<DialogTrigger>Edit config</DialogTrigger>
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
<DropdownMenu modal={false}>
<DropdownMenuTrigger asChild>
<Button variant="ghost" className="h-8 w-8 p-0" disabled={isReadOnly}>
<span className="sr-only">Open menu</span>
<MoreHorizontal className="h-4 w-4" />
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent align="end">
<DropdownMenuItem
onClick={(e) => {
e.stopPropagation();
setIsDialogOpen(true);
}}
className="cursor-pointer"
>
Edit config
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>

<Dialog open={isDialogOpen} onOpenChange={setIsDialogOpen}>
<DialogContent>
<DialogHeader>
<DialogTitle>Edit Config</DialogTitle>
Expand Down
48 changes: 30 additions & 18 deletions src/components/forms/EditUserForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -117,26 +117,38 @@ const EditUserForm = ({
);

// Unlink projects that were removed
const unlinkPromises = projectsToUnlink.map((projectId) => {
const projectName = projectData.find(
(p) => parseInt(p.id) === parseInt(projectId),
)?.name;
return unlinkUserFromProject({
projectName,
userId: initialUserData.id.toString(),
});
});
const unlinkPromises = projectsToUnlink
.map((projectId) => {
const projectName = projectData.find(
(p) => parseInt(p.id) === parseInt(projectId),
)?.name;
if (!projectName) {
// console.error(`Project with ID ${projectId} not found`);
return null;
}
return unlinkUserFromProject({
projectName,
userId: initialUserData.id.toString(),
});
})
.filter((promise) => promise !== null);

// Link projects that were added
const linkPromises = projectsToLink.map((projectId) => {
const projectName = projectData.find(
(p) => parseInt(p.id) === parseInt(projectId),
)?.name;
return linkUserToProject({
projectName,
userId: initialUserData.id.toString(),
});
});
const linkPromises = projectsToLink
.map((projectId) => {
const projectName = projectData.find(
(p) => parseInt(p.id) === parseInt(projectId),
)?.name;
if (!projectName) {
// console.error(`Project with ID ${projectId} not found`);
return null;
}
return linkUserToProject({
projectName,
userId: initialUserData.id.toString(),
});
})
.filter((promise) => promise !== null);

// Execute all project operations
const unlinkResults = await Promise.all(unlinkPromises);
Expand Down
Loading