mirror of
https://github.com/hanzoai/calendar.git
synced 2026-10-30 14:46:43 +00:00
90 lines
2.8 KiB
TypeScript
90 lines
2.8 KiB
TypeScript
import { useInitalizeTroubleshooterStore } from "@calcom/features/troubleshooter/store";
|
|
import useMediaQuery from "@calcom/lib/hooks/useMediaQuery";
|
|
import classNames from "@calcom/ui/classNames";
|
|
import { AtomsWrapper } from "../../src/components/atoms-wrapper";
|
|
import { TroubleshooterSidebar } from "../sidebar/TroubleshooterSidebar";
|
|
import { LargeCalendar } from "../large-calendar/LargeCalendar";
|
|
import { BookerStoreProvider } from "@calcom/features/bookings/Booker/BookerStoreProvider";
|
|
|
|
interface TroubleshooterComponentProps {
|
|
month?: string | null;
|
|
onManageCalendarsClick?: () => void;
|
|
onInstallCalendarClick?: () => void;
|
|
}
|
|
|
|
export const TroubleshooterComponent = ({
|
|
month = null,
|
|
onManageCalendarsClick,
|
|
onInstallCalendarClick,
|
|
}: TroubleshooterComponentProps): JSX.Element => {
|
|
const isMobile = useMediaQuery("(max-width: 768px)");
|
|
const isTablet = useMediaQuery("(max-width: 1024px)");
|
|
|
|
useInitalizeTroubleshooterStore({
|
|
month: month,
|
|
isPlatform: true,
|
|
});
|
|
|
|
return (
|
|
<AtomsWrapper>
|
|
<>
|
|
<div
|
|
className={classNames(
|
|
"text-default flex min-h-full w-full flex-col items-center overflow-clip",
|
|
isMobile
|
|
? "[--troubleshooter-meta-width:0px]"
|
|
: "[--troubleshooter-meta-width:250px] lg:[--troubleshooter-meta-width:430px]"
|
|
)}
|
|
>
|
|
<div
|
|
style={{
|
|
display: "grid",
|
|
width: "100%",
|
|
height: "auto",
|
|
gridTemplateAreas: `"meta main"`,
|
|
gridTemplateColumns: "var(--troubleshooter-meta-width) 1fr",
|
|
gridTemplateRows: "auto",
|
|
}}
|
|
className={classNames(
|
|
"bg-default dark:bg-cal-muted text-default min-h-full w-full sm:transition-[width] sm:duration-300"
|
|
)}
|
|
>
|
|
<div className="sticky top-0 z-10 self-start ps-6 [grid-area:meta]">
|
|
<TroubleshooterSidebar
|
|
onManageCalendarsClick={onManageCalendarsClick}
|
|
onInstallCalendarClick={onInstallCalendarClick}
|
|
/>
|
|
</div>
|
|
|
|
<div className="ml-[-1px] border-subtle [grid-area:main]">
|
|
<LargeCalendar />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</>
|
|
</AtomsWrapper>
|
|
);
|
|
};
|
|
|
|
interface TroubleshooterPlatformWrapperProps {
|
|
month?: string | null;
|
|
onManageCalendarsClick?: () => void;
|
|
onInstallCalendarClick?: () => void;
|
|
}
|
|
|
|
export const TroubleshooterPlatformWrapper = ({
|
|
month,
|
|
onManageCalendarsClick,
|
|
onInstallCalendarClick,
|
|
}: TroubleshooterPlatformWrapperProps): JSX.Element => {
|
|
return (
|
|
<BookerStoreProvider>
|
|
<TroubleshooterComponent
|
|
month={month}
|
|
onManageCalendarsClick={onManageCalendarsClick}
|
|
onInstallCalendarClick={onInstallCalendarClick}
|
|
/>
|
|
</BookerStoreProvider>
|
|
);
|
|
};
|