{project.name}
diff --git a/src/components/wrappers/dashboard/projects/ProjectCard/ProjectDatabaseCard.tsx b/src/components/wrappers/dashboard/projects/ProjectCard/ProjectDatabaseCard.tsx
index 3dce8129..235dcf7e 100644
--- a/src/components/wrappers/dashboard/projects/ProjectCard/ProjectDatabaseCard.tsx
+++ b/src/components/wrappers/dashboard/projects/ProjectCard/ProjectDatabaseCard.tsx
@@ -10,14 +10,15 @@ import {formatDateLastContact} from "@/utils/date-formatting";
export type projectDatabaseCardProps = {
data: Database,
extendedProps: any
+ organizationSlug: string
}
export const ProjectDatabaseCard = (props: projectDatabaseCardProps) => {
- const {data: database, extendedProps: extendedProps} = props;
+ const {organizationSlug,data: database, extendedProps: extendedProps} = props;
return (
-
+
)
diff --git a/src/components/wrappers/dashboard/projects/ProjectsForm/ProjectForm.tsx b/src/components/wrappers/dashboard/projects/ProjectsForm/ProjectForm.tsx
index c8c23fce..a9e20c4c 100644
--- a/src/components/wrappers/dashboard/projects/ProjectsForm/ProjectForm.tsx
+++ b/src/components/wrappers/dashboard/projects/ProjectsForm/ProjectForm.tsx
@@ -77,7 +77,7 @@ export const ProjectForm = (props: projectFormProps) => {
if (project.data.success) {
toast.success(project.data.actionSuccess.message);
- router.push(`/dashboard/projects/${project.data.value.id}`);
+ router.push(`/dashboard/${props.organization.slug}/projects/${project.data.value.id}`);
router.refresh()
} else {
toast.success(project.data.actionError.message);
diff --git a/src/components/wrappers/dashboard/settings/EditButtonSettings/EditButtonSettings.tsx b/src/components/wrappers/dashboard/settings/EditButtonSettings/EditButtonSettings.tsx
new file mode 100644
index 00000000..1cd1ce5b
--- /dev/null
+++ b/src/components/wrappers/dashboard/settings/EditButtonSettings/EditButtonSettings.tsx
@@ -0,0 +1,21 @@
+"use client"
+import {buttonVariants} from "@/components/ui/button";
+import {GearIcon} from "@radix-ui/react-icons";
+import Link from "next/link";
+import {usePathname} from "next/navigation";
+
+export type EditButtonSettings = {}
+
+export const EditButtonSettings= (props:EditButtonSettings) => {
+
+ const pathname = usePathname();
+
+
+ return(
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/components/wrappers/dashboard/settings/SettingsTabs/SettingsTabs.tsx b/src/components/wrappers/dashboard/settings/SettingsTabs/SettingsTabs.tsx
index fd91319a..4f85f938 100644
--- a/src/components/wrappers/dashboard/settings/SettingsTabs/SettingsTabs.tsx
+++ b/src/components/wrappers/dashboard/settings/SettingsTabs/SettingsTabs.tsx
@@ -2,7 +2,7 @@
import {Tabs, TabsContent, TabsList, TabsTrigger} from "@/components/ui/tabs";
import {DataTableWithPagination} from "@/components/wrappers/common/table/data-table-with-pagination";
-import {usersColumns} from "@/components/wrappers/dashboard/settings/SettingsUsersTab/columns-users";
+import {usersColumns} from "@/components/wrappers/dashboard/settings/SettingsUsersTab/columns-users-settings";
import {User, Settings} from "@prisma/client";
import {backupColumns} from "@/features/backup/columns";
import {SettingsEmailTab} from "@/components/wrappers/dashboard/admin/AdminEmailTab/SettingsEmailTab";
@@ -21,34 +21,6 @@ export const SettingsTabs = (props: SettingsTabsProps) => {
const {currentUser, users} = props;
return (
-
- //
- //
- // Info
- // Users
- // Email
- // Storage
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
-
)
}
diff --git a/src/components/wrappers/dashboard/settings/SettingsUsersTab/SettingsUsersTab.tsx b/src/components/wrappers/dashboard/settings/SettingsUsersTab/SettingsUsersTab.tsx
index 27b78d40..7bf1601b 100644
--- a/src/components/wrappers/dashboard/settings/SettingsUsersTab/SettingsUsersTab.tsx
+++ b/src/components/wrappers/dashboard/settings/SettingsUsersTab/SettingsUsersTab.tsx
@@ -1,6 +1,6 @@
import {User} from "@prisma/client";
import {DataTableWithPagination} from "@/components/wrappers/common/table/data-table-with-pagination";
-import {usersColumns} from "@/components/wrappers/dashboard/settings/SettingsUsersTab/columns-users";
+import {usersColumns} from "@/components/wrappers/dashboard/settings/SettingsUsersTab/columns-users-settings";
import {UsersDataTable} from "@/components/wrappers/dashboard/admin/admin-user-table";
diff --git a/src/components/wrappers/dashboard/settings/SettingsUsersTab/columns-users-settings.tsx b/src/components/wrappers/dashboard/settings/SettingsUsersTab/columns-users-settings.tsx
new file mode 100644
index 00000000..09f46bf3
--- /dev/null
+++ b/src/components/wrappers/dashboard/settings/SettingsUsersTab/columns-users-settings.tsx
@@ -0,0 +1,64 @@
+"use client"
+
+import {ColumnDef} from "@tanstack/react-table"
+import {Badge} from "@/components/ui/badge";
+import {User} from "@prisma/client";
+import {updateUserAction} from "@/components/wrappers/dashboard/profile/UserForm/user-form.action";
+import {useMutation} from "@tanstack/react-query";
+import {toast} from "sonner";
+import {useRouter} from "next/navigation";
+import {useState} from "react";
+import {Trash2} from "lucide-react";
+import {deleteUserAction} from "@/components/wrappers/dashboard/profile/ButtonDeleteAccount/delete-account.action";
+import {ButtonWithLoading} from "@/components/wrappers/common/button/button-with-loading";
+
+export const usersColumns: ColumnDef[] = [
+ {
+ accessorKey: "role",
+ header: "Role",
+ cell: ({row}) => {
+ const router = useRouter();
+ const [role, setRole] = useState(row.getValue("role"))
+
+ const updateMutation = useMutation({
+ mutationFn: () => updateUserAction({id: row.original.id, data: {role: role}}),
+ onSuccess: () => {
+ toast.success(`User updated successfully.`);
+ router.refresh()
+
+ },
+ onError: () => {
+ toast.error(`An error occurred while updating user information.`);
+ },
+ });
+
+ const handleUpdateRole = async () => {
+ const nextRole = role === "admin" ? "pending"
+ : role === "pending" ? "user"
+ : "admin";
+ setRole(nextRole);
+ await updateMutation.mutateAsync()
+ };
+
+ return handleUpdateRole()}
+ variant="outline">{role}
+ },
+ },
+ {
+ accessorKey: "name",
+ header: "Name"
+ },
+ {
+ accessorKey: "email",
+ header: "Email"
+ },
+ {
+ accessorKey: "updatedAt",
+ header: "Updated At",
+ cell: ({row}) => {
+ return new Date(row.getValue("updatedAt")).toLocaleString("fr-FR");
+ },
+ }
+]
\ No newline at end of file