@@ -116,6 +117,4 @@ const BottomBar = ({
);
};
-const mapStateToProps = (state) => state;
-const mapDispatchToProps = (dispatch) => ({ dispatch });
-export default connect(mapStateToProps, mapDispatchToProps)(BottomBar);
+export default BottomBar;
diff --git a/src/components/Map.js b/src/components/Map.js
index 56e8b1b..657f4ea 100644
--- a/src/components/Map.js
+++ b/src/components/Map.js
@@ -11,11 +11,19 @@ import hexLayer from './layers/hex';
import arcLayer from './layers/arcs';
import pathLayer from './layers/paths';
import tripLayer from './layers/trips';
-import filterState from '../util/filter';
-import { connect } from 'react-redux';
+import filter from '../util/filter';
+import { useSelector } from 'react-redux';
import interpolate from '../util/interpolate';
-const Map = ({ activeView, activeLayer, data, zoom, providers }) => {
+const Map = () => {
+ const activeView = useSelector(({activeView})=>activeView);
+ const activeLayer = useSelector(({activeLayer})=>activeLayer);
+ const zoom = useSelector(({zoom})=>zoom);
+ const providers = useSelector(({providers})=>providers);
+ const minDate = useSelector(({minDate})=>minDate);
+ const maxDate = useSelector(({maxDate})=>maxDate);
+ const allData = useSelector(({data})=>data);
+ const data = filter(allData, { providers, minDate, maxDate })
const [time, setTime] = useState(0);
const [viewStates, setViewStates] = useState(initialViewStates);
useEffect(() => {
@@ -100,6 +108,4 @@ const Map = ({ activeView, activeLayer, data, zoom, providers }) => {
);
};
-const mapStateToProps = (state) => filterState(state);
-const mapDispatchToProps = (dispatch) => ({ dispatch });
-export default connect(mapStateToProps, mapDispatchToProps)(Map);
+export default Map;
diff --git a/src/components/Sidebar.js b/src/components/Sidebar.js
index 8edcefa..77f7aa0 100644
--- a/src/components/Sidebar.js
+++ b/src/components/Sidebar.js
@@ -2,8 +2,8 @@ import React from 'react';
import './Sidebar.css';
import Selector from './Selector';
import ProviderList from './ProviderList';
-import { connect } from 'react-redux';
-import filterState from '../util/filter';
+import { useSelector, useDispatch } from 'react-redux';
+import filter from '../util/filter';
const Section = ({ children }) => {
return (
@@ -18,14 +18,16 @@ const Section = ({ children }) => {
);
};
-const Sidebar = ({
- data,
- dispatch,
- activeMetric,
- providers,
- activeLayer,
- activeView,
-}) => {
+const Sidebar = () => {
+ const dispatch = useDispatch();
+ const activeView = useSelector(({activeView})=>activeView);
+ const activeMetric = useSelector(({activeMetric})=>activeMetric);
+ const activeLayer = useSelector(({activeLayer})=>activeLayer);
+ const providers = useSelector(({providers})=>providers);
+ const minDate = useSelector(({minDate})=>minDate);
+ const maxDate = useSelector(({maxDate})=>maxDate);
+ const allData = useSelector(({data})=>data);
+ const data = filter(allData, { providers, minDate, maxDate })
return (
Dylan's Mobility Service Map
@@ -104,6 +106,4 @@ const Sidebar = ({
);
};
-const mapStateToProps = (state) => filterState(state);
-const mapDispatchToProps = (dispatch) => ({ dispatch });
-export default connect(mapStateToProps, mapDispatchToProps)(Sidebar);
+export default Sidebar;
diff --git a/src/util/filter.js b/src/util/filter.js
index 3288bb7..f66c0ab 100644
--- a/src/util/filter.js
+++ b/src/util/filter.js
@@ -1,4 +1,5 @@
-function filter(data, { providers, minDate, maxDate }) {
+function filterData(data, opts) {
+ const { providers, minDate, maxDate } = opts;
const output = [];
for (let i = 0; i < providers.length; i++) {
if (providers[i].active) {
@@ -12,12 +13,4 @@ function filter(data, { providers, minDate, maxDate }) {
.filter((x) => new Date(x.properties.startDate) <= maxDate);
}
-function filterState(state) {
- const { providers, minDate, maxDate, data } = state;
- return {
- ...state,
- data: filter(data, { providers, minDate, maxDate }),
- };
-}
-
-export default filterState;
+export default filterData;