Newer
Older
import { BASE_API_URL, PROJECT_ID } from '@/constants';
import { currentBackgroundSelector } from '@/redux/backgrounds/background.selectors';
import { mapDataSizeSelector } from '@/redux/map/map.selectors';
import { useSelector } from 'react-redux';
export type GetSubmapDownloadUrl = ({
handler,
modelId,
}: {
handler: string;
modelId: number;
}) => string;
export const useGetSubmapDownloadUrl = (): GetSubmapDownloadUrl => {
const background = useSelector(currentBackgroundSelector);
const mapSize = useSelector(mapDataSizeSelector);
const getSubmapDownloadUrl: GetSubmapDownloadUrl = ({ handler, modelId }) => {
const allParamsValid = [modelId, background?.id, mapSize.maxZoom, handler].reduce(
(a, b) => Boolean(a) && Boolean(b),
true,
);
if (!allParamsValid) {
return '';
}
return `${BASE_API_URL}/projects/${PROJECT_ID}/models/${modelId}:downloadModel?backgroundOverlayId=${background?.id}&handlerClass=${handler}&zoomLevel=${mapSize.maxZoom}`;
};
return getSubmapDownloadUrl;
};