mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-11-09 04:38:49 +00:00
Merge branch 'main' into PRWLR-4393-Setup-NextAuth-client-session
This commit is contained in:
19 files changed
+643
-17
No files matched your search
@@ -0,0 +1,12 @@
|
||||
import { Spacer } from "@nextui-org/react";
|
||||
|
||||
import { Header } from "@/components/ui";
|
||||
|
||||
export default async function Categories() {
|
||||
return (
|
||||
<>
|
||||
<Header title="Categories" icon="material-symbols:folder-open-outline" />
|
||||
<Spacer y={4} />
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -2,10 +2,10 @@ import React from "react";
|
||||
|
||||
import { Header } from "@/components/ui";
|
||||
|
||||
export default function Integration() {
|
||||
export default function Integrations() {
|
||||
return (
|
||||
<>
|
||||
<Header title="Integration" icon="tabler:puzzle" />
|
||||
<Header title="Integrations" icon="tabler:puzzle" />
|
||||
|
||||
<p>Hi hi from Integration page</p>
|
||||
</>
|
||||
@@ -0,0 +1,43 @@
|
||||
import { Spacer } from "@nextui-org/react";
|
||||
import { redirect } from "next/navigation";
|
||||
import { Suspense } from "react";
|
||||
|
||||
import { getUsers } from "@/actions/users";
|
||||
import { Header } from "@/components/ui";
|
||||
import {
|
||||
ColumnsUser,
|
||||
DataTableUser,
|
||||
SkeletonTableUser,
|
||||
} from "@/components/users";
|
||||
import { searchParamsProps } from "@/types";
|
||||
|
||||
export default async function Users({ searchParams }: searchParamsProps) {
|
||||
return (
|
||||
<>
|
||||
<Header title="User Management" icon="ci:users" />
|
||||
<Spacer y={4} />
|
||||
<div className="flex flex-col items-end w-full">
|
||||
<Spacer y={6} />
|
||||
<Suspense key={searchParams.page} fallback={<SkeletonTableUser />}>
|
||||
<SSRDataTable searchParams={searchParams} />
|
||||
</Suspense>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
const SSRDataTable = async ({ searchParams }: searchParamsProps) => {
|
||||
const page = searchParams.page ? parseInt(searchParams.page) : 1;
|
||||
const usersData = await getUsers({ page });
|
||||
const [users] = await Promise.all([usersData]);
|
||||
|
||||
if (users?.errors) redirect("/users");
|
||||
|
||||
return (
|
||||
<DataTableUser
|
||||
columns={ColumnsUser}
|
||||
data={users?.users?.data ?? []}
|
||||
metadata={users?.meta}
|
||||
/>
|
||||
);
|
||||
};
|
||||
@@ -0,0 +1,12 @@
|
||||
import { Spacer } from "@nextui-org/react";
|
||||
|
||||
import { Header } from "@/components/ui";
|
||||
|
||||
export default async function Workloads() {
|
||||
return (
|
||||
<>
|
||||
<Header title="Workloads" icon="lucide:tags" />
|
||||
<Spacer y={4} />
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import { NextResponse } from "next/server";
|
||||
|
||||
import data from "../../../dataUsers.json";
|
||||
|
||||
export async function GET() {
|
||||
// Simulate fetching data with a delay
|
||||
await new Promise((resolve) => setTimeout(resolve, 2000));
|
||||
|
||||
return NextResponse.json({ users: data });
|
||||
}
|
||||
Reference in new issue
Block a user