diff --git a/lib/web/controllers/application_controller.ex b/lib/web/controllers/application_controller.ex index 7ef7d5600..a08960f12 100644 --- a/lib/web/controllers/application_controller.ex +++ b/lib/web/controllers/application_controller.ex @@ -426,7 +426,7 @@ defmodule Mobilizon.Web.ApplicationController do defp valid_uri?(url) do uri = URI.parse(url) - uri.scheme != nil and uri.host =~ "." + uri.scheme != nil and (uri.host =~ "." or uri.host == "localhost") end @spec append_parameters(String.t(), Enum.t()) :: String.t() diff --git a/src/components/Event/FullAddressAutoComplete.vue b/src/components/Event/FullAddressAutoComplete.vue index bfa911951..a9f687f08 100644 --- a/src/components/Event/FullAddressAutoComplete.vue +++ b/src/components/Event/FullAddressAutoComplete.vue @@ -318,9 +318,10 @@ const debounceDelay = computed(() => geocodingAutocomplete.value === true ? 200 : 2000 ); -const { load: searchAddress } = useLazyQuery<{ - searchAddress: IAddress[]; -}>(ADDRESS); +const { load: searchAddressLoad, refetch: searchAddressRefetch } = + useLazyQuery<{ + searchAddress: IAddress[]; + }>(ADDRESS); const asyncData = async (query: string): Promise => { console.debug("Finding addresses"); @@ -338,13 +339,20 @@ const asyncData = async (query: string): Promise => { isFetching.value = true; try { - const result = await searchAddress(undefined, { + const queryVars = { query, locale: locale, type: props.resultType, - }); + }; - if (!result) return; + const result = + (await searchAddressLoad(undefined, queryVars)) || + (await searchAddressRefetch(queryVars))?.data + + if (!result) { + isFetching.value = false; + return; + } console.debug("onAddressSearchResult", result.searchAddress); addressData.value = result.searchAddress; isFetching.value = false;