Glutinum.Feliz.ReactGoogleAutocomplete
1.0.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Glutinum.Feliz.ReactGoogleAutocomplete --version 1.0.0
NuGet\Install-Package Glutinum.Feliz.ReactGoogleAutocomplete -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Glutinum.Feliz.ReactGoogleAutocomplete" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Glutinum.Feliz.ReactGoogleAutocomplete --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Glutinum.Feliz.ReactGoogleAutocomplete, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Glutinum.Feliz.ReactGoogleAutocomplete as a Cake Addin #addin nuget:?package=Glutinum.Feliz.ReactGoogleAutocomplete&version=1.0.0 // Install Glutinum.Feliz.ReactGoogleAutocomplete as a Cake Tool #tool nuget:?package=Glutinum.Feliz.ReactGoogleAutocomplete&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Glutinum.Feliz.ReactGoogleAutocomplete
Binding for react-google-autocomplete
Development
In order to run the demo project, you need to set the env variable VITE_GOOGLE_MAP_API_KEY
to your Google Maps API key.
Usage
Components
open Feliz
open Glutinum.Feliz.ReactGoogleAutocomplete
open type Glutinum.Feliz.ReactGoogleAutocomplete.Exports
[<ReactComponent>]
let private Component () =
ReactGoogleAutocomplete [
reactGoogleAutocomplete.apiKey VITE_GOOGLE_MAP_API_KEY
reactGoogleAutocomplete.onPlaceSelected (fun places _ _ ->
printfn "onPlaceSelected"
)
]
Hooks
open Feliz
open Glutinum.Feliz.ReactGoogleAutocomplete
open type Glutinum.Feliz.ReactGoogleAutocomplete.Exports
[<ReactComponent>]
let private Component () =
let info = usePlacesWidget(ReactGoogleAutocompleteProps(
apiKey = VITE_GOOGLE_MAP_API_KEY,
onPlaceSelected = fun places _ _ ->
printfn "onPlaceSelected"
))
Html.input [
prop.ref info.ref
]
Service Hook
open Feliz
open Browser
open Glutinum.Feliz.ReactGoogleAutocomplete
open type Glutinum.Feliz.ReactGoogleAutocomplete.Exports
[<ReactComponent>]
let private Component () =
let (placeDetailResult, setPlaceDetailResult) =
React.useState (fun () -> None)
let (placePredictions, setPlacePredictions) =
React.useState (fun () ->
ResizeArray<Google.Maps.Places.AutocompletePrediction>()
)
let response =
usePlacesAutocompleteService (
UsePlacesAutocompleteServiceConfig(
apiKey = VITE_GOOGLE_MAP_API_KEY,
debounce = 500
)
)
React.useEffect (
fun () -> setPlacePredictions response.placePredictions
, [|
box response.placePredictions
|]
)
let handleOnChange (input: string) =
setPlaceDetailResult None
let request = Google.Maps.Places.AutocompletionRequest(input = input)
response.getPlacePredictions request
let getDetails (placeId: string) =
match response.placesService with
| Some service ->
service.getDetails (
Google.Maps.Places.PlaceDetailsRequest(placeId = placeId),
fun (place: Google.Maps.Places.PlaceResult option) (status) ->
setPlaceDetailResult place
)
|> ignore
| None -> ()
Html.div [
Html.input [
prop.type' "text"
prop.onChange handleOnChange
]
if placePredictions.Count > 0 && placeDetailResult.IsNone then
Html.ul (
response.placePredictions
|> Seq.map (fun prediction ->
Html.li [
Html.a [
prop.text prediction.description
prop.onClick (fun _ ->
getDetails prediction.place_id
)
]
]
)
)
match placeDetailResult with
| Some place ->
Html.h1 [
match place.name with
| Some name -> Html.text name
| None -> ()
]
Html.div [
match place.formatted_address with
| Some address -> Html.text address
| None -> ()
]
| None -> ()
]
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Fable.Browser.Dom (>= 2.15.0)
- Fable.Browser.Svg (>= 2.3.0)
- Fable.Browser.Url (>= 1.3.2)
- Fable.Browser.WebGL (>= 1.2.0)
- Fable.Core (>= 4.2.0)
- Feliz (>= 2.7.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.