"use client"; import { useState, useEffect } from "react"; import { checkAdminOrOwner } from "@calcom/features/auth/lib/checkAdminOrOwner"; import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { trpc } from "@calcom/trpc/react"; import useMeQuery from "@calcom/trpc/react/hooks/useMeQuery"; import type { ButtonProps } from "@calcom/ui/components/button"; import { Button } from "@calcom/ui/components/button"; import { CreateOrEditOutOfOfficeEntryModal } from "./CreateOrEditOutOfOfficeModal"; import { OutOfOfficeTab } from "./OutOfOfficeToggleGroup"; const CreateNewOutOfOfficeEntry = ({ size, ...rest }: { size?: ButtonProps["size"]; "data-testid"?: string; }) => { const { t } = useLocale(); const me = useMeQuery(); const { data: orgData } = trpc.viewer.organizations.listCurrent.useQuery(); const isOrgAdminOrOwner = orgData && checkAdminOrOwner(orgData.user.role); const hasTeamOOOAdminAccess = isOrgAdminOrOwner || me?.data?.isTeamAdminOrOwner; const params = useCompatSearchParams(); const openModalOnStart = !!params?.get("om"); useEffect(() => { if (openModalOnStart) { setOpenModal(true); } }, [openModalOnStart]); const [openModal, setOpenModal] = useState(false); const selectedTab = params?.get("type") ?? OutOfOfficeTab.MINE; return ( <> {openModal && ( { setOpenModal(false); }} currentlyEditingOutOfOfficeEntry={null} /> )} ); }; export default CreateNewOutOfOfficeEntry;