Skip to content

Commit 093b206

Browse files
SW-7692 Replace nursery withdrawn species endpoint call with new t0 r… (#4768)
…equired-species
1 parent c88e4c8 commit 093b206

21 files changed

+357
-108
lines changed

src/api/types/generated-schema.ts

Lines changed: 264 additions & 15 deletions
Large diffs are not rendered by default.

src/redux/features/nurseryWithdrawals/nurseryWithdrawalsSelectors.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
import { RootState } from 'src/redux/rootReducer';
22

3-
export const selectPlantingSiteWithdrawnSpecies = (requestId: string) => (state: RootState) =>
4-
state.plantingSiteWithdrawnSpecies[requestId];
5-
63
export const selectNurseryWithdrawalsList = (requestId: string) => (state: RootState) =>
74
state.nurseryWithdrawalsList[requestId];
85

src/redux/features/nurseryWithdrawals/nurseryWithdrawalsSlice.ts

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,11 @@ import { NurseryWithdrawalsSearchResponseElement } from 'src/services/NurseryWit
55
import { FieldOptionsMap } from 'src/types/Search';
66

77
import {
8-
SpeciesPlot,
98
requestCountNurseryWithdrawals,
109
requestListNurseryWithdrawals,
1110
requestNurseryWithdrawalsFilterOptions,
12-
requestPlantingSiteWithdrawnSpecies,
1311
} from './nurseryWithdrawalsThunks';
1412

15-
const initialStatePlantingSiteWithdrawnSpecies: { [key: string]: StatusT<SpeciesPlot[]> } = {};
16-
17-
export const plantingSiteWithdrawnSpeciesSlice = createSlice({
18-
name: 'plantingSiteWithdrawnSpeciesSlice',
19-
initialState: initialStatePlantingSiteWithdrawnSpecies,
20-
reducers: {},
21-
extraReducers: (builder) => {
22-
buildReducers(requestPlantingSiteWithdrawnSpecies)(builder);
23-
},
24-
});
25-
2613
const initialStateNurseryWithdrawalsList: { [key: string]: StatusT<NurseryWithdrawalsSearchResponseElement[]> } = {};
2714

2815
export const nurseryWithdrawalsListSlice = createSlice({
@@ -57,7 +44,6 @@ export const nurseryWithdrawalsCountSlice = createSlice({
5744
});
5845

5946
const nurseryWithdrawalsReducers = {
60-
plantingSiteWithdrawnSpecies: plantingSiteWithdrawnSpeciesSlice.reducer,
6147
nurseryWithdrawalsList: nurseryWithdrawalsListSlice.reducer,
6248
nurseryWithdrawalsFilterOptions: nurseryWithdrawalsFilterOptionsSlice.reducer,
6349
nurseryWithdrawalsCount: nurseryWithdrawalsCountSlice.reducer,

src/redux/features/nurseryWithdrawals/nurseryWithdrawalsThunks.ts

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,6 @@ import { NurseryWithdrawalsCountParams, NurseryWithdrawalsSearchParams } from 's
55
import strings from 'src/strings';
66
import { FieldOptionsMap, SearchResponseElement } from 'src/types/Search';
77

8-
export type SpeciesPlot = {
9-
monitoringPlotId: number;
10-
species: {
11-
density: number;
12-
speciesId: number;
13-
}[];
14-
};
15-
16-
export const requestPlantingSiteWithdrawnSpecies = createAsyncThunk(
17-
'plantingSiteWithdrawnSpecies/get',
18-
async (plantingSiteId: number, { rejectWithValue }) => {
19-
const response = await NurseryWithdrawalService.getPlantingSiteWithdrawnSpecies(plantingSiteId);
20-
21-
if (response) {
22-
return response.data?.plots;
23-
}
24-
25-
return rejectWithValue(strings.GENERIC_ERROR);
26-
}
27-
);
28-
298
export const requestListNurseryWithdrawals = createAsyncThunk(
309
'nurseryWithdrawals/list',
3110
async (request: NurseryWithdrawalsSearchParams, { rejectWithValue }) => {

src/redux/features/tracking/trackingSelectors.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,6 @@ export const selectProjectPlantingSiteList = (requestId: string) => (state: Root
5353

5454
export const selectPlantingSiteT0AllSet = (requestId: string) => (state: RootState) =>
5555
state.plantingSiteT0AllSet[requestId];
56+
57+
export const selectPlantingSiteT0Species = (requestId: string) => (state: RootState) =>
58+
state.plantingSiteT0Species[requestId];

src/redux/features/tracking/trackingSlice.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
PlantingSiteReportedPlants,
99
PlantingSiteSearchResult,
1010
SiteT0Data,
11+
SpeciesPlot,
1112
} from 'src/types/Tracking';
1213

1314
import { MonitoringPlotsResponse, requestMonitoringPlots } from './trackingAsyncThunks';
@@ -17,6 +18,7 @@ import {
1718
requestAssignT0TempSiteData,
1819
requestGetPlantingSiteHistory,
1920
requestGetPlantingSiteT0AllSet,
21+
requestGetPlantingSiteT0Species,
2022
requestListPlantingSiteHistories,
2123
requestListPlantingSites,
2224
requestListProjectPlantingSites,
@@ -286,6 +288,17 @@ export const plantingSiteT0AllSetSlice = createSlice({
286288
},
287289
});
288290

291+
const initialPlantingSiteT0SpeciesState: { [key: string]: StatusT<SpeciesPlot[]> } = {};
292+
293+
export const plantingSiteT0SpeciesSlice = createSlice({
294+
name: 'plantingSiteT0SpeciesSlice',
295+
initialState: initialPlantingSiteT0SpeciesState,
296+
reducers: {},
297+
extraReducers: (builder) => {
298+
buildReducers(requestGetPlantingSiteT0Species, true)(builder);
299+
},
300+
});
301+
289302
const trackingReducers = {
290303
tracking: trackingSlice.reducer,
291304
plantingSitesSearchResults: plantingSitesSearchResultsSlice.reducer,
@@ -304,6 +317,7 @@ const trackingReducers = {
304317
assignT0TempSiteData: assignT0TempSiteData.reducer,
305318
projectPlantingSites: projectPlantingSiteListSlice.reducer,
306319
plantingSiteT0AllSet: plantingSiteT0AllSetSlice.reducer,
320+
plantingSiteT0Species: plantingSiteT0SpeciesSlice.reducer,
307321
};
308322

309323
export default trackingReducers;

src/redux/features/tracking/trackingThunks.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,3 +251,16 @@ export const requestGetPlantingSiteT0AllSet = createAsyncThunk(
251251
return rejectWithValue(strings.GENERIC_ERROR);
252252
}
253253
);
254+
255+
export const requestGetPlantingSiteT0Species = createAsyncThunk(
256+
't0Species',
257+
async (plantingSiteId: number, { rejectWithValue }) => {
258+
const response = await TrackingService.getT0Species(plantingSiteId);
259+
260+
if (response && response.requestSucceeded) {
261+
return response.data?.plots;
262+
}
263+
264+
return rejectWithValue(strings.GENERIC_ERROR);
265+
}
266+
);

src/scenes/PlantsDashboardRouter/components/PlantDashboardMap.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,8 @@ const PlantDashboardMap = ({
332332
plot.photos.filter(hasGpsCoordinates).map((photo) => {
333333
return {
334334
id: `photos/${photo.fileId}`,
335-
longitude: photo.gpsCoordinates.coordinates[1],
336-
latitude: photo.gpsCoordinates.coordinates[0],
335+
longitude: photo.gpsCoordinates?.coordinates[1],
336+
latitude: photo.gpsCoordinates?.coordinates[0],
337337
onClick: selectPhoto(plot.monitoringPlotId, results.observationId, photo),
338338
selected: selectedPhotos.find((selected) => selected.photo.fileId === photo.fileId) !== undefined,
339339
properties: {

src/scenes/SurvivalRateSettings/EditPermanentPlotsTab.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@ import { PageForm } from '@terraware/web-components';
66
import { APP_PATHS } from 'src/constants';
77
import { useSyncNavigate } from 'src/hooks/useSyncNavigate';
88
import { usePlantingSiteData } from 'src/providers/Tracking/PlantingSiteContext';
9-
import { SpeciesPlot } from 'src/redux/features/nurseryWithdrawals/nurseryWithdrawalsThunks';
109
import { selectAssignT0SiteData } from 'src/redux/features/tracking/trackingSelectors';
1110
import { PlotsWithObservationsSearchResult, requestAssignT0SiteData } from 'src/redux/features/tracking/trackingThunks';
1211
import { useAppDispatch, useAppSelector } from 'src/redux/store';
1312
import strings from 'src/strings';
14-
import { AssignSiteT0Data, PlotT0Data } from 'src/types/Tracking';
13+
import { AssignSiteT0Data, PlotT0Data, SpeciesPlot } from 'src/types/Tracking';
1514
import useForm from 'src/utils/useForm';
1615
import useSnackbar from 'src/utils/useSnackbar';
1716

src/scenes/SurvivalRateSettings/EditSurvivalRateSettings.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,20 @@ import { APP_PATHS } from 'src/constants';
1010
import { useSyncNavigate } from 'src/hooks/useSyncNavigate';
1111
import { useLocalization } from 'src/providers';
1212
import { usePlantingSiteData } from 'src/providers/Tracking/PlantingSiteContext';
13-
import { selectPlantingSiteWithdrawnSpecies } from 'src/redux/features/nurseryWithdrawals/nurseryWithdrawalsSelectors';
1413
import {
15-
SpeciesPlot,
16-
requestPlantingSiteWithdrawnSpecies,
17-
} from 'src/redux/features/nurseryWithdrawals/nurseryWithdrawalsThunks';
18-
import { selectPlantingSiteT0, selectPlotsWithObservations } from 'src/redux/features/tracking/trackingSelectors';
14+
selectPlantingSiteT0,
15+
selectPlantingSiteT0Species,
16+
selectPlotsWithObservations,
17+
} from 'src/redux/features/tracking/trackingSelectors';
1918
import {
2019
PlotsWithObservationsSearchResult,
20+
requestGetPlantingSiteT0Species,
2121
requestPermanentPlotsWithObservations,
2222
requestPlantingSiteT0,
2323
} from 'src/redux/features/tracking/trackingThunks';
2424
import { useAppDispatch, useAppSelector } from 'src/redux/store';
2525
import strings from 'src/strings';
26-
import { SiteT0Data } from 'src/types/Tracking';
26+
import { SiteT0Data, SpeciesPlot } from 'src/types/Tracking';
2727
import useStickyTabs from 'src/utils/useStickyTabs';
2828

2929
import ChangeTabWarningModal from './ChangeTabWarningModal';
@@ -42,7 +42,7 @@ const EditSurvivalRateSettings = ({ reloadObservations }: EditSurvivalRateSettin
4242
const [plotsRequestId, setPlotsRequestId] = useState('');
4343
const plotsWithObservationsResponse = useAppSelector(selectPlotsWithObservations(plotsRequestId));
4444
const [speciesRequestId, setSpeciesRequestId] = useState('');
45-
const withdrawnSpeciesResponse = useAppSelector(selectPlantingSiteWithdrawnSpecies(speciesRequestId));
45+
const withdrawnSpeciesResponse = useAppSelector(selectPlantingSiteT0Species(speciesRequestId));
4646
const [plotsWithObservations, setPlotsWithObservations] = useState<PlotsWithObservationsSearchResult[]>();
4747
const [withdrawnSpeciesPlots, setWithdrawnSpeciesPlots] = useState<SpeciesPlot[]>();
4848
const [showChangeTabWarning, setShowChangeTabWarning] = useState(false);
@@ -67,7 +67,7 @@ const EditSurvivalRateSettings = ({ reloadObservations }: EditSurvivalRateSettin
6767
setRequestId(request.requestId);
6868
const requestPlots = dispatch(requestPermanentPlotsWithObservations(plantingSite.id));
6969
setPlotsRequestId(requestPlots.requestId);
70-
const requestSpeciesPlots = dispatch(requestPlantingSiteWithdrawnSpecies(plantingSite.id));
70+
const requestSpeciesPlots = dispatch(requestGetPlantingSiteT0Species(plantingSite.id));
7171
setSpeciesRequestId(requestSpeciesPlots.requestId);
7272
}
7373
}, [dispatch, plantingSite, reloadObservations]);

0 commit comments

Comments
 (0)