import { ButtonProps } from "@/components/button/Button"; import PersonCharacterDisplay from "@/components/personCharacter/PersonCharacterDisplay"; import Table from "@/components/table/Table"; import { Person } from "@/interface/Person"; import { RaidGroup } from "@/interface/RaidGroup"; import { useAuth } from "@/providers/AuthProvider"; import { isRaidGroupAdmin, isRaidGroupLeader } from "@/util/PermissionUtil"; import { useState } from "react"; import { Link } from "react-router"; import PersonCharacterModal from "../personCharacter/modal/PersonCharacterModal"; import DeletePersonModal from "./modals/DeletePersonModal"; import PersonModal from "./modals/PersonModal"; import PersonAdminButtons from "./PersonAdminButtons"; export default function PersonList({ people, raidGroup }:{ people: Person[]; raidGroup: RaidGroup; }){ const { accountPermissions, raidGroupPermissions } = useAuth(); const [ selectedPerson, setSelectedPerson ] = useState(); const [ displayUpdatePersonModal, setDisplayUpdatePersonModal ] = useState(false); const [ displayDeletePersonModal, setDisplayDeletePersonModal ] = useState(false); const [ displayCreatePersonCharacterModal, setDisplayCreatePersonCharacterModal ] = useState(false); const buttonProps: ButtonProps = { variant: "ghost", size: "md", shape: "square", disabled: !isRaidGroupAdmin(raidGroup.raidGroupId ?? "", raidGroupPermissions, accountPermissions) && !isRaidGroupLeader(raidGroup.raidGroupId ?? "", raidGroupPermissions, accountPermissions) }; const headElements: React.ReactNode[] = [
Person Name
,
Discord ID
,
Characters
,
Actions
]; const bodyElements: React.ReactNode[][] = people.map((person) => [ {person.personName} ,
{person.discordId}
, ,
 
{ setSelectedPerson(person); setDisplayUpdatePersonModal(true); }} showDeletePersonModal={() => { setSelectedPerson(person); setDisplayDeletePersonModal(true); }} showCreatePersonCharacterModal={() => { setSelectedPerson(person); setDisplayCreatePersonCharacterModal(true); }} />
]); return ( <> {setDisplayUpdatePersonModal(false); setSelectedPerson(undefined);}} person={selectedPerson} raidGroupId={raidGroup.raidGroupId ?? ""} /> {setDisplayDeletePersonModal(false); setSelectedPerson(undefined);}} person={selectedPerson} raidGroupId={raidGroup.raidGroupId ?? ""} /> {setDisplayCreatePersonCharacterModal(false); setSelectedPerson(undefined);}} personId={selectedPerson?.personId ?? ""} personCharacter={undefined} gameId={raidGroup.gameId} raidGroupId={raidGroup.raidGroupId ?? ""} /> ); }