Skip to content

Commit

Permalink
Get map refs from state part 3
Browse files Browse the repository at this point in the history
  • Loading branch information
juhomakkonen committed Jun 19, 2024
1 parent a6e33b4 commit 9af54a0
Show file tree
Hide file tree
Showing 10 changed files with 40 additions and 49 deletions.
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/* eslint-disable react-hooks/exhaustive-deps */
import React, { useEffect } from 'react';
import { useMap } from 'react-leaflet';
import { useSelector } from 'react-redux';
import airPlaneIconBw from 'servicemap-ui-turku/assets/icons/contrast/icons-icon_airplane-bw.svg';
import airPlaneIcon from 'servicemap-ui-turku/assets/icons/icons-icon_airplane.svg';
import { useMobilityPlatformContext } from '../../../context/MobilityPlatformContext';
import { useAccessibleMap } from '../../../redux/selectors/settings';
import { selectMapRef } from '../../../redux/selectors/general';
import { createIcon } from '../utils/utils';
import useIotDataFetch from '../utils/useIotDataFetch';
import { StyledPopupWrapper, StyledPopupInner } from '../styled/styled';
Expand All @@ -14,8 +14,7 @@ import AirportFlightsContent from './components/AirportFlightsContent';
const AirportFlights = () => {
const { showAirports } = useMobilityPlatformContext();

const map = useMap();

const map = useSelector(selectMapRef);
const useContrast = useSelector(useAccessibleMap);

const { Marker, Popup } = global.rL;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ import { Close } from '@mui/icons-material';
import PropTypes from 'prop-types';
import React from 'react';
import { useIntl } from 'react-intl';
import { useMap } from 'react-leaflet';
import { useSelector } from 'react-redux';
import styled from '@emotion/styled';
import routeUnitIcon from 'servicemap-ui-turku/assets/icons/icons-icon_culture_route.svg';
import routeUnitIconBw from 'servicemap-ui-turku/assets/icons/contrast/icons-icon_culture_route-bw.svg';
import { useMobilityPlatformContext } from '../../../../../context/MobilityPlatformContext';
import { useAccessibleMap } from '../../../../../redux/selectors/settings';
import { selectMapRef } from '../../../../../redux/selectors/general';
import { createIcon } from '../../../utils/utils';
import useLocaleText from '../../../../../utils/useLocaleText';

Expand All @@ -20,11 +20,11 @@ const CultureRouteUnits = ({ cultureRouteUnits }) => {

const locale = useSelector(state => state.user.locale);
const getLocaleText = useLocaleText();
const map = useMap();

const { Marker, Popup } = global.rL;
const { icon } = global.L;

const map = useSelector(selectMapRef);
const useContrast = useSelector(useAccessibleMap);

const customIcon = icon(createIcon(useContrast ? routeUnitIconBw : routeUnitIcon));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React, { useEffect, useState } from 'react';
import { useSelector } from 'react-redux';
import { useMap } from 'react-leaflet';
import moose from 'servicemap-ui-turku/assets/icons/icons-icon_moose.svg';
import fox from 'servicemap-ui-turku/assets/icons/icons-icon_fox.svg';
import deer from 'servicemap-ui-turku/assets/icons/icons-icon_deer.svg';
Expand All @@ -15,6 +14,7 @@ import martenContrast from 'servicemap-ui-turku/assets/icons/contrast/icons-icon
import capercaillieContrast from 'servicemap-ui-turku/assets/icons/contrast/icons-icon_capercaillie-bw.svg';
import { useMobilityPlatformContext } from '../../../context/MobilityPlatformContext';
import { useAccessibleMap } from '../../../redux/selectors/settings';
import { selectMapRef } from '../../../redux/selectors/general';
import {
isDataValid, createIcon, blueOptionsBase, whiteOptionsBase,
} from '../utils/utils';
Expand All @@ -31,7 +31,7 @@ const MobilityProfiles = () => {
const { Marker, Polygon, Popup } = global.rL;
const { icon, polygon } = global.L;

const map = useMap();
const map = useSelector(selectMapRef);
const useContrast = useSelector(useAccessibleMap);

useEffect(() => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/* eslint-disable react-hooks/exhaustive-deps */
import React, { useEffect } from 'react';
import { useSelector } from 'react-redux';
import { useMap } from 'react-leaflet';
import { isObjValid, blackOptionsBase, whiteOptionsBase } from '../utils/utils';
import { useAccessibleMap } from '../../../redux/selectors/settings';
import { selectMapRef } from '../../../redux/selectors/general';
import { useMobilityPlatformContext } from '../../../context/MobilityPlatformContext';
import ParkingChargeZoneContent from './components/ParkingChargeZoneContent';
import PolygonComponent from '../PolygonComponent';
Expand All @@ -16,32 +16,28 @@ const ParkingChargeZones = () => {
const renderOneParkingChargeZone = isObjValid(showParkingChargeZones, parkingChargeZone);

const useContrast = useSelector(useAccessibleMap);
const map = useSelector(selectMapRef);

const blackOptions = blackOptionsBase({ fillOpacity: 0.2, weight: 5 });
const whiteOptions = whiteOptionsBase({ fillOpacity: 0.3, weight: 5, dashArray: '2 10 10 10' });
const pathOptions = useContrast ? whiteOptions : blackOptions;

const map = useMap();

useEffect(() => {
if (showParkingChargeZones && parkingChargeZone) {
const bounds = parkingChargeZone.geometry_coords;
map.fitBounds(bounds);
}
}, [showParkingChargeZones, parkingChargeZone]);

return (
<>
{renderOneParkingChargeZone ? (
<PolygonComponent
item={parkingChargeZone}
useContrast={useContrast}
pathOptions={pathOptions}
>
<ParkingChargeZoneContent parkingChargeZone={parkingChargeZone} />
</PolygonComponent>
) : null}
</>
return (renderOneParkingChargeZone ? (
<PolygonComponent
item={parkingChargeZone}
useContrast={useContrast}
pathOptions={pathOptions}
>
<ParkingChargeZoneContent parkingChargeZone={parkingChargeZone} />
</PolygonComponent>
) : null
);
};

Expand Down
5 changes: 2 additions & 3 deletions src/components/MobilityPlatform/Roadworks/Roadworks.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
/* eslint-disable react-hooks/exhaustive-deps */
import React, { useEffect } from 'react';
import { useSelector } from 'react-redux';
import { useMap } from 'react-leaflet';
import roadworksIcon from 'servicemap-ui-turku/assets/icons/icons-icon_roadworks.svg';
import roadworksIconBw from 'servicemap-ui-turku/assets/icons/contrast/icons-icon_roadworks-bw.svg';
import { useMobilityPlatformContext } from '../../../context/MobilityPlatformContext';
import {
createIcon, isDataValid, grayOptionsBase, whiteOptionsBase,
} from '../utils/utils';
import { useAccessibleMap, getCitySettings } from '../../../redux/selectors/settings';
import { selectMapRef } from '../../../redux/selectors/general';
import config from '../../../../config';
import useRoadworksDataFetch from '../utils/useRoadworksDataFetch';
import { StyledPopupWrapper, StyledPopupInner } from '../styled/styled';
Expand All @@ -29,8 +29,7 @@ const Roadworks = () => {
const { icon } = global.L;
const { Marker, Polyline, Popup } = global.rL;

const map = useMap();

const map = useSelector(selectMapRef);
const useContrast = useSelector(useAccessibleMap);
const citySettings = useSelector(getCitySettings);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/* eslint-disable react-hooks/exhaustive-deps */
import React, { useEffect } from 'react';
import { useMap } from 'react-leaflet';
import { useSelector } from 'react-redux';
import { useMobilityPlatformContext } from '../../../../../context/MobilityPlatformContext';
import useMobilityDataFetch from '../../../utils/useMobilityDataFetch';
import { isDataValid, whiteOptionsBase, redOptionsBase } from '../../../utils/utils';
import { useAccessibleMap } from '../../../../../redux/selectors/settings';
import { selectMapRef } from '../../../../../redux/selectors/general';
import PolygonComponent from '../../../PolygonComponent';
import TextContent from '../../../TextContent';

Expand All @@ -20,6 +20,7 @@ const NoParking = () => {

const { showScooterNoParking } = useMobilityPlatformContext();
const useContrast = useSelector(useAccessibleMap);
const map = useSelector(selectMapRef);

const redOptions = redOptionsBase({ weight: 5 });
const whiteOptions = whiteOptionsBase({
Expand All @@ -28,7 +29,6 @@ const NoParking = () => {
dashArray: '11 2 11',
});
const pathOptions = useContrast ? whiteOptions : redOptions;
const map = useMap();

const { data } = useMobilityDataFetch(options, showScooterNoParking);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/* eslint-disable react-hooks/exhaustive-deps */
import React, { useEffect } from 'react';
import { useMap } from 'react-leaflet';
import { useSelector } from 'react-redux';
import scooterParkingIcon from 'servicemap-ui-turku/assets/icons/icons-icon_scooter_parking.svg';
import scooterParkingIconBw from 'servicemap-ui-turku/assets/icons/contrast/icons-icon_scooter_parking-bw.svg';
import { useMobilityPlatformContext } from '../../../../../context/MobilityPlatformContext';
import { useAccessibleMap } from '../../../../../redux/selectors/settings';
import { selectMapRef } from '../../../../../redux/selectors/general';
import useMobilityDataFetch from '../../../utils/useMobilityDataFetch';
import { createIcon, isDataValid, fitToMapBounds } from '../../../utils/utils';
import TextContent from '../../../TextContent';
Expand All @@ -16,8 +16,7 @@ const ParkingAreas = () => {
};
const { showScooterParkingAreas } = useMobilityPlatformContext();

const map = useMap();

const map = useSelector(selectMapRef);
const useContrast = useSelector(useAccessibleMap);

const { Marker, Popup } = global.rL;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/* eslint-disable react-hooks/exhaustive-deps */
import React, { useEffect } from 'react';
import { useSelector } from 'react-redux';
import { useMap } from 'react-leaflet';
import { useMobilityPlatformContext } from '../../../../../context/MobilityPlatformContext';
import { useAccessibleMap } from '../../../../../redux/selectors/settings';
import { selectMapRef } from '../../../../../redux/selectors/general';
import useMobilityDataFetch from '../../../utils/useMobilityDataFetch';
import {
isDataValid, fitPolygonsToBounds, blueOptionsBase, whiteOptionsBase,
Expand All @@ -25,6 +25,7 @@ const SpeedLimitAreas = () => {
const { showScooterSpeedLimitAreas } = useMobilityPlatformContext();

const useContrast = useSelector(useAccessibleMap);
const map = useSelector(selectMapRef);

const blueOptions = blueOptionsBase();
const whiteOptions = whiteOptionsBase({ fillOpacity: 0.3, dashArray: '10 2 10' });
Expand All @@ -33,8 +34,6 @@ const SpeedLimitAreas = () => {
const { data } = useMobilityDataFetch(options, showScooterSpeedLimitAreas);
const renderData = isDataValid(showScooterSpeedLimitAreas, data);

const map = useMap();

useEffect(() => {
fitPolygonsToBounds(renderData, data, map);
}, [showScooterSpeedLimitAreas, data]);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/* eslint-disable react-hooks/exhaustive-deps */
import React, { useEffect } from 'react';
import { useMap } from 'react-leaflet';
import { useSelector } from 'react-redux';
import { useMobilityPlatformContext } from '../../../../../context/MobilityPlatformContext';
import { useAccessibleMap } from '../../../../../redux/selectors/settings';
import { selectMapRef } from '../../../../../redux/selectors/general';
import useMobilityDataFetch from '../../../utils/useMobilityDataFetch';
import { isDataValid, fitPolygonsToBounds } from '../../../utils/utils';

Expand All @@ -24,6 +24,7 @@ const BrushedBicycleRoads = () => {
const { Polyline } = global.rL;

const useContrast = useSelector(useAccessibleMap);
const map = useSelector(selectMapRef);

const white = 'rgba(255, 255, 255, 255)';
const black = 'rgba(0, 0, 0, 255)';
Expand Down Expand Up @@ -54,8 +55,6 @@ const BrushedBicycleRoads = () => {
weight: 4,
};

const map = useMap();

const { data: brushSaltedRoutes } = useMobilityDataFetch(optionsBrushSalted, showBrushSaltedRoute);
const { data: brushSandedRoutes } = useMobilityDataFetch(optionsBrushSanded, showBrushSandedRoute);
const renderBrushSandedData = isDataValid(showBrushSandedRoute, brushSandedRoutes);
Expand Down
26 changes: 13 additions & 13 deletions src/components/MobilityPlatform/TrailsComponent/TrailsComponent.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import React, { useEffect } from 'react';
import PropTypes from 'prop-types';
import { useSelector } from 'react-redux';
import { useMap } from 'react-leaflet';
import { useAccessibleMap } from '../../../redux/selectors/settings';
import { selectMapRef } from '../../../redux/selectors/general';
import { isObjValid, whiteOptionsBase, blackOptionsBase } from '../utils/utils';

/* Show selected trail on the map */
Expand All @@ -13,6 +13,7 @@ const TrailsComponent = ({
const { Polyline } = global.rL;

const useContrast = useSelector(useAccessibleMap);
const map = useSelector(selectMapRef);

const pathOptions = { color };
const blackOptions = blackOptionsBase({ dashArray: pattern });
Expand All @@ -24,31 +25,30 @@ const TrailsComponent = ({

const renderData = isObjValid(showTrail, trailsObj);

const map = useMap();

useEffect(() => {
if (renderData) {
const bounds = [];
bounds.push(trailsObj.geometry_coords);
map.fitBounds([bounds]);
}
}, [showTrail, trailsObj]);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [renderData, trailsObj]);

return (
return renderData ? (
<>
{renderData ? (
<>
<Polyline weight={8} pathOptions={finalPathOptions.first} positions={trailsObj.geometry_coords} />
<Polyline weight={4} pathOptions={finalPathOptions.second} positions={trailsObj.geometry_coords} />
</>
) : null}
<Polyline weight={8} pathOptions={finalPathOptions.first} positions={trailsObj.geometry_coords} />
<Polyline weight={4} pathOptions={finalPathOptions.second} positions={trailsObj.geometry_coords} />
</>
);
) : null;
};

TrailsComponent.propTypes = {
showTrail: PropTypes.bool,
trailsObj: PropTypes.objectOf(PropTypes.any),
trailsObj: PropTypes.shape({
geometry_coords: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.arrayOf(
PropTypes.number,
))),
}),
color: PropTypes.string,
pattern: PropTypes.string,
};
Expand Down

0 comments on commit 9af54a0

Please sign in to comment.