Fix user cant load modal
This commit is contained in:
parent
f21c3bfb12
commit
5329925090
|
|
@ -2,8 +2,8 @@ import { Card, Stack, Title } from "@mantine/core";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import getUsers from "@/modules/userManagement/actions/getAllUsers";
|
import getUsers from "@/modules/userManagement/actions/getAllUsers";
|
||||||
import { Metadata } from "next";
|
import { Metadata } from "next";
|
||||||
import checkMultiplePermissions from "@/modules/dashboard/services/checkMultiplePermissions";
|
|
||||||
import UsersTable from "@/modules/userManagement/tables/UsersTable/UsersTable";
|
import UsersTable from "@/modules/userManagement/tables/UsersTable/UsersTable";
|
||||||
|
import checkMultiplePermissions from "@/modules/auth/utils/checkMultiplePermissions";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Users - Dashboard",
|
title: "Users - Dashboard",
|
||||||
|
|
@ -14,9 +14,9 @@ export default async function UsersPage() {
|
||||||
const permissions = await checkMultiplePermissions({
|
const permissions = await checkMultiplePermissions({
|
||||||
create: "users.create",
|
create: "users.create",
|
||||||
readAll: "users.readAll",
|
readAll: "users.readAll",
|
||||||
read: "permission.read",
|
read: "users.read",
|
||||||
update: "permission.update",
|
update: "users.update",
|
||||||
delete: "permission.delete",
|
delete: "users.delete",
|
||||||
});
|
});
|
||||||
|
|
||||||
const users = await getUsers();
|
const users = await getUsers();
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,6 @@ async function checkMultiplePermissions<
|
||||||
| "authenticated-only"
|
| "authenticated-only"
|
||||||
| "*"
|
| "*"
|
||||||
| PermissionCode
|
| PermissionCode
|
||||||
| (string & {})
|
|
||||||
>
|
>
|
||||||
>(permissions: T): Promise<{ [K in keyof T]: boolean }> {
|
>(permissions: T): Promise<{ [K in keyof T]: boolean }> {
|
||||||
const permissionResults: Partial<{ [K in keyof T]: boolean }> = {};
|
const permissionResults: Partial<{ [K in keyof T]: boolean }> = {};
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,12 @@ const permissionData = [
|
||||||
isActive: true,
|
isActive: true,
|
||||||
},
|
},
|
||||||
// User group
|
// User group
|
||||||
|
{
|
||||||
|
code: "users.create",
|
||||||
|
name: "Create user",
|
||||||
|
description: "Allows creating a user",
|
||||||
|
isActive: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
code: "users.read",
|
code: "users.read",
|
||||||
name: "Read user",
|
name: "Read user",
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,12 @@
|
||||||
"use client";
|
"use client";
|
||||||
import CrudPermissions from "@/modules/dashboard/types/CrudPermissions";
|
import CrudPermissions from "@/modules/dashboard/types/CrudPermissions";
|
||||||
import { Table, Text, Flex, Button, Center } from "@mantine/core";
|
import { Text, Flex, Button } from "@mantine/core";
|
||||||
import {
|
import {
|
||||||
flexRender,
|
|
||||||
getCoreRowModel,
|
getCoreRowModel,
|
||||||
useReactTable,
|
useReactTable,
|
||||||
} from "@tanstack/react-table";
|
} from "@tanstack/react-table";
|
||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import { TbPlus } from "react-icons/tb";
|
import { TbPlus } from "react-icons/tb";
|
||||||
import getPermissions from "../../actions/getAllPermissions";
|
|
||||||
import getAllPermissions from "../../actions/getAllPermissions";
|
|
||||||
import FormModal, { ModalProps } from "../../modals/PermissionFormModal";
|
import FormModal, { ModalProps } from "../../modals/PermissionFormModal";
|
||||||
import DeleteModal, { DeleteModalProps } from "../../modals/PermissionDeleteModal";
|
import DeleteModal, { DeleteModalProps } from "../../modals/PermissionDeleteModal";
|
||||||
import Permission from "../../types/Permission";
|
import Permission from "../../types/Permission";
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,13 @@
|
||||||
"use client";
|
"use client";
|
||||||
import CrudPermissions from "@/modules/dashboard/types/CrudPermissions";
|
import CrudPermissions from "@/modules/dashboard/types/CrudPermissions";
|
||||||
import { Table, Text, Flex, Button, Center } from "@mantine/core";
|
import { Text, Flex, Button } from "@mantine/core";
|
||||||
import {
|
import { getCoreRowModel, useReactTable } from "@tanstack/react-table";
|
||||||
flexRender,
|
import React, { useMemo, useState } from "react";
|
||||||
getCoreRowModel,
|
|
||||||
useReactTable,
|
|
||||||
} from "@tanstack/react-table";
|
|
||||||
import React, { useState } from "react";
|
|
||||||
import { TbPlus } from "react-icons/tb";
|
import { TbPlus } from "react-icons/tb";
|
||||||
import UserFormModal, { ModalProps } from "../../modals/UserFormModal";
|
import UserFormModal, { ModalProps } from "../../modals/UserFormModal";
|
||||||
import UserDeleteModal, { DeleteModalProps } from "../../modals/UserDeleteModal";
|
import UserDeleteModal, {
|
||||||
|
DeleteModalProps,
|
||||||
|
} from "../../modals/UserDeleteModal";
|
||||||
import createColumns from "./columns";
|
import createColumns from "./columns";
|
||||||
import getAllUsers from "../../actions/getAllUsers";
|
import getAllUsers from "../../actions/getAllUsers";
|
||||||
import DashboardTable from "@/modules/dashboard/components/DashboardTable";
|
import DashboardTable from "@/modules/dashboard/components/DashboardTable";
|
||||||
|
|
@ -20,7 +18,9 @@ interface Props {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function UsersTable(props: Props) {
|
export default function UsersTable(props: Props) {
|
||||||
|
|
||||||
const [modalProps, setModalProps] = useState<ModalProps>({
|
const [modalProps, setModalProps] = useState<ModalProps>({
|
||||||
|
id: "",
|
||||||
opened: false,
|
opened: false,
|
||||||
title: "",
|
title: "",
|
||||||
});
|
});
|
||||||
|
|
@ -31,8 +31,16 @@ export default function UsersTable(props: Props) {
|
||||||
data: undefined,
|
data: undefined,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const userData = useMemo(
|
||||||
|
() => props.userData.map((data) => ({
|
||||||
|
...data,
|
||||||
|
roles: data.roles.map((x) => x.name),
|
||||||
|
})),
|
||||||
|
[props.userData]
|
||||||
|
);
|
||||||
|
|
||||||
const table = useReactTable({
|
const table = useReactTable({
|
||||||
data: props.userData.map(data => ({...data, roles: data.roles.map(x => x.name)})),
|
data: userData,
|
||||||
columns: createColumns({
|
columns: createColumns({
|
||||||
permissions: props.permissions,
|
permissions: props.permissions,
|
||||||
actions: {
|
actions: {
|
||||||
|
|
@ -111,7 +119,7 @@ export default function UsersTable(props: Props) {
|
||||||
</Button>
|
</Button>
|
||||||
)}
|
)}
|
||||||
</Flex>
|
</Flex>
|
||||||
|
|
||||||
<DashboardTable table={table} />
|
<DashboardTable table={table} />
|
||||||
|
|
||||||
<UserFormModal {...modalProps} onClose={closeModal} />
|
<UserFormModal {...modalProps} onClose={closeModal} />
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ const createColumns = (options: ColumnOptions) => {
|
||||||
columnHelper.display({
|
columnHelper.display({
|
||||||
id: "status",
|
id: "status",
|
||||||
header: "Status",
|
header: "Status",
|
||||||
cell: (props) => <Badge color="green">Active</Badge>,
|
cell: () => <Badge color="green">Active</Badge>,
|
||||||
}),
|
}),
|
||||||
|
|
||||||
columnHelper.display({
|
columnHelper.display({
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user