import DangerMessage from "@/components/message/DangerMessage"; import TabGroup, { Tab } from "@/components/tab/TabGroup"; import TutorialComponent from "@/components/TutorialComponent"; import { useGetRaidGroup } from "@/hooks/RaidGroupHooks"; import { TutorialStatus } from "@/interface/AccountTutorialStatus"; import { RaidGroup } from "@/interface/RaidGroup"; import { useAuth } from "@/providers/AuthProvider"; import RaidGroupAccountsTab from "@/ui/account/RaidGroupAccountsTab"; import RaidGroupCalendarDisplay from "@/ui/calendar/RaidGroupCalendarDisplay"; import RaidGroupHeader from "@/ui/calendar/RaidGroupHeader"; import ClassGroupsTab from "@/ui/classGroup/ClassGroupsTab"; import PersonTab from "@/ui/person/PersonTab"; import RaidGroupRequestTab from "@/ui/raidGroupRequest/RaidGroupRequestTab"; import RaidInstanceTab from "@/ui/raidInstance/RaidInstanceTab"; import RaidLayoutTab from "@/ui/raidLayout/RaidLayoutTab"; import { isRaidGroupAdmin } from "@/util/PermissionUtil"; import { raidGroupTutorialSteps } from "@/util/TutorialUtil"; import { useEffect, useState } from "react"; import { Navigate, useParams } from "react-router"; export default function RaidGroupPage(){ const { raidGroupId } = useParams(); const { accountPermissions, raidGroupPermissions, tutorialsStatus, setTutorialsStatus } = useAuth(); const [ raidGroup, setRaidGroup ] = useState(); const raidGroupQuery = useGetRaidGroup(raidGroupId ?? "", false); useEffect(() => { if(raidGroupQuery.status === "success"){ setRaidGroup(raidGroupQuery.data); } }, [ raidGroupQuery ]); const updateRaidGroupTutorialStatus = () => { const newTutorialsStatus = { ...tutorialsStatus }; if(tutorialsStatus.raidGroupTutorialStatus === TutorialStatus.COMPLETED){ newTutorialsStatus.raidGroupTutorialStatus = TutorialStatus.NOT_COMPLETED; } else if(tutorialsStatus.raidGroupTutorialStatus === TutorialStatus.NOT_COMPLETED){ newTutorialsStatus.raidGroupTutorialStatus = TutorialStatus.COMPLETED; } setTutorialsStatus(newTutorialsStatus); } if(raidGroupQuery.status === "pending"){ return (
Loading...
); } else if(raidGroupQuery.status === "error"){ return ( Error {raidGroupQuery.error.message} ); } else if(raidGroupQuery.status === "success" && raidGroupQuery.data === undefined){ return ( ); } else if(raidGroup){ const tabs: Tab[] = [ { tabId: "calendarTab", tabHeader: "Calendar", tabContent: }, { tabId: "peopleTab", tabHeader: "People", tabContent: }, { tabId: "classGroupsTab", tabHeader: "Class Groups", tabContent: }, { tabId: "raidLayoutsTab", tabHeader: "Raid Layout", tabContent: }, { tabId: "instancesTab", tabHeader: "Raid Instances", tabContent: } ]; if(isRaidGroupAdmin(raidGroupId!, raidGroupPermissions, accountPermissions)){ tabs.push({ tabId: "usersTab", tabHeader: "Users", tabContent: }); tabs.push({ tabId: "requestsTab", tabHeader: "Requests", tabContent: }); } return (
); } }