diff --git a/frontend/src/Call/GroupModal.js b/frontend/src/Call/GroupModal.js
index 95e6eee..59ebcbe 100644
--- a/frontend/src/Call/GroupModal.js
+++ b/frontend/src/Call/GroupModal.js
@@ -10,7 +10,6 @@ import {
Dropdown
} from "semantic-ui-react";
import "./FilterModal.css";
-import * as types from "./call-constants";
function GroupModal (props) {
const shortName = useSelector((state) => state.callPlayer.shortName);
diff --git a/frontend/src/Call/call-actions.js b/frontend/src/Call/call-actions.js
deleted file mode 100644
index ac225d8..0000000
--- a/frontend/src/Call/call-actions.js
+++ /dev/null
@@ -1,358 +0,0 @@
-import axios from "axios";
-
-import * as types from "./call-constants";
-import { push } from 'connected-react-router';
-
-function beginFetchCallInfo() {
- return { type: types.FETCH_CALL_INFO };
-}
-
-function fetchCallInfoSuccess(data) {
- return { type: types.FETCH_SUCCESS_CALL_INFO,
- data };
-}
-
-function fetchCallInfoError(data) {
- return { type: types.FETCH_ERROR_CALL_INFO,
- data };
-}
-
-function prependCall() {
- return { type: types.PREPEND_CALL };
-}
-
-function beginAddStar() {
- return { type: types.ADD_STAR };
-}
-
-function addStarSuccess(data) {
- return { type: types.ADD_STAR_SUCCESS, data };
-}
-
-function addStarError(data) {
- return { type: types.ADD_STAR_ERROR, data };
-}
-
-function beginFetchCall() {
- return { type: types.FETCH_CALL };
-}
-
-function fetchCallSuccess(data) {
- return { type: types.FETCH_SUCCESS_CALL,
- data };
-}
-
-
-
-function fetchOlderCallSuccess(data) {
- return { type: types.FETCH_SUCCESS_OLDER_CALL,
- data };
-}
-
-function fetchNewerCallSuccess(data) {
- return { type: types.FETCH_SUCCESS_NEWER_CALL,
- data };
-}
-
-function fetchCallError(data) {
- return { type: types.FETCH_ERROR_CALL,
- data };
-}
-
-// The data field should be a JS date object
-export function setCallTime(data) {
- return {type: types.SET_CALL_TIME, data};
-}
-
-export function changeUrl(url) {
- return dispatch => {
- dispatch(push(url));
- };
-}
-
-// Example of an Async Action Creator
-// http://redux.js.org/docs/advanced/AsyncActions.html
-
-function shouldFetchCalls(state, subreddit) {
- return true;
- if ((!state.call.items) || (state.call.items.length <1)) {
- return true
- } else if (state.call.isWaiting) {
- return false
- } else {
- return false
- }
-}
-
-
-
-
-function buildUrlParams(a) {
- return Object.keys(a).map(function(k) {
- return encodeURIComponent(k) + '=' + encodeURIComponent(a[k])
- }).join('&')
-}
-
-function buildCallUrl(state, date, direction) {
- var params = {};
- var url = "";
-
-
- if ((typeof direction === 'string') && (typeof date === 'number')) {
- url = url + '/' + direction;
- params["time"] = date;
- } else {
- if (state.call.filterDate){
- url = url + '/older'
- params["time"] = state.call.filterDate;
- }
- }
- if (state.call.filterStarred) {
- params["filter-starred"] = true;
- }
- switch(state.call.filterType) {
- case 1:
- params["filter-type"] = "group";
- params["filter-code"] = state.call.filterGroupId;
- break;
- case 2:
- params["filter-type"] = "talkgroup";
- params["filter-code"] = state.call.filterTalkgroups;
- break;
- default:
- case 0:
- }
-/*
-
- if (this.filterCode != "") {
- params["filter-code"] = this.filterCode;
- }
-
- if (this.filterType == this.FilterType.Group) {
- params["filter-type"] = "group";
- params["filter-name"] = this.filterName;
- }
-
- if (this.filterType == this.FilterType.Talkgroup) {
- params["filter-type"] = "talkgroup";
- }
-
- if (this.filterType == this.FilterType.Unit) {
- params["filter-type"] = "unit";
- }
-
-*/
- // url = startUp.backend_server + "/" + startUp.shortName.toLowerCase() + "/calls" + url + '?' + buildUrlParams(params);
- url = process.env.REACT_APP_BACKEND_SERVER + "/" + state.call.shortName + "/calls" + url + '?' + buildUrlParams(params);
- console.log("Trying to fetch data from this url: " + url);
- return url;
-}
-
-export function fetchNewerCalls(timestamp) {
- return (dispatch, getState) => {
- const state = getState();
- if (shouldFetchCalls(state)) {
- dispatch(beginFetchCall());
- const url = buildCallUrl(state, timestamp, "newer")
- return axios
- .get(url)
- .then(response => {
- if ((response.data) && (response.data.calls.length >0)) {
- var data = {shortName: state.call.shortName, calls: response.data.calls}
- dispatch(fetchNewerCallSuccess(data));
- } else {
- dispatch(fetchCallError());
- let registerMessage = response.data.message;
- return registerMessage;
- }
- })
- .catch(response => {
- if (response instanceof Error) {
- // Something happened in setting up the request that triggered an Error
- console.log("Error", response.message);
- }
- });
- };
-};
-}
-
-
-export function fetchOlderCalls( timestamp) {
- return (dispatch, getState) => {
- const state = getState();
- if (shouldFetchCalls(state)) {
- dispatch(beginFetchCall());
- const url = buildCallUrl(state, timestamp, "older")
- return axios
- .get(url)
- .then(response => {
- if (response.data) {
- var data = {shortName: state.call.shortName, calls: response.data.calls}
- dispatch(fetchOlderCallSuccess(data));
- } else {
- dispatch(fetchCallError());
- let registerMessage = response.data.message;
- return registerMessage;
- }
- })
- .catch(response => {
- if (response instanceof Error) {
- // Something happened in setting up the request that triggered an Error
- console.log("Error", response.message);
- }
- });
- };
-};
-}
-
-
-export function addStar( callId) {
- return (dispatch, getState) => {
- const state = getState();
- dispatch(beginAddStar());
-
- const url = process.env.REACT_APP_BACKEND_SERVER + "/" + state.call.shortName.toLowerCase() + "/star/" + callId
- return axios
- .post(url,{}, {
- headers: {
- 'Content-Type': 'application/x-www-form-urlencoded'
- }
- }).then(response => {
- if (response.data.success) {
- dispatch(addStarSuccess(response.data.call));
- } else {
- dispatch(addStarError());
- let registerMessage = response.data.message;
- return registerMessage;
- }
- })
- .catch(response => {
- if (response instanceof Error) {
- // Something happened in setting up the request that triggered an Error
- console.log("Error", response.message);
- }
- });
- };
-};
-
-
-
-export function fetchCallInfo( callId) {
- return (dispatch, getState) => {
- const state = getState();
- dispatch(beginFetchCallInfo());
-
- const url = process.env.REACT_APP_BACKEND_SERVER + "/" + state.call.shortName.toLowerCase() + "/call/" + callId
- return axios
- .get(url)
- .then(response => {
- if (response.data.success) {
- dispatch(fetchCallInfoSuccess(response.data.call));
- } else {
- dispatch(fetchCallInfoError());
- let registerMessage = response.data.message;
- return registerMessage;
- }
- })
- .catch(response => {
- if (response instanceof Error) {
- // Something happened in setting up the request that triggered an Error
- console.log("Error", response.message);
- }
- });
- };
-};
-
-export function fetchCalls() {
- return (dispatch, getState) => {
- const state = getState();
- if (shouldFetchCalls(state)) {
- dispatch(beginFetchCall());
- const url=buildCallUrl(state);
- return axios
- .get(url)
- .then(response => {
- if (response.data) {
- // check to make sure you actually got some calls back.
- if (response.data.calls.length > 0) {
- var data = {shortName: state.call.shortName, calls: response.data.calls}
- dispatch(fetchCallSuccess(data));
- } else {
- dispatch(fetchCallError());
- }
- } else {
- dispatch(fetchCallError());
- let registerMessage = response.data.message;
- return registerMessage;
- }
- })
- .catch(response => {
- if (response instanceof Error) {
- // Something happened in setting up the request that triggered an Error
- console.log("Error", response.message);
- }
- });
- };
-};
-}
-
-export function addCall(call) {
- return (dispatch, getState) => {
- dispatch({ type: types.UPSERT_CALL, data: call});
- };
-}
-
-export function setStarred(starred) {
- return (dispatch, getState) => {
- dispatch({ type: types.SET_STARRED_FILTER, data: starred});
- };
-}
-
-export function setLive(live) {
- return (dispatch, getState) => {
- dispatch({ type: types.SET_LIVE, data: live});
- };
-}
-
-export function setCurrentCallId(callId) {
- return (dispatch, getState) => {
- dispatch({ type: types.SET_CURRENT_CALL_ID, data: callId});
- };
-}
-
-// should be as a unix timestamp
-export function setDateFilter(date) {
- return (dispatch, getState) => {
- dispatch({ type: types.SET_DATE_FILTER, date: date});
- };
-}
-
-export function setAllFilter() {
- return (dispatch, getState) => {
- dispatch({ type: types.SET_ALL_FILTER});
- };
-}
-
-export function setTalkgroupFilter(tgs) {
- return (dispatch, getState) => {
- dispatch({ type: types.SET_TALKGROUP_FILTER, talkgroups: tgs});
- };
-}
-
-export function setGroupFilter(groupId) {
- return (dispatch, getState) => {
- dispatch({ type: types.SET_GROUP_FILTER, groupId: groupId});
- };
-}
-
-export function setShortName(shortName) {
- return (dispatch, getState) => {
- dispatch({ type: types.SET_SHORT_NAME, data: shortName});
- };
-}
-
-export function setFilter(filter) {
- return (dispatch, getState) => {
- dispatch({ type: types.SET_FILTER, data: filter});
- };
-}
diff --git a/frontend/src/Call/call-constants.js b/frontend/src/Call/call-constants.js
deleted file mode 100644
index d6ac331..0000000
--- a/frontend/src/Call/call-constants.js
+++ /dev/null
@@ -1,23 +0,0 @@
-export const PREPEND_CALL = "PREPEND_CALL"
-export const ADD_STAR = "ADD_STAR"
-export const ADD_STAR_SUCCESS = "ADD_STAR_SUCCESS"
-export const ADD_STAR_ERROR = "ADD_STAR_ERROR"
-export const UPSERT_CALL = "UPSERT_CALL"
-export const FETCH_CALL = "FETCH_CALL"
-export const FETCH_SUCCESS_CALL = "FETCH_SUCCESS_CALL"
-export const FETCH_SUCCESS_NEWER_CALL = "FETCH_SUCCESS_NEWER_CALL"
-export const FETCH_SUCCESS_OLDER_CALL = "FETCH_SUCCESS_OLDER_CALL"
-export const FETCH_ERROR_CALL = "FETCH_ERROR_CALL"
-export const SET_SHORT_NAME = "SET_SHORT_NAME"
-export const FETCH_CALL_INFO = "FETCH_CALL_INFO"
-export const FETCH_SUCCESS_CALL_INFO = "FETCH_SUCCESS_CALL_INFO"
-export const FETCH_ERROR_CALL_INFO = "FETCH_ERROR_CALL_INFO"
-export const SET_ALL_FILTER = "SET_ALL_FILTER"
-export const SET_GROUP_FILTER = "SET_GROUP_FILTER"
-export const SET_TALKGROUP_FILTER = "SET_TALKGROUP_FILTER"
-export const SET_DATE_FILTER = "SET_DATE_FILTER"
-export const SET_FILTER = "SET_FILTER"
-export const SET_STARRED_FILTER = "SET_STARRED_FILTER"
-export const SET_LIVE = "SET_LIVE"
-export const SET_CALL_TIME = "SET_CALL_TIME"
-export const SET_CURRENT_CALL_ID = "SET_CURRENT_CALL_ID"
diff --git a/frontend/src/Call/call-data.js b/frontend/src/Call/call-data.js
deleted file mode 100644
index ecd7e6d..0000000
--- a/frontend/src/Call/call-data.js
+++ /dev/null
@@ -1,57 +0,0 @@
-import React from 'react'
-import { useGetGroupsQuery, useGetCallsQuery } from '../features/api/apiSlice'
-
-export const Groups = (args) => {
-
- const { data, isError, isLoading, isSuccess,error } = useGetGroupsQuery(args.shortName);
-
- let content
-
- if (isLoading) {
- content =
Loading...
- } else if (isSuccess) {
-
- for (const num in data) {
- const group = data[num];
- content = {group.groupName};
- }
-
- } else if (isError) {
- content = {error.toString()}
- }
-
- return (
-
- )
- }
-
-
- export const Calls = (args) => {
-
- const { data, isError, isLoading, isSuccess,error } = useGetCallsQuery({shortName: args.shortName});
-
- let content
-
- if (isLoading) {
- content = Loading...
- } else if (isSuccess) {
-
- for (const num in data) {
- const group = data[num];
- content = {group.groupName};
- }
-
- } else if (isError) {
- content = {error.toString()}
- }
-
- return (
-
- )
- }
\ No newline at end of file
diff --git a/frontend/src/Call/call-reducer.js b/frontend/src/Call/call-reducer.js
deleted file mode 100644
index 8fe2935..0000000
--- a/frontend/src/Call/call-reducer.js
+++ /dev/null
@@ -1,230 +0,0 @@
-import {
- FETCH_CALL_INFO,
- FETCH_SUCCESS_CALL_INFO,
- FETCH_ERROR_CALL_INFO,
- FETCH_CALL,
- PREPEND_CALL,
- UPSERT_CALL,
- FETCH_SUCCESS_CALL,
- FETCH_SUCCESS_OLDER_CALL,
- FETCH_SUCCESS_NEWER_CALL,
- FETCH_ERROR_CALL,
- SET_SHORT_NAME,
- SET_ALL_FILTER,
- SET_GROUP_FILTER,
- SET_TALKGROUP_FILTER,
- SET_DATE_FILTER,
- SET_STARRED_FILTER,
- SET_FILTER,
- SET_CURRENT_CALL_ID,
- SET_LIVE,
- SET_CALL_TIME,
- ADD_STAR_SUCCESS
-} from "./call-constants";
-
-function updateObject(oldObject, newValues) {
- // Encapsulate the idea of passing a new object as the first parameter
- // to Object.assign to ensure we correctly copy data instead of mutating
- return Object.assign({}, oldObject, newValues);
-}
-
-function updateCallInItems(calls, action) {
-return calls.map( (item) => {
- if (item._id !== action.data._id) {
- // This isn't the item we care about - keep it as-is
- return item;
- }
-
- // Otherwise, this is the one we want - return an updated value
- return {
- ...action.data
- };
- });
-}
-/*
-function updateObjectInArray(array, action) {
- return array.map((item, index) => {
- if (index !== action.index) {
- // This isn't the item we care about - keep it as-is
- return item
- }
-
- // Otherwise, this is the one we want - return an updated value
- return {
- ...item,
- ...action.item
- }
- })
-}
-
-function updateObjectInArray(array, shortName, updatedItem) {
- return array.map( item => {
- if(item.shortName !== shortName) {
- // This isn't the item we care about - keep it as-is
- return item;
- }
-
- // Otherwise, this is the one we want - return an updated value
- return {
- ...item,
- ...updatedItem
- };
- });
-}
-*/
-const now = new Date();
-const call = (
- state = {
- isWaiting: false,
- shortName: "",
- byId: {},
- allIds: [],
- oldestCallTime: now,
- newestCallTime: now,
- filterType: 0,
- filterTalkgroups: [],
- filterGroupId: false,
- filterDate: false,
- filterStarred: false,
- currentCallId: false,
- live: false
- },
- action
-) => {
- switch (action.type) {
-
- case SET_CURRENT_CALL_ID:
- return Object.assign({}, state, {currentCallId: action.data});
-
- case SET_CALL_TIME:
- return Object.assign({}, state, {newestCallTime: action.data, oldestCallTime: action.data });
- case SET_FILTER:
- {
- var filter={};
- filter.live = !action.data.live ? state.live : action.data.live;
- filter.filterStarred = !action.data.filterStarred ? false : action.data.filterStarred;
- filter.filterType = !action.data.filterType ? 0 : action.data.filterType;
- filter.filterTalkgroups = !action.data.filterTalkgroups ? [] : action.data.filterTalkgroups;
- filter.filterGroupId = !action.data.filterGroupId ? false : action.data.filterGroupId;
- filter.filterDate = !action.data.filterDate ? 0 : action.data.filterDate;
- return Object.assign({}, state, {
- live: action.data.live,
- filterType: action.data.filterType,
- filterTalkgroups: action.data.filterTalkgroups,
- filterGroupId: action.data.filterGroupId,
- filterDate: action.data.filterDate,
- filterStarred: action.data.filterStarred
- });
- }
-
- case SET_LIVE:
- return Object.assign({}, state, {live: action.data});
-
- case SET_SHORT_NAME:
- return Object.assign({}, state, {shortName: action.data});
-
- case SET_DATE_FILTER:
- return Object.assign({}, state, {filterDate: action.date});
-
- case SET_STARRED_FILTER:
- return Object.assign({}, state, {filterStarred: action.data});
-
- case SET_ALL_FILTER:
- return Object.assign({}, state, {filterType: 0, filterTalkgroups:[], filterGroupId: false});
-
- case SET_GROUP_FILTER:
- return Object.assign({}, state, {filterType: 1, filterTalkgroups:[], filterGroupId: action.groupId});
-
- case SET_TALKGROUP_FILTER:
- return Object.assign({}, state, {filterType: 2, filterTalkgroups: action.talkgroups, filterGroupId: false});
-
- case FETCH_CALL_INFO:
- case FETCH_CALL:
- return Object.assign({}, state, { isWaiting: true});
-
- case FETCH_SUCCESS_CALL_INFO:
- return Object.assign({}, state, {
- byId: {...state.byId, [action.data._id]: action.data },
- isWaiting: false
-
- });
-
- case ADD_STAR_SUCCESS:
- return Object.assign({}, state,{
- byId: {...state.byId, [action.data._id]: action.data },
- isWaiting: false
-
- });
- // This will set the items to the rx data
- case FETCH_SUCCESS_CALL:
- {
- const byId = action.data.calls.reduce((acc, call) => ({ ...acc, [call._id]: call }), {});
- const allIds = action.data.calls.map(call => call._id);
- return Object.assign({}, state, {
- isWaiting: false,
- shortName: action.data.shortName,
- newestCallTime: new Date(action.data.calls[0].time),
- oldestCallTime: new Date(action.data.calls[action.data.calls.length-1].time),
- byId: { ...byId},
- allIds: [...allIds]
- });
- }
-
- case UPSERT_CALL:
- if (typeof state.byId[action.data._id] !== "undefined") {
- return Object.assign({}, state, {
- byId: {...state.byId, [action.data._id]: action.data },
- });
- } else {
- return Object.assign({}, state, {
- newestCallTime: new Date(action.data.time),
- byId: {[action.data._id]: action.data, ...state.byId},
- allIds: [action.data._id, ...state.allIds]
- });
- }
-
- case PREPEND_CALL:
- return Object.assign({}, state, {
- isWaiting: false,
- newestCallTime: new Date(action.data.time),
- byId: {[action.data._id]: action.data, ...state.byId},
- allIds: [action.data._id, ...state.allIds]
- });
-
-// This will add the array of Calls in the data to the beginning of the existing array of Calls
- case FETCH_SUCCESS_NEWER_CALL:
- const byId = action.data.calls.reduce((acc, call) => ({ ...acc, [call._id]: call }), {});
- const allIds = action.data.calls.map(call => call._id).reverse();
- return Object.assign({}, state, {
- isWaiting: false,
- shortName: action.data.shortName,
- newestCallTime: new Date(action.data.calls[action.data.calls.length-1].time),
- byId: {...state.byId, ...byId},
- allIds: [...allIds, ...state.allIds]
- });
-
-// This will add the array of Calls in the data to the end of the existing array of Calls
- case FETCH_SUCCESS_OLDER_CALL:
- {
- const byId = action.data.calls.reduce((acc, call) => ({ ...acc, [call._id]: call }), {});
- const allIds = action.data.calls.map(call => call._id);
- return Object.assign({}, state, {
- isWaiting: false,
- shortName: action.data.shortName,
- oldestCallTime: new Date(action.data.calls[action.data.calls.length-1].time),
- byId: {...state.byId, ...byId},
- allIds: [ ...state.allIds, ...allIds]
- });
- }
- case FETCH_ERROR_CALL_INFO:
- case FETCH_ERROR_CALL:
- return Object.assign({}, state, {
- isWaiting: false
- });
-
- default:
- return state;
- }
-};
-
-export default call;
diff --git a/frontend/src/Group/group-actions.js b/frontend/src/Group/group-actions.js
deleted file mode 100644
index 7d1c2d3..0000000
--- a/frontend/src/Group/group-actions.js
+++ /dev/null
@@ -1,73 +0,0 @@
-import axios from "axios";
-//import { browserHistory } from "react-router"
-import * as types from "./group-constants";
-import { push } from 'connected-react-router';
-
-// "Log In" action creators
-
-
-function beginFetchGroup() {
- return { type: types.FETCH_GROUP };
-}
-
-function fetchGroupSuccess(data) {
- return {
- type: types.FETCH_SUCCESS_GROUP,
- data
- };
-}
-
-function fetchGroupError(data) {
- return {
- type: types.FETCH_ERROR_GROUP,
- data
- };
-}
-
-
-export function changeUrl(url) {
- return dispatch => {
- dispatch(push(url));
- };
-}
-
-// Example of an Async Action Creator
-// http://redux.js.org/docs/advanced/AsyncActions.html
-
-
-function shouldFetchGroups(state,shortName) {
- if (!state.group.items || !state.group.items[shortName]) {
- return true;
- } else if (state.group.isWaiting) {
- return false;
- } else {
- return false;
- }
-}
-
-
-export function fetchGroups(shortName) {
- return (dispatch, getState) => {
- if (shouldFetchGroups(getState(), shortName)) {
- dispatch(beginFetchGroup());
- return axios
- .get(process.env.REACT_APP_BACKEND_SERVER + "/" + shortName + "/groups")
- .then(response => {
- if (true) { //response.data.success) {
- const data = { shortName: shortName, groups: response.data };
- dispatch(fetchGroupSuccess(data));
- } else {
- dispatch(fetchGroupError());
- let registerMessage = response.data.message;
- return registerMessage;
- }
- })
- .catch(response => {
- if (response instanceof Error) {
- // Something happened in setting up the request that triggered an Error
- console.log("Error", response.message);
- }
- });
- }
- };
-}
diff --git a/frontend/src/Group/group-constants.js b/frontend/src/Group/group-constants.js
deleted file mode 100644
index 914364f..0000000
--- a/frontend/src/Group/group-constants.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export const FETCH_GROUP = "FETCH_GROUP"
-export const FETCH_SUCCESS_GROUP = "FETCH_SUCCESS_GROUP"
-export const FETCH_ERROR_GROUP = "FETCH_ERROR_GROUP"
diff --git a/frontend/src/Group/group-reducer.js b/frontend/src/Group/group-reducer.js
deleted file mode 100644
index fb4993b..0000000
--- a/frontend/src/Group/group-reducer.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import {
- FETCH_GROUP,
- FETCH_SUCCESS_GROUP,
- FETCH_ERROR_GROUP
-} from "./group-constants";
-
-
-const group = (
- state = {
- orderChange: false,
- isWaiting: false,
- items: {}},
- action
-) => {
- switch (action.type) {
-
-
- case FETCH_GROUP:
- return Object.assign({}, state, { isWaiting: true});
-
-
- case FETCH_SUCCESS_GROUP:
- return Object.assign({}, state, {
- isWaiting: false,
- items: {
- ...state.items,
- [action.data.shortName]: action.data.groups
- }
- });
-
- case FETCH_ERROR_GROUP:
- return Object.assign({}, state, {
- isWaiting: false
- });
-
-
- default:
- return state;
- }
-};
-
-export default group;
diff --git a/frontend/src/Main/Main.js b/frontend/src/Main/Main.js
index dc1aa96..372d169 100644
--- a/frontend/src/Main/Main.js
+++ b/frontend/src/Main/Main.js
@@ -1,5 +1,5 @@
import React, { Component, useState, useEffect, useRef } from "react";
-import { Link } from 'react-router-dom'
+import { Link, useNavigate } from 'react-router-dom'
import SystemCard from "../System/SystemCard";
import "./Main.css";
import { createMedia } from "@artsy/fresnel";
@@ -214,6 +214,7 @@ const Main = (props) => {
const [visible, setVisible] = useState(true);
const [duration, setDuration] = useState(500);
const [currentSystem, setCurrentSystem] = useState(0);
+ const navigate = useNavigate();
const dispatch = useDispatch();
const {data:systems, isSuccess} = useGetSystemsQuery(); //= selectAllSystems();
@@ -276,13 +277,13 @@ const Main = (props) => {
{ system && (
- props.changeUrl("/system/" + system.shortName)}/>
+ navigate("/system/" + system.shortName)}/>
)}
-