Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 26f9c9ff

Přidáno uživatelem Václav Honzík před asi 2 roky(ů)

toggles for specific map points

re #9741

Zobrazit rozdíly:

frontend/src/features/TrackingTool/trackingToolSlice.ts
3 3
import mapConfig from "../../config/mapConfig"
4 4
import { PathDto } from "../../swagger/data-contracts"
5 5
import buildPathVariants from "./Map/pathUtils"
6
import  { isMapPointDisplayable, MapPoint, PathVariant } from "./trackingToolUtils"
6
import { isMapPointDisplayable, MapPoint, PathVariant } from "./trackingToolUtils"
7 7
import { sendTextForProcessing } from "./trackingToolThunks"
8 8
import storage from "redux-persist/lib/storage"
9 9
import TrackingToolState from './trackingToolState'
......
61 61
            ...state,
62 62
            currentPage: action.payload,
63 63
        }),
64
        updatePrimaryPath: (state: TrackingToolState, action: { payload: PathVariant }) => {
65
            const { primaryPathIdx } = state
66
            const path = action.payload
67
            const paths = [...state.pathVariants ?? []]
68

  
69
            if (paths.length <= primaryPathIdx) {
70
                return { ...state }
71
            }
72

  
73
            return {
74
                ...state,
75
                pathVariants: [
76
                    ...paths.slice(0, primaryPathIdx),
77
                    path,
78
                    ...paths.slice(primaryPathIdx + 1),
79
                ],
80
            }
81
        },
64 82
        // Updates map marker while ignoring its idx property
65 83
        updateMapMarkerWithId: (state: TrackingToolState, action: { payload: { id: string, item: MapPoint } }) => {
66 84
            const { item } = action.payload
67
            const idx = state.primaryPathIdx
68
            if (!state.pathVariants || state.pathVariants.length <= idx) {
85
            const { primaryPathIdx } = state
86
            if (!state.pathVariants || state.pathVariants.length <= primaryPathIdx) {
69 87
                return state
70 88
            }
71 89

  
72
            const mapMarkerIdx = state.pathVariants[idx].findIndex((item) => item.id === action.payload.id)
90
            const mapMarkerIdx = state.pathVariants[primaryPathIdx].findIndex((item) => item.id === action.payload.id)
73 91
            if (mapMarkerIdx === -1) {
74 92
                return state
75 93
            }
76 94

  
77
            const newPathVariant = [...state.pathVariants[idx]]
95
            const newPathVariant = [...state.pathVariants[primaryPathIdx]]
78 96
            newPathVariant[mapMarkerIdx] = item
79 97
            return {
80 98
                ...state,
81
                pathVariants: [...state.pathVariants.slice(0, idx), newPathVariant, ...state.pathVariants.slice(idx + 1)],
99
                pathVariants: [...state.pathVariants.slice(0, primaryPathIdx), newPathVariant, ...state.pathVariants.slice(primaryPathIdx + 1)],
82 100
            }
83 101
        },
84 102
        // Updates map marker based on its idx property
85 103
        updateMapMarker: (state: TrackingToolState, action: { payload: MapPoint }) => {
86 104
            const item = action.payload
87
            const idx = state.primaryPathIdx
88
            if (!state.pathVariants || state.pathVariants.length <= idx) {
105
            const { primaryPathIdx } = state
106
            if (!state.pathVariants || state.pathVariants.length <= primaryPathIdx) {
89 107
                return state
90 108
            }
91 109

  
92 110
            return {
93 111
                ...state,
94 112
                pathVariants: state.pathVariants.map((pathVariant, i) => {
95
                    if (i !== idx) {
113
                    if (i !== primaryPathIdx) {
96 114
                        return [...pathVariant]
97 115
                    }
98 116

  
......
256 274
    moveMarkerToDestination,
257 275
    updateMapMarkerWithId,
258 276
    removeMapMarker,
277
    updatePrimaryPath
259 278
} = trackingToolSlice.actions
260 279
const trackingToolReducer = trackingToolSlice.reducer
261 280
export default trackingToolReducer

Také k dispozici: Unified diff