import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Button, Dialog, DialogActions, DialogContent, DialogTitle, Switch, Tooltip, Grid, Typography, } from '@mui/material'; import { PhotoSizeSelectActual } from '@mui/icons-material'; import Map from '../Map'; interface Props { open: boolean; orderType: number; latitude?: number; longitude?: number; onClose?: (position?: [number, number]) => void; interactive?: boolean; zoom?: number; message?: string; } const F2fMapDialog = ({ open = false, orderType, onClose = () => {}, latitude, longitude, interactive, zoom, message = '', }: Props): JSX.Element => { const { t } = useTranslation(); const [position, setPosition] = useState<[number, number]>(); const [useTiles, setUseTiles] = useState(false); const [acceptedTilesWarning, setAcceptedTilesWarning] = useState(false); const [openWarningDialog, setOpenWarningDialog] = useState(false); const onSave = () => { if (position && position[0] && position[1]) { onClose([ position[0] + Math.random() * 0.02 - 0.01, position[1] + Math.random() * 0.02 - 0.01, ]); } }; useEffect(() => { if (open && latitude && longitude) { setPosition([latitude, longitude]); } else { setPosition(undefined); } }, [open]); return ( onClose()} aria-labelledby='worldmap-dialog-title' aria-describedby='worldmap-description' maxWidth={false} > { setOpenWarningDialog(false); }} > {t('Download high resolution map?')} {t( 'By doing so, you will be fetching map tiles from a third-party provider. Depending on your setup, private information might be leaked to servers outside the RoboSats federation.', )} {interactive ? t('Choose a location') : t('Map')}
{ if (acceptedTilesWarning) { setUseTiles((value) => !value); } else { setOpenWarningDialog(true); } }} />
{message} {interactive ? ( ) : ( )}
); }; export default F2fMapDialog;