Skip to content

Commit

Permalink
Temp
Browse files Browse the repository at this point in the history
  • Loading branch information
DW225 committed Sep 20, 2024
1 parent cf7dd7c commit 65b6059
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 8 deletions.
5 changes: 4 additions & 1 deletion components/board/BoardAccess.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,10 @@ export default async function BoardAccess({ boardId, role }: BoardAccessProps) {
)}
</div>
{role === Role.owner && (
<MemberManageModalComponent boardId={boardId} members={members} />
<MemberManageModalComponent
boardId={boardId}
initialMembers={members}
/>
)}
</div>
);
Expand Down
10 changes: 8 additions & 2 deletions components/board/MemberList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,12 @@ export default function MemberList({
handleRemoveMember,
handleRoleChange,
}: MemberListProps) {
const roles = {
Guest: Role.guest,
Member: Role.member,
Owner: Role.owner,
};

return (
<ul className="space-y-2">
{members.map((member) => (
Expand All @@ -35,8 +41,8 @@ export default function MemberList({
<p className="text-sm text-gray-500">{member.email}</p>
</div>
<Select
onValueChange={(value: MemberInfo["role"]) =>
handleRoleChange(member.id, value)
onValueChange={(value: keyof typeof roles) =>
handleRoleChange(member.id.toString(), roles[value])
}
>
<SelectTrigger className="w-[110px]">
Expand Down
11 changes: 6 additions & 5 deletions components/board/MemberManageModalComponent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,18 @@ import {
} from "@/components/ui/dialog";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
import type { Role } from "@/db/schema";
import { Role } from "@/db/schema";
import { PlusCircleIcon } from "@heroicons/react/24/outline";
import dynamic from "next/dynamic";
import React, { useState } from "react";

interface MemberManageProps {
boardId: string;
members: MemberInfo[];
initialMembers: MemberInfo[];
}

export interface MemberInfo {
id: number;
id: string;
userId: string;
role: Role;
username: string;
Expand All @@ -35,9 +35,10 @@ const MemberList = dynamic(() => import("@/components/board/MemberList"));

export default function MemberManageModalComponent({
boardId,
members,
initialMembers,
}: MemberManageProps) {
const [isOpen, setIsOpen] = useState(false);
const [members, setMembers] = useState<MemberInfo[]>(initialMembers);
const [newMember, setNewMember] = useState({ username: "", email: "" });
const [memberToRemove, setMemberToRemove] = useState<MemberInfo | null>(null);

Expand All @@ -46,7 +47,7 @@ export default function MemberManageModalComponent({
if (newMember.username && newMember.email) {
setMembers([
...members,
{ ...newMember, id: Date.now().toString(), role: "Viewer" },
{ ...newMember, id: Date.now().toString(), role: Role.member },
]);
setNewMember({ username: "", email: "" });
}
Expand Down

0 comments on commit 65b6059

Please sign in to comment.