Skip to content

Commit

Permalink
Fix selector
Browse files Browse the repository at this point in the history
  • Loading branch information
louptheron committed Oct 8, 2024
1 parent 342be90 commit e6fb071
Show file tree
Hide file tree
Showing 14 changed files with 17 additions and 21 deletions.
2 changes: 1 addition & 1 deletion frontend/src/domain/use_cases/vessel/showVessel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export const showVessel =
try {
const { fishingActivities, map, vessel } = getState()
const { selectedVesselTrackRequest } = vessel
const vessels = vesselSelectors.selectAll(getState())
const vessels = vesselSelectors.selectAll(getState().vessel.vessels)
const { defaultVesselTrackDepth } = map
const { areFishingActivitiesShowedOnMap } = fishingActivities
// TODO How to handle both the control unit dialog and the vessel sidebar ?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ export function VesselListModal({ namespace, onClose }) {
const dispatch = useMainAppDispatch()
const { drawedGeometry } = useListenForDrawedGeometry(InteractionListener.VESSELS_LIST)
const { uniqueVesselsDistricts: districts, uniqueVesselsSpecies: species } = useMainAppSelector(state => state.vessel)
const vessels = useMainAppSelector(vesselSelectors.selectAll)
const vessels = useMainAppSelector(state => vesselSelectors.selectAll(state.vessel.vessels))
const getFleetSegmentsQuery = useGetFleetSegmentsQuery()
const gears = useMainAppSelector(state => state.gear.gears)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ const VesselAlertAndBeaconMalfunctionLayer = () => {
selectedVesselIdentity,
vesselsTracksShowed
} = useSelector(state => state.vessel)
const vessels = useSelector(vesselSelectors.selectAll)
const vessels = useSelector(state => vesselSelectors.selectAll(state.vessel.vessels))

const {
nonFilteredVesselsAreHidden
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/features/Vessel/layers/VesselAlertLayer.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ const VesselAlertLayer = () => {
selectedVesselIdentity,
vesselsTracksShowed
} = useSelector(state => state.vessel)
const vessels = useSelector(vesselSelectors.selectAll)
const vessels = useSelector(state => vesselSelectors.selectAll(state.vessel.vessels))

const {
nonFilteredVesselsAreHidden
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ const VesselBeaconMalfunctionLayer = () => {
vesselsTracksShowed,
selectedVesselIdentity
} = useSelector(state => state.vessel)
const vessels = useSelector(vesselSelectors.selectAll)
const vessels = useSelector(state => vesselSelectors.selectAll(state.vessel.vessels))

const {
nonFilteredVesselsAreHidden
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const VesselEstimatedPositionLayer = () => {
vesselsTracksShowed,
selectedVesselIdentity
} = useSelector(state => state.vessel)
const vessels = useSelector(vesselSelectors.selectAll)
const vessels = useSelector(state => vesselSelectors.selectAll(state.vessel.vessels))

const {
nonFilteredVesselsAreHidden
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ const VesselInfractionSuspicionLayer = () => {
selectedVesselIdentity,
vesselsTracksShowed
} = useSelector(state => state.vessel)
const vessels = useSelector(vesselSelectors.selectAll)
const vessels = useSelector(state => vesselSelectors.selectAll(state.vessel.vessels))

const {
nonFilteredVesselsAreHidden
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/features/Vessel/layers/VesselsLabelsLayer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ export function VesselsLabelsLayer({ mapMovingAndZoomEvent }) {

const hideNonSelectedVessels = useMainAppSelector(state => state.vessel.hideNonSelectedVessels)
const selectedVessel = useMainAppSelector(state => state.vessel.selectedVessel)
const vessels = useMainAppSelector(vesselSelectors.selectAll)
const vessels = useMainAppSelector(state => vesselSelectors.selectAll(state.vessel.vessels))

const vesselsTracksShowed = useMainAppSelector(state => state.vessel.vesselsTracksShowed)
const areVesselsDisplayed = useMainAppSelector(state => state.displayedComponent.areVesselsDisplayed)
Expand Down
12 changes: 4 additions & 8 deletions frontend/src/features/Vessel/slice.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,6 @@ export const vesselsAdapter = createEntityAdapter({
sortComparer: false
})

export const vesselSelectors = vesselsAdapter.getSelectors(
// @ts-ignore
state => state.vessel?.vessels ?? vesselsAdapter.getInitialState()
)

// TODO Properly type this redux state.
export type VesselState = {
fishingActivitiesShowedOnMap: FishingActivityShowedOnMap[]
Expand Down Expand Up @@ -392,7 +387,7 @@ const vesselSlice = createSlice({

setAllVesselsAsUnfiltered(state) {
const vessels = vesselSelectors.selectAll(state.vessels)
const vesselIds = vesselSelectors.selectIds(state.vessels)
const vesselIds = state.vessels.ids

// Check if any vessel has `isFiltered` set to true
if (!vessels.some(vessel => vessel.isFiltered)) {
Expand All @@ -413,7 +408,7 @@ const vesselSlice = createSlice({

setFilteredVesselsFeatures(state, action: PayloadAction<VesselFeatureId>) {
const filteredVesselsFeaturesUids = action.payload
const vesselIds = vesselSelectors.selectIds(state.vessels)
const vesselIds = state.vessels.ids

// Update only the vessels that match the filtered IDs
vesselsAdapter.updateMany(
Expand Down Expand Up @@ -450,7 +445,7 @@ const vesselSlice = createSlice({
*/
setPreviewFilteredVesselsFeatures(state, action) {
const previewFilteredVesselsFeaturesUids = action.payload
const vesselIds = vesselSelectors.selectIds(state.vessels)
const vesselIds = state.vessels.ids

// Update only the vessels that match the filtered IDs
vesselsAdapter.updateMany(
Expand Down Expand Up @@ -673,3 +668,4 @@ export const {
} = vesselSlice.actions

export const vesselSliceReducer = vesselSlice.reducer
export const vesselSelectors = vesselsAdapter.getSelectors()
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import type { MainAppThunk } from '@store'

export const applyFilterToVessels = (): MainAppThunk => async (dispatch, getState) => {
const showedFilter = getState().filter?.filters?.find(filter => filter.showed)
const vessels = vesselSelectors.selectAll(getState())
const vessels = vesselSelectors.selectAll(getState().vessel.vessels)
if (!showedFilter) {
dispatch(setAllVesselsAsUnfiltered())

Expand Down
2 changes: 1 addition & 1 deletion frontend/src/features/Vessel/useCases/renderVessels.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { buildFeature } from '@features/Vessel/utils'
import type { MainAppThunk } from '@store'

export const renderVessels = (): MainAppThunk => async (_, getState) => {
const vessels = vesselSelectors.selectAll(getState())
const vessels = vesselSelectors.selectAll(getState().vessel.vessels)
const features = vessels.map(vessel => buildFeature(vessel))

VESSELS_VECTOR_SOURCE.clear(true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export const showVesselsLastPosition =
})
}

const filteredVessels = vesselSelectors.selectAll(getState())
const filteredVessels = vesselSelectors.selectAll(getState().vessel.vessels)
const features = filteredVessels.map(vessel => buildFeature(vessel))

VESSELS_VECTOR_SOURCE.clear(true)
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/features/VesselSearch/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ export function VesselSearch({
const dispatch = useMainAppDispatch()
const baseUrl = window.location.origin
const selectedVesselIdentity = useMainAppSelector(state => state.vessel.selectedVesselIdentity)
const vessels = useMainAppSelector(vesselSelectors.selectAll)
const vessels = useMainAppSelector(state => vesselSelectors.selectAll(state.vessel.vessels))
const searchQueryRef = useRef('')
const wrapperRef = useRef(null)

Expand Down
2 changes: 1 addition & 1 deletion frontend/src/features/map/MapMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { vesselSelectors } from '../Vessel/slice'
import type { VesselEnhancedLastPositionWebGLObject } from '../../domain/entities/vessel/types'

export function MapMenu() {
const vessels = useMainAppSelector(vesselSelectors.selectAll)
const vessels = useMainAppSelector(state => vesselSelectors.selectAll(state.vessel.vessels))
const [coordinates, setCoordinates] = useState<number[]>([])
const vessel = useRef<VesselEnhancedLastPositionWebGLObject | undefined>()

Expand Down

0 comments on commit e6fb071

Please sign in to comment.