fix: handle empty location in event types (#24342)

This commit is contained in:
Pallav
2025-10-24 17:58:34 -03:00
committed by GitHub
parent 6843ced3db
commit 013e614397
@@ -2,17 +2,13 @@ import { useAutoAnimate } from "@formkit/auto-animate/react";
import { ErrorMessage } from "@hookform/error-message";
import Link from "next/link";
import { useEffect, useState } from "react";
import { useFieldArray, useFormContext } from "react-hook-form";
import { useFieldArray } from "react-hook-form";
import type { UseFormGetValues, UseFormSetValue, Control, FormState } from "react-hook-form";
import type { EventLocationType } from "@calcom/app-store/locations";
import { getEventLocationType, MeetLocationType } from "@calcom/app-store/locations";
import { useIsPlatform } from "@calcom/atoms/hooks/useIsPlatform";
import type {
LocationFormValues,
EventTypeSetupProps,
FormValues,
} from "@calcom/features/eventtypes/lib/types";
import type { LocationFormValues, EventTypeSetupProps } from "@calcom/features/eventtypes/lib/types";
import CheckboxField from "@calcom/features/form/components/CheckboxField";
import type { SingleValueLocationOption } from "@calcom/features/form/components/LocationSelect";
import LocationSelect from "@calcom/features/form/components/LocationSelect";
@@ -34,10 +30,6 @@ export type TLocationOptions = Pick<EventTypeSetupProps, "locationOptions">["loc
export type TDestinationCalendar = { integration: string } | null;
export type TPrefillLocation = { credentialId?: number; type: string };
type LocationInputCustomClassNames = {
addressInput?: string;
phoneInput?: string;
};
type LocationsProps = {
team: { id: number } | null;
@@ -96,7 +88,7 @@ const Locations: React.FC<LocationsProps> = ({
disableLocationProp,
isManagedEventType,
getValues,
setValue,
setValue: _setValue,
control,
formState,
team,
@@ -116,8 +108,6 @@ const Locations: React.FC<LocationsProps> = ({
name: "locations",
});
const formMethods = useFormContext<FormValues>();
const locationOptions = props.locationOptions.map((locationOption) => {
const options = locationOption.options.filter((option) => {
// Skip "Organizer's Default App" for non-team members
@@ -172,8 +162,7 @@ const Locations: React.FC<LocationsProps> = ({
setSelectedNewOption(prefillLocation);
}
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [prefillLocation, seatsEnabled]);
}, [prefillLocation, seatsEnabled, validLocations, append]);
const isPlatform = useIsPlatform();
@@ -250,6 +239,7 @@ const Locations: React.FC<LocationsProps> = ({
type="button"
onClick={() => {
remove(index);
setSelectedNewOption(null);
}}
aria-label={t("remove")}>
<div className="h-4 w-4">