Files
Benny JooGitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
15268bcfb4 refactor: move timezone-select, settings, and insights components from packages/features to apps/web/modules (#27227)
* 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>
2026-01-26 12:05:18 +00:00

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}
/>
);
}