diff --git a/components/board/BoardAccess.tsx b/components/board/BoardAccess.tsx index 0313ffc..ebaa6f9 100644 --- a/components/board/BoardAccess.tsx +++ b/components/board/BoardAccess.tsx @@ -1,14 +1,16 @@ import { Role } from "@/db/schema"; import { fetchMembersByBoardID } from "@/lib/db/member"; import MD5 from "crypto-js/md5"; +import dynamic from "next/dynamic"; import Image from "next/image"; -import MemberManage from "./MemberManage"; interface BoardAccessProps { boardId: string; role: Role; } +const MemberManage = dynamic(() => import("@/components/board/MemberManage"), { ssr: false }); + export default async function BoardAccess({ boardId, role }: BoardAccessProps) { const members = await fetchMembersByBoardID(boardId); const memberCount = members.length; @@ -38,7 +40,7 @@ export default async function BoardAccess({ boardId, role }: BoardAccessProps) { )} - {role === Role.owner && } + {role === Role.owner && } ); } diff --git a/components/board/MemberList.tsx b/components/board/MemberList.tsx index 222ad15..30aad9a 100644 --- a/components/board/MemberList.tsx +++ b/components/board/MemberList.tsx @@ -1,30 +1,21 @@ "use client"; -import React, { useState } from "react"; import { removeMemberFromBoard } from "@/lib/actions/boardActions"; -import type { Role } from "@/db/schema"; - -interface Member { - id: number; - userId: string; - role: Role; - updateAt: Date; -} +import React from "react"; +import type { MemberInfo } from "./MemberManage"; interface MemberListProps { boardId: string; - initialMembers: Member[]; + members: MemberInfo[]; } export default function MemberList({ boardId, - initialMembers, + members, }: MemberListProps) { - const [members, setMembers] = useState(initialMembers); async function handleRemoveMember(memberId: number) { await removeMemberFromBoard(boardId, memberId); - setMembers(members.filter((member) => member.id !== memberId)); } return ( @@ -35,7 +26,7 @@ export default function MemberList({ className="flex justify-between items-center bg-gray-100 p-2 rounded" >
-

{member.userId}

+

{member.username}

- {isModalOpen && ( -
-
-
- setEmail(e.target.value)} - placeholder="Enter email address" - className="w-full p-2 border rounded" - required - /> - -
- + +
+
- )} +
+ +
+ ); }