UNPKG

terriajs

Version:

Geospatial data visualization platform.

43 lines 2.37 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { reaction } from "mobx"; import { observer } from "mobx-react"; import { useCallback, useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { Credits } from "./Credits"; import { CreditsContainer } from "./CreditsContainer"; import { DataAttributionModal } from "./DataAttribution/DataAttributionModal"; import { MapCreditLogo } from "./MapCreditLogo"; import { Spacer } from "./Spacer"; import { TerriaLogo } from "./TerriaLogo"; export const MapCredits = observer(({ currentViewer, hideTerriaLogo, credits, searchBarModel }) => { const { t } = useTranslation(); const [dataAttributionVisible, setDataAttributionVisible] = useState(false); const searchAttributions = searchBarModel.locationSearchProvidersArray .map((provider) => { return provider.attributions?.flat(); }) .flat() .filter((attribution) => !!attribution); const showDataAttribution = useCallback(() => { setDataAttributionVisible(true); }, [setDataAttributionVisible]); const hideDataAttribution = useCallback(() => { setDataAttributionVisible(false); }, [setDataAttributionVisible]); useEffect(() => { return reaction(() => currentViewer.attributions.length, () => { if (currentViewer.attributions && currentViewer.attributions.length === 0) { hideDataAttribution(); } }); /* eslint-disable-next-line react-hooks/exhaustive-deps */ }, [currentViewer]); if (currentViewer.type === "none") { return _jsx(CreditsContainer, {}); } return (_jsxs(CreditsContainer, { children: [!hideTerriaLogo ? _jsx(TerriaLogo, {}) : null, _jsx(MapCreditLogo, { currentViewer: currentViewer }), _jsx(Credits, { credits: credits }), _jsx(Spacer, {}), (currentViewer.attributions && currentViewer.attributions.length > 0) || currentViewer.attributions.length > 0 ? (_jsx("a", { onClick: showDataAttribution, children: t("map.extraCreditLinks.credits") })) : null, dataAttributionVisible ? (_jsx(DataAttributionModal, { closeModal: hideDataAttribution, attributions: currentViewer.attributions, searchAttributions: searchAttributions })) : null] })); }); //# sourceMappingURL=MapCredits.js.map