diff --git a/front/public/locales/en/map-settings.json b/front/public/locales/en/map-settings.json index eb71b201cd8..1f653c6452e 100644 --- a/front/public/locales/en/map-settings.json +++ b/front/public/locales/en/map-settings.json @@ -15,7 +15,7 @@ }, "noSpeedLimitByTag": "No composition code", "operationalpoints": "Operational points", - "platforms":"Platforms", + "platforms": "Platforms", "routes": "Train blocks", "signals": "Signals", "signalingtype": "Signalling block type", @@ -25,6 +25,7 @@ "showIGNCadastre": "Cadastre ©IGN", "showOSM": "Map background OSM", "showOSMtracksections": "OSM tracks", + "smoothTravel": "Smooth travel", "sncf_psl": "Permanent speed limits", "speedlimits": "Speed limits", "stops": "Stop signs", diff --git a/front/public/locales/fr/map-settings.json b/front/public/locales/fr/map-settings.json index 63ffcdb3d09..647f6ea0cd0 100644 --- a/front/public/locales/fr/map-settings.json +++ b/front/public/locales/fr/map-settings.json @@ -15,7 +15,7 @@ }, "noSpeedLimitByTag": "Aucun code de composition", "operationalpoints": "Points remarquables", - "platforms":"Quais", + "platforms": "Quais", "routes": "Cantons", "signals": "Signals", "signalingtype": "Type de block", @@ -25,6 +25,7 @@ "showIGNCadastre": "Cadastre ©IGN", "showOSM": "Fond de carte OSM", "showOSMtracksections": "Voies OSM", + "smoothTravel": "Transition douce", "sncf_psl": "Limites permanentes de vitesse", "speedlimits": "Vitesses limites", "stops": "Pancartes d'arrêt", diff --git a/front/src/common/Map/Search/MapSearch.tsx b/front/src/common/Map/Search/MapSearch.tsx index eb77e88178a..a68c6c1ce36 100644 --- a/front/src/common/Map/Search/MapSearch.tsx +++ b/front/src/common/Map/Search/MapSearch.tsx @@ -22,10 +22,11 @@ type MapSearchProps = { const MapSearch: FC = ({ map, closeMapSearchPopUp }) => { const dispatch = useDispatch(); + const { smoothTravel } = useSelector(getMap); const updateViewportChange = useCallback( (value: Partial) => { - if (map) { + if (map && smoothTravel) { map.flyTo({ center: { lng: value.longitude || map.getCenter().lng, diff --git a/front/src/common/Map/Settings/MapSettingsBackgroundSwitches.tsx b/front/src/common/Map/Settings/MapSettingsBackgroundSwitches.tsx index 15c384cbd78..7c85a48e836 100644 --- a/front/src/common/Map/Settings/MapSettingsBackgroundSwitches.tsx +++ b/front/src/common/Map/Settings/MapSettingsBackgroundSwitches.tsx @@ -20,6 +20,7 @@ import { updateShowOSM, updateShowOSMtracksections, updateTerrain3DExaggeration, + updateSmoothTravel, } from 'reducers/map'; const FormatSwitch: FC<{ @@ -47,8 +48,14 @@ const FormatSwitch: FC<{ const MapSettingsBackgroundSwitches: FC = () => { const { t } = useTranslation(['map-settings']); - const { showIGNBDORTHO, showIGNSCAN25, showIGNCadastre, showOSM, showOSMtracksections } = - useSelector(getMap); + const { + showIGNBDORTHO, + showIGNSCAN25, + showIGNCadastre, + showOSM, + showOSMtracksections, + smoothTravel, + } = useSelector(getMap); const terrain3DExaggeration = useSelector(getTerrain3DExaggeration); const dispatch = useDispatch(); @@ -111,6 +118,14 @@ const MapSettingsBackgroundSwitches: FC = () => { /> + + dispatch(updateSmoothTravel(!smoothTravel))} + state={smoothTravel} + icon="" + label="smoothTravel" + /> ); }; diff --git a/front/src/reducers/map/index.ts b/front/src/reducers/map/index.ts index a4467301201..87a776a1b41 100644 --- a/front/src/reducers/map/index.ts +++ b/front/src/reducers/map/index.ts @@ -25,6 +25,7 @@ export interface MapState { showOSM: boolean; showOSMtracksections: boolean; terrain3DExaggeration: number; + smoothTravel: boolean; viewport: Viewport; featureInfoClickID?: number; layersSettings: { @@ -59,6 +60,7 @@ export const mapInitialState: MapState = { showOSM: true, showOSMtracksections: false, terrain3DExaggeration: 0, + smoothTravel: false, viewport: { latitude: 48.32, longitude: 2.44, @@ -138,6 +140,9 @@ const mapSlice = createSlice({ ) => { state.terrain3DExaggeration = action.payload; }, + updateSmoothTravel: (state, action: PayloadAction) => { + state.smoothTravel = action.payload; + }, }, }); @@ -177,6 +182,7 @@ export const { updateShowOSM, updateShowOSMtracksections, updateTerrain3DExaggeration, + updateSmoothTravel, updateViewportAction, updateIssuesSettings, } = mapSliceActions; diff --git a/front/src/reducers/map/selectors.ts b/front/src/reducers/map/selectors.ts index 2f2ced99ba6..6c9dca4a95d 100644 --- a/front/src/reducers/map/selectors.ts +++ b/front/src/reducers/map/selectors.ts @@ -14,6 +14,7 @@ export const getShowIGNCadastre = makeMapStateSelector('showIGNCadastre'); export const getShowOSM = makeMapStateSelector('showOSM'); export const getShowOSMtracksections = makeMapStateSelector('showOSMtracksections'); export const getTerrain3DExaggeration = makeMapStateSelector('terrain3DExaggeration'); +export const getSmoothTravel = makeMapStateSelector('smoothTravel'); export const getViewport = makeMapStateSelector('viewport'); export const getLayersSettings = makeMapStateSelector('layersSettings'); export const getMapSearchMarker = makeMapStateSelector('mapSearchMarker');