import { ButtonProps } from "@/components/button/Button"; import Table from "@/components/table/Table"; import { RaidGroup } from "@/interface/RaidGroup"; import { useAuth } from "@/providers/AuthProvider"; import { containsRaidGroupRequest, isRaidGroupAdmin, isRaidGroupMember } from "@/util/PermissionUtil"; import { useState } from "react"; import { Link } from "react-router"; import RaidGroupRequestModal from "../raidGroupRequest/modal/RaidGroupRequestModal"; import DeleteRaidGroupModal from "./modals/DeleteRaidGroupModal"; import RaidGroupModal from "./modals/RaidGroupModal"; import RaidGroupAdminButtons from "./RaidGroupAdminButtons"; export default function RaidGroupsList({ raidGroups }:{ raidGroups: RaidGroup[]; }){ const [ selectedRaidGroup, setSelectedRaidGroup ] = useState(); const [ displayRaidGroupRequestModal, setDisplayRaidGroupRequestModal ] = useState(false); const [ displayEditRaidGroupModal, setDisplayEditRaidGroupModal ] = useState(false); const [ displayDeleteRaidGroupModal, setDisplayDeleteRaidGroupModal ] = useState(false); const { accountPermissions, raidGroupPermissions, raidGroupRequests } = useAuth(); const buttonProps: ButtonProps = { variant: "ghost", size: "md", shape: "square" }; const headElements: React.ReactNode[] = [
Icon
,
Name
,
Actions
]; const bodyElements: React.ReactNode[][] = raidGroups.map((raidGroup) => [
{ raidGroup.raidGroupIcon &&
}  
, {raidGroup.raidGroupName} ,
 
{ setSelectedRaidGroup(raidGroup); setDisplayRaidGroupRequestModal(true); }} showEditRaidGroupModal={() => { setSelectedRaidGroup(raidGroup); setDisplayEditRaidGroupModal(true); }} showDeleteRaidGroupModal={() => { setSelectedRaidGroup(raidGroup); setDisplayDeleteRaidGroupModal(true); }} hasRaidGroupPermissions={isRaidGroupMember(raidGroup.raidGroupId ?? "", raidGroupPermissions, accountPermissions)} hasRaidGroupRequest={containsRaidGroupRequest(raidGroup.raidGroupId ?? "", raidGroupRequests)} />
]); return ( <> {setDisplayRaidGroupRequestModal(false); setSelectedRaidGroup(undefined);}} raidGroupId={selectedRaidGroup?.raidGroupId ?? ""} /> {setDisplayEditRaidGroupModal(false); setSelectedRaidGroup(undefined);}} raidGroup={selectedRaidGroup} /> {setDisplayDeleteRaidGroupModal(false); setSelectedRaidGroup(undefined);}} raidGroup={selectedRaidGroup} /> ); }