Admin Collaboration Done

# feat
- Detail Project
- Report Project
## No Issuue
This commit is contained in:
2024-05-10 15:16:09 +08:00
parent c34f9a9b75
commit dc41a5f9af
47 changed files with 2110 additions and 83 deletions

View File

@@ -0,0 +1,9 @@
import ComponentAdminGlobal_LoadingPage from "@/app_modules/admin/component/loading_admin_page";
export default async function Page() {
return (
<>
<ComponentAdminGlobal_LoadingPage />
</>
);
}

View File

@@ -0,0 +1,20 @@
import { AdminColab_Dashboard } from "@/app_modules/admin/colab";
import adminColab_countGroupChat from "@/app_modules/admin/colab/fun/count/count_group_chat";
import adminColab_countIsPublish from "@/app_modules/admin/colab/fun/count/count_publish";
import adminColab_countIsReject from "@/app_modules/admin/colab/fun/count/count_reject";
export default async function Page() {
const countPublish = await adminColab_countIsPublish();
const countRoom = await adminColab_countGroupChat();
const countReject = await adminColab_countIsReject()
return (
<>
<AdminColab_Dashboard
countPublish={countPublish}
countRoom={countRoom}
countReject={countReject}
/>
</>
);
}

View File

@@ -0,0 +1,12 @@
import { AdminColab_TableGroup } from "@/app_modules/admin/colab";
import adminColab_getListAllGroupChat from "@/app_modules/admin/colab/fun/get/get_list_all_group_chat";
export default async function Page() {
const listGroup = await adminColab_getListAllGroupChat({page: 1})
return (
<>
<AdminColab_TableGroup listGroup={listGroup as any} />
</>
);
}

View File

@@ -0,0 +1,9 @@
import ComponentAdminGlobal_LoadingPage from "@/app_modules/admin/component/loading_admin_page";
export default async function Page() {
return (
<>
<ComponentAdminGlobal_LoadingPage />
</>
);
}

View File

@@ -0,0 +1,12 @@
import { AdminColab_TablePublish } from "@/app_modules/admin/colab";
import adminColab_getListAllPublish from "@/app_modules/admin/colab/fun/get/get_list_all_publish";
export default async function Page() {
const listData = await adminColab_getListAllPublish({ page: 1 });
return (
<>
<AdminColab_TablePublish listData={listData} />
</>
);
}

View File

@@ -0,0 +1,12 @@
import { AdminColab_TableRejected } from "@/app_modules/admin/colab";
import adminColab_getListAllRejected from "@/app_modules/admin/colab/fun/get/get_list_all_reject";
export default async function Page() {
const listReject = await adminColab_getListAllRejected({page: 1})
return (
<>
<AdminColab_TableRejected listReject={listReject as any} />
</>
);
}

View File

@@ -0,0 +1,27 @@
import adminColab_getOneRoomChatById from "@/app_modules/admin/colab/fun/get/get_one_room_chat_by_id";
import { Colab_GroupChatView } from "@/app_modules/colab";
import colab_getMessageByRoomId from "@/app_modules/colab/fun/get/room_chat/get_message_by_room_id";
import { user_getOneUserId } from "@/app_modules/fun_global/get_user_token";
import _ from "lodash";
export default async function Page({ params }: { params: { id: string } }) {
const roomId = params.id;
const userLoginId = await user_getOneUserId();
const dataRoom = (await adminColab_getOneRoomChatById({ roomId: roomId }))
.data;
const selectRoom = _.omit(dataRoom, [
"ProjectCollaboration",
"ProjectCollaboration_AnggotaRoomChat",
]);
let listMsg = await colab_getMessageByRoomId({roomId: roomId, page: 1});
return (
<>
<Colab_GroupChatView
userLoginId={userLoginId}
listMsg={listMsg}
selectRoom={selectRoom as any}
/>
</>
);
}

View File

@@ -4,7 +4,7 @@ import colab_getListAnggotaByRoomId from "@/app_modules/colab/fun/get/room_chat/
export default async function Page({ params }: { params: { id: string } }) {
let roomId = params.id;
const dataRoom = await colab_getListAnggotaByRoomId(roomId)
const dataRoom = await colab_getListAnggotaByRoomId(roomId);
return (
<>

View File

@@ -0,0 +1,13 @@
import { Colab_DetailNotifikasi } from "@/app_modules/colab";
import colab_getOneNotifikasiById from "@/app_modules/colab/fun/get/get_one_notifikasi_by_id";
export default async function Page({ params }: { params: { id: string } }) {
let notifId = params.id;
const data = await colab_getOneNotifikasiById({ notifId: notifId });
return (
<>
<Colab_DetailNotifikasi data={data as any} />
</>
);
}

View File

@@ -1,4 +1,5 @@
import { LayoutColab_Main } from "@/app_modules/colab";
import colab_CekNotifikasi from "@/app_modules/colab/fun/get/cek_notifikasi";
import React from "react";
export default async function Layout({
@@ -6,9 +7,11 @@ export default async function Layout({
}: {
children: React.ReactNode;
}) {
const cekNotif = await colab_CekNotifikasi();
return (
<>
<LayoutColab_Main>{children}</LayoutColab_Main>
<LayoutColab_Main cekNotif={cekNotif as any}>{children}</LayoutColab_Main>
</>
);
}

View File

@@ -1,9 +1,13 @@
import { Colab_NotifikasiView } from "@/app_modules/colab";
import colab_getListNotifikasiByUserId from "@/app_modules/colab/fun/get/get_list_notifikasi_by_user_id";
export default async function Page() {
const listNotifikasi = await colab_getListNotifikasiByUserId();
// console.log(listNotifikasi);
return (
<>
<Colab_NotifikasiView />
<Colab_NotifikasiView listNotifikasi={listNotifikasi as any} />
</>
);
}

View File

@@ -0,0 +1,6 @@
export const RouterAdminColab = {
dashboard: "/dev/admin/colab/dashboard",
table_publish: "/dev/admin/colab/sub-menu/publish",
table_group: "/dev/admin/colab/sub-menu/group",
table_reject: "/dev/admin/colab/sub-menu/reject",
};

View File

@@ -22,6 +22,8 @@ export const RouterColab = {
detail_proyek_saya: "/dev/colab/detail/proyek/saya/",
detail_grup: "/dev/colab/detail/grup/",
info_grup: "/dev/colab/detail/info-grup/",
detail_notifikasi: "/dev/colab/detail/notifikasi/",
group_chat: "/dev/colab/detail/group/",
// proyek
};

View File

@@ -5,6 +5,7 @@ import useInfiniteScroll, {
} from "react-easy-infinite-scroll-hook";
import { createItems, loadMore } from "./_util";
import { useShallowEffect } from "@mantine/hooks";
import { Center, Loader } from "@mantine/core";
export default function App() {
const [data, setData] = useState<any[]>([]);
@@ -20,7 +21,7 @@ export default function App() {
setIsLoading(true);
const newData = await loadMore();
const d = direction === "up"? [...newData, ...data]: []
const d = direction === "up" ? [...newData, ...data] : [];
setData(d);
} finally {
setIsLoading(false);
@@ -34,22 +35,25 @@ export default function App() {
});
return (
<div>
<div
ref={ref as any}
className="List"
style={{
height: 500,
overflowY: "auto",
}}
>
{data.map((key: any) => (
<div className="Row" key={key}>
{key}
</div>
))}
<Center>
<div>
<Center>{isLoading && <Loader />}</Center>
<div
ref={ref as any}
className="List"
style={{
height: 500,
overflowY: "auto",
}}
>
{data.map((key: any) => (
<div className="Row" key={key}>
{key}
</div>
))}
</div>
</div>
{isLoading && <div>Loading...</div>}
</div>
</Center>
);
}