mirror of
https://github.com/hanzoai/calendar.git
synced 2026-10-30 14:46:43 +00:00
* refactor: move timezone-select, settings, and insights components from packages/features to apps/web/modules Co-Authored-By: [email protected] <[email protected]> * fix * fix * fix * wip * wip * wip * wip * wip * wip * wip --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
31 lines
1.3 KiB
TypeScript
31 lines
1.3 KiB
TypeScript
import { useMemo } from "react";
|
|
|
|
import { TimezoneSelectComponent as TimezoneSelect } from "@calcom/features/timezone/components/TimezoneSelectComponent";
|
|
import type { TimezoneSelectComponentProps } from "@calcom/features/timezone/components/TimezoneSelectComponent";
|
|
import type { Timezone } from "@calcom/features/bookings/Booker/types";
|
|
import useGetCityTimezones from "../hooks/useGetCityTimezones";
|
|
import { filterPropsTimezones, formatTimezones } from "../src/lib/timeZones";
|
|
|
|
export function Timezone(props: Omit<TimezoneSelectComponentProps, "data" | "isPending" | "isWebTimezoneSelect"> & { timeZones?: Timezone[] }) {
|
|
const { isLoading: isLoadingAvailableCityTimezones, data: availableCityTimezones } = useGetCityTimezones();
|
|
const cityTimeZones = useMemo(() => {
|
|
if (props.timeZones) {
|
|
const filteredTimeZones = filterPropsTimezones(props.timeZones, availableCityTimezones ?? []);
|
|
return formatTimezones(filteredTimeZones);
|
|
} else if (availableCityTimezones && !isLoadingAvailableCityTimezones) {
|
|
return formatTimezones(availableCityTimezones);
|
|
}
|
|
|
|
return [];
|
|
}, [availableCityTimezones, props.timeZones, isLoadingAvailableCityTimezones]);
|
|
|
|
return (
|
|
<TimezoneSelect
|
|
{...props}
|
|
data={cityTimeZones}
|
|
isPending={isLoadingAvailableCityTimezones}
|
|
isWebTimezoneSelect={false}
|
|
/>
|
|
);
|
|
}
|