cleaned it up

This commit is contained in:
Luke Berndt
2023-01-28 21:42:18 -05:00
parent beec21470a
commit 20de3600b8
6 changed files with 107 additions and 46 deletions

View File

@@ -36,6 +36,7 @@ const ListEvents = (props) => {
const {data:events, isSuccess} = useGetEventsQuery();
const navigate = useNavigate();
return (
<div>
<NavBar/>

View File

@@ -0,0 +1,25 @@
import {
Card,
Header
} from "semantic-ui-react";
import { useNavigate } from 'react-router-dom'
import SystemCard from "./SystemCard";
const InternationList = (other) => {
const navigate = useNavigate();
let international = [];
international.push((<Header as="h2" id="international">International</Header>))
international.push((
<Card.Group itemsPerRow={4} stackable={true}>
{other &&
other.map((system) => {
return <SystemCard system={system} key={system.shortName} onClick={(e) => navigate("/system/" + system.shortName)} />
})}
</Card.Group>
))
return international;
}
export default InternationList;

View File

@@ -1,6 +1,6 @@
import React, { Component, useRef } from "react";
import { Component, useRef } from "react";
import { Link, useNavigate } from 'react-router-dom'
import SystemCard from "./SystemCard";
import { useSelector, useDispatch } from 'react-redux'
import {
Container,
@@ -18,6 +18,9 @@ import {
import NavBar from "../Common/NavBar"
import { selectAllSystems, selectActiveSystems, } from "../features/systems/systemsSlice";
import { useGetSystemsQuery, } from '../features/api/apiSlice'
import StateLinkList from "./StateLinkList";
import SystemsByState from "./SystemsByState";
import InternationList from "./InternationList";
// ----------------------------------------------------
const ListSystems = (props) => {
@@ -25,6 +28,8 @@ const ListSystems = (props) => {
const { data: allSystems, isSuccess } = useGetSystemsQuery();
const systems = useSelector(selectActiveSystems)
const contextRef = useRef();
// Sorts the systems by State and also creates an International Arry
let states = {};
let other = []
for (var i = 0; i < systems.length; i++) {
@@ -37,51 +42,12 @@ const ListSystems = (props) => {
} else {
other.push(system);
}
}
let keys = Object.keys(states);
keys.sort();
let stateList = [];
for (var i = 0; i < keys.length; ++i) {
const state = keys[i];
stateList.push((
<List.Item>
<List.Content>
<List.Header><a href={"#" + state}>{state}</a></List.Header>
</List.Content>
</List.Item>
))
}
let systemsByState = [];
const stateList = StateLinkList(states);
const systemsByState = SystemsByState(states);
const international = InternationList(other);
for (var i = 0; i < keys.length; ++i) {
const state = keys[i];
systemsByState.push((<Header as="h2" id={state}>{state}</Header>))
systemsByState.push((
<Card.Group key={state} itemsPerRow={4} stackable={true}>
{states[state] &&
states[state].map((system) => {
return <SystemCard system={system} key={system.shortName} onClick={(e) => navigate("/system/" + system.shortName)} />
})}
</Card.Group>
))
}
let international = [];
international.push((<Header as="h2" id="international">International</Header>))
international.push((
<Card.Group itemsPerRow={4} stackable={true}>
{other &&
other.map((system) => {
return <SystemCard system={system} key={system.shortName} onClick={(e) => navigate("/system/" + system.shortName)} />
})}
</Card.Group>
))
const navigate = useNavigate();
return (
<div ref={contextRef}>
<NavBar />

View File

@@ -0,0 +1,30 @@
import {
List,
} from "semantic-ui-react";
const StateLinkList = (states) => {
let stateList = [];
if (states) {
let keys = Object.keys(states);
keys.sort();
for (var i = 0; i < keys.length; ++i) {
const state = keys[i];
stateList.push((
<List.Item key={"short-"+state}>
<List.Content>
<List.Header><a href={"#" + state}>{state}</a></List.Header>
</List.Content>
</List.Item>
))
}
}
return stateList;
}
export default StateLinkList

View File

@@ -0,0 +1,35 @@
import {
Card,
Header
} from "semantic-ui-react";
import { useNavigate } from 'react-router-dom'
import SystemCard from "./SystemCard";
const SystemsByState = (states) => {
const navigate = useNavigate();
let systemsByState = [];
if (states) {
let keys = Object.keys(states);
keys.sort();
for (var i = 0; i < keys.length; ++i) {
const state = keys[i];
systemsByState.push((<Header key={"header-" +state} as="h2" id={state}>{state}</Header>))
systemsByState.push((
<Card.Group key={"group-" +state} itemsPerRow={4} stackable={true}>
{states[state] &&
states[state].map((system) => {
return <SystemCard system={system} key={system.shortName} onClick={(e) => navigate("/system/" + system.shortName)} />
})}
</Card.Group>
))
}
}
return systemsByState;
}
export default SystemsByState;

View File

@@ -23,11 +23,15 @@ export const apiSlice = createApi({
}),
getEvents: builder.query({
// The URL for the request is '/fakeApi/posts'
query: () => ({ url: '/events' })
query: () => ({ url: '/events' }),
transformResponse: responseData => {
return responseData.sort(function compareFn(a, b) { if (a.createdAt < b.createdAt) return 1; else return -1; })
}
}),
getEvent: builder.query({
// The URL for the request is '/fakeApi/posts'
query: (eventId) => ({ url: `/events/${eventId}` })
query: (eventId) => ({ url: `/events/${eventId}` }),
}),
getTalkgroups: builder.query({
// The URL for the request is '/fakeApi/posts'