Skip to content

Commit

Permalink
ON-40405 # add useGoogle hook
Browse files Browse the repository at this point in the history
  • Loading branch information
divporter committed May 22, 2024
1 parent 8b24779 commit 0ef92a7
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 19 deletions.
12 changes: 3 additions & 9 deletions src/form-elements/FormElementGoogleAddress.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
import * as React from 'react'
import { FormTypes, GoogleTypes } from '@oneblink/types'
import { useJsApiLoader } from '@react-google-maps/api'
import { OneBlinkAppsError, Sentry } from '@oneblink/apps'

import AutocompleteDropdown from '../components/renderer/AutocompleteDropdown'
import FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'
import useGoogleMapsApiKeyKey from '../hooks/useGoogleMapsApiKey'
import useGoogle from '../hooks/useGoogle'
import useIsMounted from '../hooks/useIsMounted'
import useElementAriaDescribedby from '../hooks/useElementAriaDescribedby'
import { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'
import { OneBlinkAppsError, Sentry } from '@oneblink/apps'

type Props = {
formId: number
Expand Down Expand Up @@ -37,12 +36,7 @@ function FormElementGoogleAddress({
const [isLoadingAddressDetails, setIsLoadingAddressDetails] =
React.useState(false)

const googleMapsApiKey = useGoogleMapsApiKeyKey()

const { isLoaded } = useJsApiLoader({
googleMapsApiKey: googleMapsApiKey ?? '',
libraries: ['maps', 'marker', 'places'],
})
const { isLoaded } = useGoogle()

const autocompleteService = React.useMemo(() => {
if (isLoaded) {
Expand Down
14 changes: 5 additions & 9 deletions src/form-elements/FormElementLocation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@ import * as React from 'react'
import { FormTypes } from '@oneblink/types'
import { Sentry } from '@oneblink/apps'
import clsx from 'clsx'
import { GoogleMap, Marker, useJsApiLoader } from '@react-google-maps/api'
import { GoogleMap, Marker } from '@react-google-maps/api'
import queryString from 'query-string'

import useBooleanState from '../hooks/useBooleanState'
import useIsOffline from '../hooks/useIsOffline'
import * as geolocation from '../services/geolocation'
import OnLoading from '../components/renderer/OnLoading'
import defaultCoords from '../services/defaultCoordinates'
import useGoogleMapsApiKeyKey from '../hooks/useGoogleMapsApiKey'
import useGoogle from '../hooks/useGoogle'
import useGoogleMapsApiKey from '../hooks/useGoogleMapsApiKey'
import FormElementLabelContainer from '../components/renderer/FormElementLabelContainer'
import { FormElementValueChangeHandler, IsDirtyProps } from '../types/form'
import { LookupNotificationContext } from '../hooks/useLookupNotification'
Expand Down Expand Up @@ -334,7 +335,7 @@ const LocationImage = React.memo(function LocationImage({
}: {
location: Coords
}) {
const googleMapsApiKey = useGoogleMapsApiKeyKey()
const googleMapsApiKey = useGoogleMapsApiKey()

const staticUrl = React.useMemo(() => {
const center = `${location.latitude},${location.longitude}`
Expand Down Expand Up @@ -368,12 +369,7 @@ const LocationPicker = React.memo(function LocationPicker({
location: Coords
onChange: (newLocation: Coords) => void
}) {
const googleMapsApiKey = useGoogleMapsApiKeyKey()

const { isLoaded } = useJsApiLoader({
googleMapsApiKey: googleMapsApiKey ?? '',
libraries: ['maps', 'marker', 'places'],
})
const { isLoaded } = useGoogle()

return (
<figure className="ob-figure">
Expand Down
13 changes: 13 additions & 0 deletions src/hooks/useGoogle.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { useJsApiLoader } from '@react-google-maps/api'
import useGoogleMapsApiKey from './useGoogleMapsApiKey'

export default function useGoogle() {
const key = useGoogleMapsApiKey()

const { isLoaded } = useJsApiLoader({
googleMapsApiKey: key ?? '',
libraries: ['maps', 'marker', 'places'],
})

return { isLoaded }
}
2 changes: 1 addition & 1 deletion src/hooks/useGoogleMapsApiKey.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ export const GoogleMapsApiKeyContext = React.createContext<string | undefined>(
undefined,
)

export default function useGoogleMapsApiKeyKey() {
export default function useGoogleMapsApiKey() {
return React.useContext(GoogleMapsApiKeyContext)
}

0 comments on commit 0ef92a7

Please sign in to comment.