blob: 827a71deb2ad8376c82e575e20b8e0a343fe5156 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
import React, { useEffect, useState } from 'react';
import { useSelector } from 'react-redux';
import { Link } from '@mui/material';
import { useTranslation } from './LocalizationProvider';
import { useCatch } from '../../reactHelper';
const AddressValue = ({ latitude, longitude, originalAddress }) => {
const t = useTranslation();
const addressEnabled = useSelector((state) => state.session.server.geocoderEnabled);
const [address, setAddress] = useState();
useEffect(() => {
setAddress(originalAddress);
}, [latitude, longitude, originalAddress]);
const showAddress = useCatch(async () => {
const query = new URLSearchParams({ latitude, longitude });
const response = await fetch(`/api/server/geocode?${query.toString()}`);
if (response.ok) {
setAddress(await response.text());
} else {
throw Error(await response.text());
}
});
if (address) {
return address;
}
if (addressEnabled) {
return (<Link href="#" onClick={showAddress}>{t('sharedShowAddress')}</Link>);
}
return '';
};
export default AddressValue;
|