2023-04-06 08:17:53 +00:00
import type { LocationObject } from "@calcom/app-store/locations" ;
import { locationKeyToString } from "@calcom/app-store/locations" ;
import { getEventLocationType } 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 < typeof useLocale > [ "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 ;
return {
2023-08-12 21:31:43 +00:00
// XYZ: is considered a namespace in i18next https://www.i18next.com/principles/namespaces and thus it get's cleaned up.
// Beacause there can be a URL in here, simply don't translate it if it starts with http: or https:. This would allow us to keep supporting namespaces if we plan to use them
label : locationString.search ( /^https?:/ ) !== - 1 ? locationString : t ( locationString ) ,
2023-04-06 08:17:53 +00:00
value : type ,
inputPlaceholder : t ( eventLocation ? . attendeeInputPlaceholder || "" ) ,
} ;
} )
. filter ( notEmpty ) ;
}