import {useIntl} from 'gatsby-plugin-intl'; import React, {MouseEventHandler} from 'react'; import {_useMapControl as useMapControl} from 'react-map-gl'; import * as styles from './territoryFocusControl.module.scss'; interface ITerritoryFocusControl { onClickTerritoryFocusButton: MouseEventHandler; } const TerritoryFocusControl = ({onClickTerritoryFocusButton}: ITerritoryFocusControl) => { const intl = useIntl(); const {containerRef} = useMapControl({ // @ts-ignore // Types have not caught up yet, see https://github.com/visgl/react-map-gl/issues/1492 onClick: onClickTerritoryFocusButton, }); const territories = [ { short: intl.formatMessage( { id: 'map.territoryFocus.lower48.short', defaultMessage: '48', description: 'The abbreviated name indicating the bounds of the Lower 48 states', }, ), long: intl.formatMessage( { id: 'map.territoryFocus.lower48.long', defaultMessage: 'Lower 48', description: 'The longer name indicating the bounds of the Lower 48 states', }, ), }, { short: intl.formatMessage( { id: 'map.territoryFocus.alaska.short', defaultMessage: 'AK', description: 'The abbreviated indicating the bounds of Alaska', }, ), long: intl.formatMessage( { id: 'map.territoryFocus.alaska.long', defaultMessage: 'Alaska', description: 'The full name indicating the bounds of Alaska', }, ), }, { short: intl.formatMessage( { id: 'map.territoryFocus.hawaii.short', defaultMessage: 'HI', description: 'The abbreviated name indicating the bounds of Hawaii', }, ), long: intl.formatMessage( { id: 'map.territoryFocus.hawaii.long', defaultMessage: 'Hawaii', description: 'The longer name indicating the bounds of Hawaii', }, ), }, { short: intl.formatMessage( { id: 'map.territoryFocus.puerto_rico.short', defaultMessage: 'PR', description: 'The abbreviated name indicating the bounds of Puerto Rico', }, ), long: intl.formatMessage( { id: 'map.territoryFocus.puerto_rico.long', defaultMessage: 'Puerto Rico', description: 'The full name indicating the bounds of Puerto Rico', }, ), }, ]; // the offset for this array should map the territories variable const territoriesIconClassName = [ 'mapboxgl-ctrl-zoom-to-48', 'mapboxgl-ctrl-zoom-to-ak', 'mapboxgl-ctrl-zoom-to-hi', 'mapboxgl-ctrl-zoom-to-pr', ]; return (
{territories.map((territory, index) => , )}
); }; export default TerritoryFocusControl;