mirror of
https://github.com/hanzoai/calendar.git
synced 2026-10-30 14:46:43 +00:00
* refactor: apply biome formatting to apps/web (batch 1) Formats apps/web non-modules directories: - apps/web/app - apps/web/lib - apps/web/pages - apps/web/styles - apps/web/server - apps/web/test - Root-level .ts and .mjs files Co-Authored-By: Claude Opus 4.5 <[email protected]> * refactor: apply biome formatting to apps/web/modules (batch 2) Formats smaller apps/web/modules directories: - onboarding, data-table, users, apps, auth - integration-attribute-sync, shell, availability - feature-flags, team, webhooks, getting-started - feature-opt-in, troubleshooter, schedules, notifications - signup-view.tsx Co-Authored-By: Claude Opus 4.5 <[email protected]> * refactor: apply biome formatting to apps/web/modules (batch 3) Formats medium apps/web/modules directories: - bookings - event-types - insights - embed Co-Authored-By: Claude Opus 4.5 <[email protected]> * refactor: apply biome formatting to apps/web/modules/ee (batch 4) Formats apps/web/modules/ee directory. Co-Authored-By: Claude Opus 4.5 <[email protected]> * refactor: apply biome formatting to apps/web (batch 5) Formats remaining apps/web directories: - apps/web/modules/settings - apps/web/modules/booking-audit - apps/web/playwright Co-Authored-By: Claude Opus 4.5 <[email protected]> * refactor: apply biome formatting to apps/web/components (batch 6) Formats remaining apps/web/components files. Co-Authored-By: Claude Opus 4.5 <[email protected]> * refactor: apply biome formatting to new apps/web files from main Formats newly added/modified files from main merge: - WorkflowStepContainer.tsx (resolved merge conflicts) - Newly moved files (blocklist, form-builder, schedules, etc.) - Other files modified in main Co-Authored-By: Claude Opus 4.5 <[email protected]> * refactor: apply biome formatting to new apps/web files from main Co-Authored-By: Claude Opus 4.5 <[email protected]> --------- Co-authored-by: Claude Opus 4.5 <[email protected]> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
66 lines
1.9 KiB
TypeScript
66 lines
1.9 KiB
TypeScript
"use client";
|
|
|
|
import { useEffect, useState } from "react";
|
|
|
|
import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams";
|
|
|
|
import type { BookingRedirectForm } from "~/settings/outOfOffice/types";
|
|
|
|
import { CreateOrEditOutOfOfficeEntryModal } from "~/settings/outOfOffice/CreateOrEditOutOfOfficeModal";
|
|
import OutOfOfficeEntriesList from "~/settings/outOfOffice/OutOfOfficeEntriesList";
|
|
import { OutOfOfficeTab } from "~/settings/outOfOffice/OutOfOfficeToggleGroup";
|
|
|
|
import { HolidaysView } from "./holidays-view";
|
|
|
|
export default function OutOfOfficeView() {
|
|
const [openModal, setOpenModal] = useState(false);
|
|
const [currentlyEditingOutOfOfficeEntry, setCurrentlyEditingOutOfOfficeEntry] =
|
|
useState<BookingRedirectForm | null>(null);
|
|
|
|
const params = useCompatSearchParams();
|
|
const openModalOnStart = !!params?.get("om");
|
|
const selectedTab = params?.get("type") ?? OutOfOfficeTab.MINE;
|
|
|
|
useEffect(() => {
|
|
if (openModalOnStart) {
|
|
setOpenModal(true);
|
|
}
|
|
}, [openModalOnStart]);
|
|
|
|
const handleOpenCreateDialog = () => {
|
|
setCurrentlyEditingOutOfOfficeEntry(null);
|
|
setOpenModal(true);
|
|
};
|
|
|
|
const handleOpenEditDialog = (entry: BookingRedirectForm) => {
|
|
setCurrentlyEditingOutOfOfficeEntry(entry);
|
|
setOpenModal(true);
|
|
};
|
|
|
|
const handleCloseModal = () => {
|
|
setOpenModal(false);
|
|
setCurrentlyEditingOutOfOfficeEntry(null);
|
|
};
|
|
|
|
// Show HolidaysView when holidays tab is selected
|
|
if (selectedTab === OutOfOfficeTab.HOLIDAYS) {
|
|
return <HolidaysView />;
|
|
}
|
|
|
|
return (
|
|
<>
|
|
<OutOfOfficeEntriesList
|
|
onOpenCreateDialog={handleOpenCreateDialog}
|
|
onOpenEditDialog={handleOpenEditDialog}
|
|
/>
|
|
{openModal && (
|
|
<CreateOrEditOutOfOfficeEntryModal
|
|
openModal={openModal}
|
|
closeModal={handleCloseModal}
|
|
currentlyEditingOutOfOfficeEntry={currentlyEditingOutOfOfficeEntry}
|
|
/>
|
|
)}
|
|
</>
|
|
);
|
|
}
|