import type { LocationObject } from "@calcom/app-store/locations"; import { locationKeyToString } from "@calcom/app-store/locations"; import { getEventLocationType } from "@calcom/app-store/locations"; import { getTranslatedLocation } from "@calcom/app-store/locations"; import type { useLocale } from "@calcom/lib/hooks/useLocale"; import notEmpty from "@calcom/lib/notEmpty"; export default function getLocationsOptionsForSelect( locations: LocationObject[], t: ReturnType["t"] ) { return locations .map((location) => { const eventLocation = getEventLocationType(location.type); const locationString = locationKeyToString(location); if (typeof locationString !== "string" || !eventLocation) { // It's possible that location app got uninstalled return null; } const type = eventLocation.type; const translatedLocation = getTranslatedLocation(location, eventLocation, t); return { // XYZ: is considered a namespace in i18next https://www.i18next.com/principles/namespaces and thus it get's cleaned up. label: translatedLocation || locationString, value: type, inputPlaceholder: t(eventLocation?.attendeeInputPlaceholder || ""), }; }) .filter(notEmpty); }