Skip to content

Commit

Permalink
Loads of state cleanup related to recordset functions & #3028
Browse files Browse the repository at this point in the history
  • Loading branch information
micheal-w-wells committed Jan 3, 2024
1 parent 9a7789f commit 7ea19bc
Show file tree
Hide file tree
Showing 9 changed files with 118 additions and 335 deletions.
1 change: 1 addition & 0 deletions appv2/src/UI/Map/ActivitiesLayerV2.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { GeoJSONVtLayer } from './GeoJsonVtLayer';
import { useSelector } from 'react-redux';
import { getPallette } from './AdditionalHelperFunctions';
import { shallowEqual } from 'react-redux';
import { c } from 'vitest/dist/reporters-5f784f42';

enum ZoomTypes {
LOW = 'low',
Expand Down
2 changes: 0 additions & 2 deletions appv2/src/UI/Map/Buttons/WhatsHereButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,10 @@ export const WhatsHereDrawComponent = (props) => {
};
}, [whatsHere]);

const panelState = useSelector((state) => state.AppMode.panelOpen);
useMapEvent('draw:created' as any, (e) => {
if ((whatsHere as any).toggle && (whatsHere as any)?.feature === null) {
history.push('/WhatsHere');
dispatch({ type: MAP_WHATS_HERE_FEATURE, payload: { feature: e.layer.toGeoJSON() } });
if (!panelState) dispatch({ type: TOGGLE_PANEL });
}
});

Expand Down
26 changes: 13 additions & 13 deletions appv2/src/UI/Overlay/Records/Records.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React from 'react';
import React, { useMemo } from 'react';

import Close from '@mui/icons-material/Close';
import ColorLensIcon from '@mui/icons-material/ColorLens';
Expand All @@ -11,9 +11,10 @@ import { Button, Typography } from '@mui/material';
import { useDispatch, useSelector } from 'react-redux';
import { Route, useHistory } from 'react-router';
import {
USER_SETTINGS_ADD_RECORD_SET,
USER_SETTINGS_ADD_RECORD_SET_REQUEST,
USER_SETTINGS_REMOVE_RECORD_SET_REQUEST,
USER_SETTINGS_SET_RECORD_SET_REQUEST
USER_SETTINGS_REMOVE_RECORD_SET,
USER_SETTINGS_SET_RECORDSET,
} from 'state/actions';
import { Activity } from './Record';
import './Records.css';
Expand Down Expand Up @@ -44,10 +45,9 @@ export const Records = (props) => {
console.dir(e);
e.stopPropagation();
dispatch({
type: USER_SETTINGS_SET_RECORD_SET_REQUEST,
type: USER_SETTINGS_SET_RECORDSET,
payload: {
updatedSet: {
...JSON.parse(JSON.stringify(recordSets?.[set])),
labelToggle: !recordSets?.[set]?.labelToggle
},
setName: set
Expand All @@ -59,10 +59,9 @@ export const Records = (props) => {
console.log('clicked');
e.stopPropagation();
dispatch({
type: USER_SETTINGS_SET_RECORD_SET_REQUEST,
type: USER_SETTINGS_SET_RECORDSET,
payload: {
updatedSet: {
...JSON.parse(JSON.stringify(recordSets?.[set])),
mapToggle: !recordSets?.[set]?.mapToggle
},
setName: set
Expand All @@ -76,10 +75,9 @@ export const Records = (props) => {
const nextIndex = (currentIndex + 1) % colours.length;

dispatch({
type: USER_SETTINGS_SET_RECORD_SET_REQUEST,
type: USER_SETTINGS_SET_RECORDSET,
payload: {
updatedSet: {
...JSON.parse(JSON.stringify(recordSets?.[set])),
color: colours[nextIndex]
},
setName: set
Expand All @@ -96,14 +94,16 @@ export const Records = (props) => {
)
) {
dispatch({
type: USER_SETTINGS_REMOVE_RECORD_SET_REQUEST,
type: USER_SETTINGS_REMOVE_RECORD_SET,
payload: {
recordSetName: set
setID: set
}
});
}
};



const [highlightedSet, setHighlightedSet] = React.useState(null);

return (
Expand Down Expand Up @@ -184,8 +184,8 @@ export const Records = (props) => {
</div>
);
})}
<Button onClick={() => dispatch({type: USER_SETTINGS_ADD_RECORD_SET_REQUEST, payload: {recordSetType: 'Activity'}})} className={'addRecordSet'}>Add Layer of Records</Button>
<Button onClick={() => dispatch({type: USER_SETTINGS_ADD_RECORD_SET_REQUEST, payload: {recordSetType: 'POI'}})} className={'addRecordSet'}>Add IAPP Layer of Records</Button>
<Button onClick={() => dispatch({type: USER_SETTINGS_ADD_RECORD_SET, payload: {recordSetType: 'Activity'}})} className={'addRecordSet'}>Add Layer of Records</Button>
<Button onClick={() => dispatch({type: USER_SETTINGS_ADD_RECORD_SET, payload: {recordSetType: 'POI'}})} className={'addRecordSet'}>Add IAPP Layer of Records</Button>
</>
) : (
<></>
Expand Down
19 changes: 10 additions & 9 deletions appv2/src/state/actions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -176,10 +176,15 @@ export const INIT_SERVER_BOUNDARIES_GET = 'INIT_SERVER_BOUNDARIES_GET';
export const USER_SETTINGS_ADD_RECORD_SET_REQUEST = 'USER_SETTINGS_ADD_RECORD_SET_REQUEST';
export const USER_SETTINGS_ADD_RECORD_SET_SUCCESS = 'USER_SETTINGS_ADD_RECORD_SET_SUCCESS';
export const USER_SETTINGS_ADD_RECORD_SET_FAILURE = 'USER_SETTINGS_ADD_RECORD_SET_FAILURE';
export const USER_SETTINGS_REMOVE_RECORD_SET_REQUEST = 'USER_SETTINGS_REMOVE_RECORD_SET_REQUEST';
export const USER_SETTINGS_REMOVE_RECORD_SET_SUCCESS = 'USER_SETTINGS_REMOVE_RECORD_SET_SUCCESS';
export const USER_SETTINGS_REMOVE_RECORD_SET_FAILURE = 'USER_SETTINGS_REMOVE_RECORD_SET_FAILURE';

// wip simplification:
export const USER_SETTINGS_SET_RECORDSET = 'USER_SETTINGS_SET_RECORDSET'
export const USER_SETTINGS_ADD_RECORD_SET = 'USER_SETTINGS_ADD_RECORD_SET'
export const USER_SETTINGS_REMOVE_RECORD_SET = 'USER_SETTINGS_REMOVE_RECORD_SET';

export const USER_SETTINGS_SET_SELECTED_RECORD_REQUEST = 'USER_SETTINGS_SET_SELECTED_RECORD_REQUEST';
export const USER_SETTINGS_SET_SELECTED_RECORD_SUCCESS = 'USER_SETTINGS_SET_SELECTED_RECORD_SUCCESS';
export const USER_SETTINGS_SET_SELECTED_RECORD_FAILURE = 'USER_SETTINGS_SET_SELECTED_RECORD_FAILURE';
export const USER_SETTINGS_SET_BOUNDARIES_REQUEST = 'USER_SETTINGS_SET_BOUNDARIES_REQUEST';
export const USER_SETTINGS_SET_BOUNDARIES_SUCCESS = 'USER_SETTINGS_SET_BOUNDARIES_SUCCESS';
export const USER_SETTINGS_SET_BOUNDARIES_FAILURE = 'USER_SETTINGS_SET_BOUNDARIES_FAILURE';
Expand All @@ -195,19 +200,15 @@ export const USER_SETTINGS_ADD_BOUNDARY_TO_SET_FAILURE = 'USER_SETTINGS_ADD_BOUN
export const USER_SETTINGS_REMOVE_BOUNDARY_FROM_SET_REQUEST = 'USER_SETTINGS_REMOVE_BOUNDARY_FROM_SET_REQUEST';
export const USER_SETTINGS_REMOVE_BOUNDARY_FROM_SET_SUCCESS = 'USER_SETTINGS_REMOVE_BOUNDARY_FROM_SET_SUCCESS';
export const USER_SETTINGS_REMOVE_BOUNDARY_FROM_SET_FAILURE = 'USER_SETTINGS_REMOVE_BOUNDARY_FROM_SET_FAILURE';
export const USER_SETTINGS_SET_RECORD_SET_REQUEST = 'USER_SETTINGS_SET_RECORD_SET_REQUEST';
export const USER_SETTINGS_SET_RECORD_SET_SUCCESS = 'USER_SETTINGS_SET_RECORD_SET_SUCCESS';
export const USER_SETTINGS_SET_RECORD_SET_FAILURE = 'USER_SETTINGS_SET_RECORD_SET_FAILURE';

export const USER_SETTINGS_TOGGLE_RECORDS_EXPANDED_REQUEST = 'USER_SETTINGS_TOGGLE_RECORDS_EXPANDED_REQUEST';
export const USER_SETTINGS_TOGGLE_RECORDS_EXPANDED_SUCCESS = 'USER_SETTINGS_TOGGLE_RECORDS_EXPANDED_SUCCESS';
export const USER_SETTINGS_TOGGLE_RECORDS_EXPANDED_FAILURE = 'USER_SETTINGS_TOGGLE_RECORDS_EXPANDED_FAILURE';
export const USER_SETTINGS_SET_DARK_THEME = 'USER_SETTINGS_SET_DARK_THEME';
export const USER_SETTINGS_SET_MAP_CENTER_REQUEST = 'USER_SETTINGS_SET_MAP_CENTER_REQUEST';
export const USER_SETTINGS_SET_MAP_CENTER_SUCCESS = 'USER_SETTINGS_SET_MAP_CENTER_SUCCESS';
export const USER_SETTINGS_SET_MAP_CENTER_FAILURE = 'USER_SETTINGS_SET_MAP_CENTER_FAILURE';
export const USER_SETTINGS_CLEAR_RECORD_SET_FILTERS_REQUEST = 'USER_SETTINGS_CLEAR_RECORD_SET_FILTERS_REQUEST';
export const USER_SETTINGS_CLEAR_RECORD_SET_FILTERS_SUCCESS = 'USER_SETTINGS_CLEAR_RECORD_SET_FILTERS_SUCCESS';
export const USER_SETTINGS_CLEAR_RECORD_SET_FILTERS_FAILURE = 'USER_SETTINGS_CLEAR_RECORD_SET_FILTERS_FAILURE';

export const USER_SETTINGS_SET_API_ERROR_DIALOG = 'USER_SETTINGS_SET_API_ERROR_DIALOG';

// Tabs
Expand Down
24 changes: 14 additions & 10 deletions appv2/src/state/reducers/map.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import {
CSV_LINK_CLICKED,
CUSTOM_LAYER_DRAWN,
DRAW_CUSTOM_LAYER,
FILTER_STATE_UPDATE,
IAPP_EXTENT_FILTER_SUCCESS,
IAPP_GEOJSON_GET_SUCCESS,
IAPP_GET_IDS_FOR_RECORDSET_SUCCESS,
Expand Down Expand Up @@ -55,7 +54,8 @@ import {
WHATS_HERE_IAPP_ROWS_SUCCESS,
WHATS_HERE_PAGE_ACTIVITY,
WHATS_HERE_PAGE_POI,
WHATS_HERE_SORT_FILTER_UPDATE
WHATS_HERE_SORT_FILTER_UPDATE,
USER_SETTINGS_REMOVE_RECORD_SET,
} from '../actions';

import { createNextState } from '@reduxjs/toolkit';
Expand Down Expand Up @@ -296,14 +296,6 @@ function createMapReducer(configuration: AppConfig): (MapState, AnyAction) => Ma
draftState.workingLayerName = action.payload.name;
break;
}
case FILTER_STATE_UPDATE: {
for (const x in action.payload) {
const index = draftState.layers.findIndex((layer: any) => layer.recordSetID === x);
draftState.layers[index].filters = { ...action.payload?.[x]?.filters };
draftState.layers[index].loaded = false;
}
break;
}
case IAPP_EXTENT_FILTER_SUCCESS: {
draftState.IAPPBoundsPolygon = action.payload.bounds;
break;
Expand Down Expand Up @@ -439,6 +431,9 @@ function createMapReducer(configuration: AppConfig): (MapState, AnyAction) => Ma
}
case MAP_TOGGLE_WHATS_HERE: {
if(draftState.whatsHere.toggle) {
if(!draftState.panelOpen){
draftState.panelOpen = true;
}
draftState.whatsHere.loadingActivities = false
draftState.whatsHere.loadingIAPP = false
}
Expand Down Expand Up @@ -561,6 +556,15 @@ function createMapReducer(configuration: AppConfig): (MapState, AnyAction) => Ma
}
case URL_CHANGE: {
draftState.userRecordOnClickMenuOpen = false;
if(action.payload?.pathname === '/')
{
draftState.panelOpen = false;
}
break;
}
case USER_SETTINGS_REMOVE_RECORD_SET: {
const index = draftState.layers.findIndex((layer) => layer.recordSetID === action.payload.recordSetID);
draftState.layers.splice(index, 1);
break;
}
case USER_CLICKED_RECORD: {
Expand Down
45 changes: 22 additions & 23 deletions appv2/src/state/reducers/userSettings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,28 +18,25 @@ import {
RECORDSET_REMOVE_FILTER,
RECORDSET_UPDATE_FILTER,
USER_SETTINGS_ADD_BOUNDARY_TO_SET_SUCCESS,
USER_SETTINGS_ADD_RECORD_SET_SUCCESS,
USER_SETTINGS_CLEAR_RECORD_SET_FILTERS_SUCCESS,
USER_SETTINGS_ADD_RECORD_SET,
USER_SETTINGS_DELETE_BOUNDARY_SUCCESS,
USER_SETTINGS_DELETE_KML_SUCCESS,
USER_SETTINGS_GET_INITIAL_STATE_SUCCESS,
USER_SETTINGS_REMOVE_BOUNDARY_FROM_SET_SUCCESS,
USER_SETTINGS_REMOVE_RECORD_SET_SUCCESS,
USER_SETTINGS_REMOVE_RECORD_SET,
USER_SETTINGS_SET_ACTIVE_ACTIVITY_SUCCESS,
USER_SETTINGS_SET_ACTIVE_IAPP_SUCCESS,
USER_SETTINGS_SET_API_ERROR_DIALOG,
USER_SETTINGS_SET_BOUNDARIES_SUCCESS,
USER_SETTINGS_SET_DARK_THEME,
USER_SETTINGS_SET_MAP_CENTER_SUCCESS,
USER_SETTINGS_SET_NEW_RECORD_DIALOG_STATE_SUCCESS,
USER_SETTINGS_SET_RECORD_SET_SUCCESS,
USER_SETTINGS_SET_SELECTED_RECORD_REQUEST,
USER_SETTINGS_SET_RECORDSET,
USER_SETTINGS_TOGGLE_RECORDS_EXPANDED_SUCCESS
} from '../actions';

import { AppConfig } from '../config';
import { createNextState } from '@reduxjs/toolkit';
import { immerable } from 'immer';
import { AppConfig } from '../config';

/*const options: UuidOptions = {
length: 50,
Expand Down Expand Up @@ -69,8 +66,6 @@ class UserSettingsState {
recordSets: [
{
tableFilters?: any;
advancedFilters: [];
gridFilters: [];
color: string;
drawOrder: number;
expanded: boolean;
Expand Down Expand Up @@ -280,16 +275,22 @@ function createUserSettingsReducer(configuration: AppConfig): (UserSettingsState
draftState.newRecordDialogState = action.payload;
break;
}
case USER_SETTINGS_ADD_RECORD_SET_SUCCESS: {
draftState.recordSets = { ...action.payload.recordSets };
break;
}
case USER_SETTINGS_REMOVE_RECORD_SET_SUCCESS: {
draftState.recordSets = { ...action.payload.recordSets };
case USER_SETTINGS_ADD_RECORD_SET: {
const newID = JSON.stringify(
Number(Object.keys(draftState.recordSets)[Object.keys(draftState.recordSets).length - 1]) + 1
);
draftState.recordSets[newID] = {
tableFilters: [],
color: 'blue',
drawOrder: 0,
mapToggle: false,
recordSetName: 'New Recordset - ' + 'type',
recordSetType: action.payload.type
};
break;
}
case USER_SETTINGS_SET_SELECTED_RECORD_REQUEST: {
draftState.selectedRecord = action.payload.selectedRecord;
case USER_SETTINGS_REMOVE_RECORD_SET: {
delete draftState.recordSets[action.payload.setID];
break;
}
case USER_SETTINGS_ADD_BOUNDARY_TO_SET_SUCCESS: {
Expand All @@ -316,8 +317,10 @@ function createUserSettingsReducer(configuration: AppConfig): (UserSettingsState
);
break;
}
case USER_SETTINGS_SET_RECORD_SET_SUCCESS: {
draftState.recordSets = { ...action.payload.recordSets };
case USER_SETTINGS_SET_RECORDSET: {
Object.keys(action.payload.updatedSet).forEach((key) => {
draftState.recordSets[action.payload.setName][key] = action.payload.updatedSet[key];
});
break;
}
case USER_SETTINGS_TOGGLE_RECORDS_EXPANDED_SUCCESS: {
Expand All @@ -332,10 +335,6 @@ function createUserSettingsReducer(configuration: AppConfig): (UserSettingsState
draftState.mapCenter = action.payload.center;
break;
}
case USER_SETTINGS_CLEAR_RECORD_SET_FILTERS_SUCCESS: {
draftState.recordSets = { ...action.payload.recordSets };
break;
}
case USER_SETTINGS_SET_API_ERROR_DIALOG: {
draftState.APIErrorDialog = action.payload.APIErrorDialog;
break;
Expand Down
2 changes: 1 addition & 1 deletion appv2/src/state/sagas/activity/dataAccess.ts
Original file line number Diff line number Diff line change
Expand Up @@ -499,7 +499,7 @@ export function* handle_ACTIVITY_GET_SUGGESTED_TREATMENT_IDS_REQUEST(action) {
export function* handle_PAN_AND_ZOOM_TO_ACTIVITY(action) {
const activityState = yield select(selectActivity);

const geometry = activityState.activity.geometry?.[0];
const geometry = activityState?.activity?.geometry?.[0];
if (geometry) {
const isPoint = geometry.geometry?.type === 'Point' ? true : false;
let target;
Expand Down
Loading

0 comments on commit 7ea19bc

Please sign in to comment.