import { ButtonProps } from "@/components/button/Button"; import Table from "@/components/table/Table"; import { RaidGroup } from "@/interface/RaidGroup"; import { RaidInstance } from "@/interface/RaidInstance"; import { useAuth } from "@/providers/AuthProvider"; import { isRaidGroupAdmin, isRaidGroupLeader } from "@/util/PermissionUtil"; import moment from "moment"; import { useState } from "react"; import { Link } from "react-router"; import DeleteRaidInstanceModal from "./modals/DeleteRaidInstanceModal"; import RaidInstanceModal from "./modals/RaidInstanceModal"; import RaidInstanceAdminButtons from "./RaidInstanceAdminButtons"; export default function RaidInstanceList({ raidInstances, raidGroup }:{ raidInstances: RaidInstance[]; raidGroup: RaidGroup; }){ const { accountPermissions, raidGroupPermissions } = useAuth(); const [ selectedRaidInstance, setSelectedRaidInstance ] = useState(); const [ displayEditRaidInstanceModal, setDisplayEditRaidInstanceModal ] = useState(false); const [ displayDeleteRaidInstanceModal, setDisplayDeleteRaidInstanceModal ] = 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[] = [
Raid Instance
,
Start Date
,
End Date
,
Size
,
Runs
,
Actions
]; const bodyElements: React.ReactNode[][] = raidInstances.map((raidInstance) => [ {raidInstance.raidInstanceName} ,
{moment(raidInstance.raidStartDate).format("MM-DD-YYYY HH:mm")}
,
{moment(raidInstance.raidEndDate).format("MM-DD-YYYY HH:mm")}
,
{raidInstance.raidSize}
,
{raidInstance.numberRuns}
,
 
{ setSelectedRaidInstance(raidInstance); setDisplayEditRaidInstanceModal(true); }} showDeleteRaidInstanceModal={() => { setSelectedRaidInstance(raidInstance); setDisplayDeleteRaidInstanceModal(true); }} />
]); return ( <> { setDisplayEditRaidInstanceModal(false); setSelectedRaidInstance(undefined); }} raidInstance={selectedRaidInstance} raidGroup={raidGroup} /> { setDisplayDeleteRaidInstanceModal(false); setSelectedRaidInstance(undefined); }} raidInstance={selectedRaidInstance} /> ); }