import * as React from 'react'
import { useEffect } from 'react'
import { useFormContext } from 'react-hook-form'
import * as PropTypes from 'prop-types'
import { InferProps } from 'prop-types'
import {
graphql, useFragment,
} from 'react-relay'
import { withPreloadedQuery } from '@aztlan/react-relay'
import { Map } from '../../../../common/Map/index.js'
const FRAGMENT = graphql`
fragment ConfirmationMapChildrenHiddenInputsFragment on GeoCoordinates {
latitude
longitude
}
`
function RawConfirmationMapChildren({
data,
name,
...otherProps
}: InferProps<
typeof RawConfirmationMapChildren.propTypes
>): React.ReactElement {
const result = useFragment(
FRAGMENT, data,
)
const {
latitude, longitude,
} = result || {}
const { setValue } = useFormContext()
useEffect(
() => {
setValue(
`${name}.latitude`, latitude,
)
setValue(
`${name}.longitude`, longitude,
)
}, [
latitude,
longitude,
setValue,
],
)
if (!latitude || !longitude) {
return No valid coordinates
}
return (
)
}
RawConfirmationMapChildren.propTypes = {
/** The query reference to use */
data:PropTypes.object.isRequired,
/** The name of the form field */
name:PropTypes.string.isRequired,
}
export default withPreloadedQuery(
RawConfirmationMapChildren, { accessor: 'geocode' },
)