From 79fe8113e0e3552be763ea3d55418cf81e5e2daf Mon Sep 17 00:00:00 2001 From: Luke Berndt Date: Fri, 1 Jan 2021 12:04:37 -0500 Subject: [PATCH] Have main and listSystems working --- frontend/.env | 8 + frontend/.eslintcache | 2 +- frontend/env-example | 8 + frontend/notes.md | 12 + frontend/package.json | 8 +- frontend/public/index.html | 4 + frontend/src/App.css | 39 -- frontend/src/App.js | 58 --- frontend/src/App.test.js | 15 - frontend/src/Main/Main.css | 82 ++++ frontend/src/Main/Main.js | 356 ++++++++++++++++++ frontend/src/Main/MainContainer.js | 16 + frontend/src/System/ListSystems.js | 49 +++ frontend/src/System/ListSystemsContainer.js | 16 + frontend/src/System/SystemCard.js | 71 ++++ frontend/src/System/system-actions.js | 77 ++++ frontend/src/System/system-constants.js | 3 + frontend/src/System/system-reducer.js | 71 ++++ frontend/src/index.js | 11 +- .../{app => redux-router}/configureStore.js | 0 .../src/{app => redux-router}/reducers.js | 4 +- .../src/resources/DidactGothic-Regular.ttf | Bin 0 -> 194200 bytes frontend/src/resources/logo.png | Bin 0 -> 2332 bytes frontend/yarn.lock | 217 +++++------ 24 files changed, 881 insertions(+), 246 deletions(-) create mode 100644 frontend/.env create mode 100644 frontend/env-example delete mode 100644 frontend/src/App.css delete mode 100644 frontend/src/App.js delete mode 100644 frontend/src/App.test.js create mode 100644 frontend/src/Main/Main.css create mode 100644 frontend/src/Main/Main.js create mode 100644 frontend/src/Main/MainContainer.js create mode 100644 frontend/src/System/ListSystems.js create mode 100644 frontend/src/System/ListSystemsContainer.js create mode 100644 frontend/src/System/SystemCard.js create mode 100644 frontend/src/System/system-actions.js create mode 100644 frontend/src/System/system-constants.js create mode 100644 frontend/src/System/system-reducer.js rename frontend/src/{app => redux-router}/configureStore.js (100%) rename frontend/src/{app => redux-router}/reducers.js (76%) create mode 100755 frontend/src/resources/DidactGothic-Regular.ttf create mode 100644 frontend/src/resources/logo.png diff --git a/frontend/.env b/frontend/.env new file mode 100644 index 0000000..f536405 --- /dev/null +++ b/frontend/.env @@ -0,0 +1,8 @@ +REACT_APP_BACKEND_SERVER=https://api.openmhz.com +REACT_APP_FRONTEND_SERVER=https://openmhz.com +REACT_APP_SOCKET_SERVER=wss://api.openmhz.com +REACT_APP_SITE_NAME=OpenMHz +REACT_APP_PRO_PLAN=1 +REACT_APP_FREE_PLAN=0 +REACT_APP_PRO_PLAN_ARCHIVE=30 +REACT_APP_FREE_PLAN_ARCHIVE=7 diff --git a/frontend/.eslintcache b/frontend/.eslintcache index d0571d3..e7a807f 100644 --- a/frontend/.eslintcache +++ b/frontend/.eslintcache @@ -1 +1 @@ -[{"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/index.js":"1","/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/features/counter/Counter.js":"2","/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/App.js":"3","/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/app/reducers.js":"4","/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/features/counter/counterSlice.js":"5","/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/app/configureStore.js":"6"},{"size":824,"mtime":1609425644251,"results":"7","hashOfConfig":"8"},{"size":1626,"mtime":499162500000,"results":"9","hashOfConfig":"8"},{"size":1463,"mtime":499162500000,"results":"10","hashOfConfig":"8"},{"size":375,"mtime":1609425733654,"results":"11","hashOfConfig":"8"},{"size":1551,"mtime":499162500000,"results":"12","hashOfConfig":"8"},{"size":759,"mtime":1609425817988,"results":"13","hashOfConfig":"8"},{"filePath":"14","messages":"15","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1du4mf8",{"filePath":"16","messages":"17","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"18","messages":"19","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"20","messages":"21","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"22","messages":"23","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"24","messages":"25","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/index.js",[],"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/features/counter/Counter.js",[],"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/App.js",[],"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/app/reducers.js",[],"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/features/counter/counterSlice.js",[],"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/app/configureStore.js",[]] \ No newline at end of file +[{"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/index.js":"1","/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/features/counter/Counter.js":"2","/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/features/counter/counterSlice.js":"3","/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/System/SystemCard.js":"4","/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/System/system-actions.js":"5","/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/System/system-constants.js":"6","/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/Main/Main.js":"7","/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/System/system-reducer.js":"8","/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/System/ListSystems.js":"9","/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/redux-router/reducers.js":"10"},{"size":910,"mtime":1609515100233,"results":"11","hashOfConfig":"12"},{"size":1626,"mtime":499162500000,"results":"13","hashOfConfig":"12"},{"size":1551,"mtime":499162500000,"results":"14","hashOfConfig":"12"},{"size":2045,"mtime":1609520570000,"results":"15","hashOfConfig":"12"},{"size":1789,"mtime":1609517296613,"results":"16","hashOfConfig":"12"},{"size":157,"mtime":1545362103913,"results":"17","hashOfConfig":"12"},{"size":11040,"mtime":1609520223847,"results":"18","hashOfConfig":"12"},{"size":1576,"mtime":1609520031487,"results":"19","hashOfConfig":"12"},{"size":1547,"mtime":1609520315634,"results":"20","hashOfConfig":"12"},{"size":363,"mtime":1609510513079,"results":"21","hashOfConfig":"12"},{"filePath":"22","messages":"23","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1du4mf8",{"filePath":"24","messages":"25","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"26","messages":"27","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"28","messages":"29","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"30","messages":"31","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"32","messages":"33","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"34","messages":"35","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"36","messages":"37","errorCount":0,"warningCount":11,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"38","messages":"39","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"40","messages":"41","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/index.js",[],"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/features/counter/Counter.js",[],"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/features/counter/counterSlice.js",[],"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/System/SystemCard.js",[],"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/System/system-actions.js",["42","43"],"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/System/system-constants.js",[],"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/Main/Main.js",[],"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/System/system-reducer.js",["44","45","46","47","48","49","50","51","52","53","54"],"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/System/ListSystems.js",[],"/Users/luke/Projects/OpenMHz/trunk-server-public/frontend/src/redux-router/reducers.js",[],{"ruleId":"55","severity":1,"message":"56","line":6,"column":7,"nodeType":"57","messageId":"58","endLine":6,"endColumn":30},{"ruleId":"55","severity":1,"message":"59","line":23,"column":10,"nodeType":"57","messageId":"58","endLine":23,"endColumn":25},{"ruleId":"55","severity":1,"message":"60","line":2,"column":3,"nodeType":"57","messageId":"58","endLine":2,"endColumn":16},{"ruleId":"55","severity":1,"message":"61","line":3,"column":3,"nodeType":"57","messageId":"58","endLine":3,"endColumn":24},{"ruleId":"55","severity":1,"message":"62","line":4,"column":3,"nodeType":"57","messageId":"58","endLine":4,"endColumn":22},{"ruleId":"55","severity":1,"message":"63","line":5,"column":3,"nodeType":"57","messageId":"58","endLine":5,"endColumn":16},{"ruleId":"55","severity":1,"message":"64","line":6,"column":3,"nodeType":"57","messageId":"58","endLine":6,"endColumn":24},{"ruleId":"55","severity":1,"message":"65","line":7,"column":3,"nodeType":"57","messageId":"58","endLine":7,"endColumn":22},{"ruleId":"55","severity":1,"message":"66","line":8,"column":3,"nodeType":"57","messageId":"58","endLine":8,"endColumn":16},{"ruleId":"55","severity":1,"message":"67","line":9,"column":3,"nodeType":"57","messageId":"58","endLine":9,"endColumn":24},{"ruleId":"55","severity":1,"message":"68","line":10,"column":3,"nodeType":"57","messageId":"58","endLine":10,"endColumn":22},{"ruleId":"55","severity":1,"message":"69","line":16,"column":10,"nodeType":"57","messageId":"58","endLine":16,"endColumn":22},{"ruleId":"55","severity":1,"message":"70","line":22,"column":10,"nodeType":"57","messageId":"58","endLine":22,"endColumn":29},"no-unused-vars","'FETCH_SUCCESS_STATISTIC' is assigned a value but never used.","Identifier","unusedVar","'makeUserRequest' is defined but never used.","'CREATE_SYSTEM' is defined but never used.","'CREATE_SUCCESS_SYSTEM' is defined but never used.","'CREATE_ERROR_SYSTEM' is defined but never used.","'UPDATE_SYSTEM' is defined but never used.","'UPDATE_SUCCESS_SYSTEM' is defined but never used.","'UPDATE_ERROR_SYSTEM' is defined but never used.","'DELETE_SYSTEM' is defined but never used.","'DELETE_SUCCESS_SYSTEM' is defined but never used.","'DELETE_ERROR_SYSTEM' is defined but never used.","'updateObject' is defined but never used.","'updateObjectInArray' is defined but never used."] \ No newline at end of file diff --git a/frontend/env-example b/frontend/env-example new file mode 100644 index 0000000..f536405 --- /dev/null +++ b/frontend/env-example @@ -0,0 +1,8 @@ +REACT_APP_BACKEND_SERVER=https://api.openmhz.com +REACT_APP_FRONTEND_SERVER=https://openmhz.com +REACT_APP_SOCKET_SERVER=wss://api.openmhz.com +REACT_APP_SITE_NAME=OpenMHz +REACT_APP_PRO_PLAN=1 +REACT_APP_FREE_PLAN=0 +REACT_APP_PRO_PLAN_ARCHIVE=30 +REACT_APP_FREE_PLAN_ARCHIVE=7 diff --git a/frontend/notes.md b/frontend/notes.md index e69de29..1ed2345 100644 --- a/frontend/notes.md +++ b/frontend/notes.md @@ -0,0 +1,12 @@ +## Elements Used +- Create React App +- Redux +- Redux Router +- [Redux Thunk](https://github.com/reduxjs/redux-thunk): lets you do AJAX calls +- [connected-react-router](https://github.com/supasate/connected-react-router): Synchronize router state with redux store through uni-directional flow (i.e. history -> store -> router -> components). Basically, if you go back the redux store will update... I think +- [axios](https://github.com/axios/axios) - library for doing HTTP requests +- [@artsy/fresnel](https://github.com/artsy/fresnel) - Handles media requests for responsive designs and works server side too. https://github.com/Semantic-Org/Semantic-UI-React/pull/4008 + + +## Environment Variables +CRA lets you sub in env variables into both HTML and JS: https://create-react-app.dev/docs/adding-custom-environment-variables/ \ No newline at end of file diff --git a/frontend/package.json b/frontend/package.json index d794de8..7075e46 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -3,19 +3,21 @@ "version": "0.1.0", "private": true, "dependencies": { + "@artsy/fresnel": "1.3.1", "@reduxjs/toolkit": "^1.1.0", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^7.1.2", - "bootstrap": "4.5.3", + "axios": "0.21.1", "connected-react-router": "6.8.0", "react": "^17.0.1", - "react-bootstrap": "1.4.0", "react-dom": "^17.0.1", "react-redux": "^7.1.3", "react-router-dom": "5.2.0", "react-scripts": "4.0.1", - "redux-thunk": "2.3.0" + "redux-thunk": "2.3.0", + "semantic-ui-css": "2.4.1", + "semantic-ui-react": "2.0.1" }, "scripts": { "start": "react-scripts start", diff --git a/frontend/public/index.html b/frontend/public/index.html index 430b58f..cf3a044 100644 --- a/frontend/public/index.html +++ b/frontend/public/index.html @@ -24,6 +24,10 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> + + React Redux App diff --git a/frontend/src/App.css b/frontend/src/App.css deleted file mode 100644 index 355c49b..0000000 --- a/frontend/src/App.css +++ /dev/null @@ -1,39 +0,0 @@ -.App { - text-align: center; -} - -.App-logo { - height: 40vmin; - pointer-events: none; -} - -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-float infinite 3s ease-in-out; - } -} - -.App-header { - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); -} - -.App-link { - color: rgb(112, 76, 182); -} - -@keyframes App-logo-float { - 0% { - transform: translateY(0); - } - 50% { - transform: translateY(10px) - } - 100% { - transform: translateY(0px) - } -} diff --git a/frontend/src/App.js b/frontend/src/App.js deleted file mode 100644 index 7825dd2..0000000 --- a/frontend/src/App.js +++ /dev/null @@ -1,58 +0,0 @@ -import React from 'react'; -import logo from './logo.svg'; -import { Counter } from './features/counter/Counter'; -import './App.css'; - -function App() { - return ( -
-
- logo - -

- Edit src/App.js and save to reload. -

- - Learn - - React - - , - - Redux - - , - - Redux Toolkit - - , and - - React Redux - - -
-
- ); -} - -export default App; diff --git a/frontend/src/App.test.js b/frontend/src/App.test.js deleted file mode 100644 index cf703a4..0000000 --- a/frontend/src/App.test.js +++ /dev/null @@ -1,15 +0,0 @@ -import React from 'react'; -import { render } from '@testing-library/react'; -import { Provider } from 'react-redux'; -import store from './app/store'; -import App from './App'; - -test('renders learn react link', () => { - const { getByText } = render( - - - - ); - - expect(getByText(/learn/i)).toBeInTheDocument(); -}); diff --git a/frontend/src/Main/Main.css b/frontend/src/Main/Main.css new file mode 100644 index 0000000..06cc17c --- /dev/null +++ b/frontend/src/Main/Main.css @@ -0,0 +1,82 @@ +@font-face { + font-family: didact; + src: url("../resources/DidactGothic-Regular.ttf"); +} + +#menu-bar { + + background-color: #365474; +} + +.header { + font-family: didact !important; +} + +#header-bg { +position: relative; +} + +#hero { +height: 725px; +} + +.z-0 { +z-index: 0; +} + +.z-5 { +z-index: 5; +} + +.absolute { +position: absolute; +} + +.relative { +position: relative; +} + +.static-gradient-bg { +background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAAfBAMAAADtgAsKAAAAD1BMVEUAAAAAAAAAAAAAAAAAAABPDueNAAAABXRSTlMVGRsSHUz7Vs0AAAErSURBVCjPHY+BDeUgDEPttAM4wACk/QMEdYHSu/1nOjghQIodPxnRfuPnfWQO0F240K5TvRLKdYXvdAIH8ej+0yTEsh1CUYplr+j91ouhCl3WhEnpNuACvW3vUAgic8woHoA/ojO5MN6uN9EPdIJpRu7IBfTN5+I4aIAowPxSu74OAV7gfFuLJVQeAKS41Kes5k4H6tW8uML0yJcjHTE3WepIAfx+8JhJ6aCeRMRK7EQs9RjPxhheOhZL+P//zh8TW4gKArKGY2m3H1xZgq0ykzzdh9vrWPu4c1eNc0bs+suKQAKmtg4gT4kqleFxCzT1zftKUzmYi0CqWynyr4YSwhq2q/s8pf9l+oD9nbeZAXRAlJ0wFMd43ICcpTanOIQXEDTjdK54eqlV+Q9M1SO8F3P79wAAAABJRU5ErkJggg=="); + +width: 100%; +height: 100%; +} +/* +.static-gradient.blue { +background: -webkit-gradient(linear,left top,right top,from(#2754F0),to(#86ACFE)); +background: linear-gradient(to right, #2754F0, #86ACFE); +}*/ + +.static-gradient.blue { +background: -webkit-gradient(linear,left top,right top,from(#9f0000),to(#ff7543)); +background: linear-gradient(to right, #9f0000, #ff7543); +} + +.static-gradient { +width: 100%; +height: 100%; +overflow: hidden; +-webkit-transform: skewY(-7deg); +transform: skewY(-7deg); +-webkit-transform-origin: 0; +transform-origin: 0; +border-bottom: 2px solid rgba(128,128,128,.5); +bottom: 0; +} + +#menu-bg { + + background-color: #3b5f85; + +} + +#footer { + background: -webkit-gradient(linear, bottom, top,from(#9f0000),to(#ff7543)); + background: linear-gradient(to top, #9f0000, #ff7543); +} + +.ui.button { + + +} diff --git a/frontend/src/Main/Main.js b/frontend/src/Main/Main.js new file mode 100644 index 0000000..8545836 --- /dev/null +++ b/frontend/src/Main/Main.js @@ -0,0 +1,356 @@ +import React, { Component } from "react"; +import { Link } from 'react-router-dom' +import SystemCard from "../System/SystemCard"; +import "./Main.css"; +import { createMedia } from "@artsy/fresnel"; +import { + Button, + Container, + Divider, + Grid, + Header, + Icon, + Menu, + Segment, + Sidebar, + Transition, + +} from 'semantic-ui-react' + +/* Responsive component was removed from Semantic UI. This is discussed here: https://github.com/Semantic-Org/Semantic-UI-React/pull/4008 */ + +const AppMedia = createMedia({ + breakpoints: { + mobile: 320, + tablet: 768, + computer: 992, + largeScreen: 1200, + widescreen: 1920 + } +}); + +const mediaStyles = AppMedia.createMediaStyle(); +const { Media } = AppMedia; + +/* eslint-disable react/no-multi-comp */ +/* Heads up! HomepageHeading uses inline styling, however it's not the best practice. Use CSS or styled components for + * such things. + */ +const HomepageHeading = ({ mobile }) => ( + +
+
+ +) + +/* +HomepageHeading.propTypes = { + mobile: PropTypes.bool, +} +*/ +/* Heads up! + * Neither Semantic UI nor Semantic UI React offer a responsive navbar, however, it can be implemented easily. + * It can be more complicated, but you can create really flexible markup. + */ + + +/* +General flow: + +- componentDidMount(): it will call fetchSystem() this will perform an HTTP request if Systems does not exist, and then add System to Props +*/ + +class DesktopContainer extends Component { + state = {} + + hideFixedMenu = () => this.setState({ fixed: false }) + showFixedMenu = () => this.setState({ fixed: true }) + + render() { + const { children } = this.props + const { fixed } = this.state + + return ( + +
+
+
+
+ + + + +
{process.env.REACT_APP_SITE_NAME}
+ Listen + About +
+
+ +
+
+ + {children} +
+ ) + } +} +/* +DesktopContainer.propTypes = { + children: PropTypes.node, +} +*/ +class MobileContainer extends Component { + state = {} + + handlePusherClick = () => { + const { sidebarOpened } = this.state + + if (sidebarOpened) this.setState({ sidebarOpened: false }) + } + + handleToggle = () => this.setState({ sidebarOpened: !this.state.sidebarOpened }) + + render() { + const { children } = this.props + const { sidebarOpened } = this.state + + return ( + + + + + Home + + Systems + About + + + +
+
+
+
+ + + + + + + + + {process.env.REACT_APP_SITE_NAME} + + + + +
+ {children} +
+
+
+ ) + } +} +/* +MobileContainer.propTypes = { + children: PropTypes.node, +} +*/ +const ResponsiveContainer = ({ children }) => ( +
+ {children} + {children} +
+) + +// ---------------------------------------------------- +class Main extends Component { + constructor(props) { + super(props); + this.advanceSystem = this.advanceSystem.bind(this); + this.state = { duration: 500, visible: true, currentSystem: 0} + } + + + + handleChange = (e, { name, value }) => this.setState({ [name]: value }) + + handleVisibility = () => this.setState({ visible: !this.state.visible }) + + advanceSystem() { + var currentSystem = this.state.currentSystem + 1; + if (currentSystem > this.props.system.items.length) { + currentSystem = 0; + } + this.setState({ visible: !this.state.visible, currentSystem }); + } + + componentDidMount() { + this.props.fetchSystems(); + this.interval = setInterval(() => this.advanceSystem(), 3000); + } + + componentWillUnmount() { + clearInterval(this.interval); + } + +//https://stackoverflow.com/questions/36559661/how-can-i-dispatch-from-child-components-in-react-redux +//https://stackoverflow.com/questions/42597602/react-onclick-pass-event-with-parameter +render() { + + const system = this.props.system.items[this.state.currentSystem]; + return ( + <> + + +
+ + + + + { system && ( + + this.props.changeUrl("/system/" + system.shortName)}/> + + )} + + + + + + + + + + + + + + +
+ All The Calls +
+

Every call, on every talkgroup is recorded

+
+ +
+ + Go back in time +
+

+ Missed a call? Not a problem, everything is archived! +

+
+
+
+
+ + +
+ Don't just scan, hear it all! +
+

+ Most large cities use trunked radio systems to get the most use out of their assigned radio spectrum. With trunked systems, the transmission are constantly hopping to different frequencies. Using a cheap Software Defined Radio (SDR), it is possible capture all of the transmission on a system. + Instead of scanning to a single frequency, SDR capturea wide swathes of spectrum, covering all of the frequencies a system could use. +

+ + Get Involved + +
+ Want to record your local radio system? +
+

+ Join us! Record a local radio system and share it with the world. If you have a spare computer, it is easy to get started. With a $25 SDR or two, you can capture an entire system. + It does take a little bit of work to get things setup, but we are here to help and answer questions. +

+ + + +
+
+
+ + + + + + + + +
+ The End +
+
+ + + + +
+
+
+
+ +
+ ); +} + +} + +export default Main; diff --git a/frontend/src/Main/MainContainer.js b/frontend/src/Main/MainContainer.js new file mode 100644 index 0000000..8ba167c --- /dev/null +++ b/frontend/src/Main/MainContainer.js @@ -0,0 +1,16 @@ +import { connect } from "react-redux" +import * as systemActions from "../System/system-actions" +import Main from "./Main" + +function mapStateToProps(state) { + return { + system: state.system + } +} + + + +export default connect( + mapStateToProps, + systemActions +)(Main) diff --git a/frontend/src/System/ListSystems.js b/frontend/src/System/ListSystems.js new file mode 100644 index 0000000..f5f8cf0 --- /dev/null +++ b/frontend/src/System/ListSystems.js @@ -0,0 +1,49 @@ +import React, { Component } from "react"; +import { Link } from 'react-router-dom' +import SystemCard from "./SystemCard"; +import { + Container, + Header, + Card, + Icon, + Menu, + Divider +} from "semantic-ui-react"; + + +// ---------------------------------------------------- +class ListSystems extends Component { + + state = { + requestMessage: "", + } + + componentDidMount() { + this.props.fetchSystems(); + } + +//https://stackoverflow.com/questions/36559661/how-can-i-dispatch-from-child-components-in-react-redux +//https://stackoverflow.com/questions/42597602/react-onclick-pass-event-with-parameter + render() { + const systems = this.props.system.items; + return ( +
+ + Home + About + + +
Radio Systems
+ + {systems.map((system) => + system.active&& this.props.changeUrl("/system/" + system.shortName)}/> + // this.props.changeUrl("/system/" + system.shortName)}/> + )} + +
+
+ ); + } +} + +export default ListSystems; diff --git a/frontend/src/System/ListSystemsContainer.js b/frontend/src/System/ListSystemsContainer.js new file mode 100644 index 0000000..9052b1f --- /dev/null +++ b/frontend/src/System/ListSystemsContainer.js @@ -0,0 +1,16 @@ +import { connect } from "react-redux" +import * as systemActions from "./system-actions" +import ListSystems from "./ListSystems" + +function mapStateToProps(state) { + return { + system: state.system + } +} + + + +export default connect( + mapStateToProps, + systemActions +)(ListSystems) diff --git a/frontend/src/System/SystemCard.js b/frontend/src/System/SystemCard.js new file mode 100644 index 0000000..62bc2e5 --- /dev/null +++ b/frontend/src/System/SystemCard.js @@ -0,0 +1,71 @@ +import React, { Component } from "react"; +import { + Card, + Icon, + Label, + Grid +} from "semantic-ui-react"; + + +class SystemCard extends Component { + + render() { + var location = ""; + const system = this.props.system; + var clientCount = ""; + var callAvg = ""; + var description = system.description; + if (this.props.keepShort && (description.length > 100)) { + description = description.substring(0, 96) + "..."; + } + if (system.callAvg) { + callAvg = Math.round(system.callAvg * 10) / 10 + " call/min" + } + if (system.clientCount === 1) { + clientCount = "1 listener"; + } else if (system.clientCount > 1) { + clientCount = system.clientCount + " listeners" + } + if (system) { + switch (system.systemType) { + case "state": + location = system.state; + break; + case "city": + location = system.city + ", " + system.state; + break; + case "county": + location = system.county + ", " + system.state; + break; + case "international": + location = system.country; + break; + default: + location = system.city + ", " + system.state; + } + } + return ( + + + {system.name} + {system.screenName && } + + + + + {location} + + + {clientCount &&
{clientCount}
} +
+ + {callAvg &&
{callAvg}
} +
+
+
+
+ ); + } +} + +export default SystemCard; diff --git a/frontend/src/System/system-actions.js b/frontend/src/System/system-actions.js new file mode 100644 index 0000000..03d7514 --- /dev/null +++ b/frontend/src/System/system-actions.js @@ -0,0 +1,77 @@ +import axios from "axios"; +//import { browserHistory } from "react-router" +import * as types from "./system-constants"; +import { push } from 'connected-react-router'; + +const FETCH_SUCCESS_STATISTIC = "FETCH_SUCCESS_STATISTIC" + +function beginFetchSystem() { + return { type: types.FETCH_SYSTEM }; +} + +function fetchSystemSuccess(data) { + return { type: types.FETCH_SUCCESS_SYSTEM, + data }; +} + +function fetchSystemError(data) { + return { type: types.FETCH_ERROR_SYSTEM, + data }; +} + + +function makeUserRequest(method, data, api = "/login") { + // returns a Promise + return axios({ + method: method, + url: api, + data: 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 shouldFetchSystems(state, subreddit) { + if ((!state.system.items) || (state.system.items.length <1)) { + return true + } else if (state.system.isWaiting) { + return false + } else { + return false + } +} + + + +export function fetchSystems() { + return (dispatch, getState) => { + if (shouldFetchSystems(getState())) { + dispatch(beginFetchSystem()); + + return axios + .get(process.env.REACT_APP_BACKEND_SERVER + "/systems") + .then(response => { + if (response.data.success) { + dispatch(fetchSystemSuccess(response.data.systems)); + } else { + dispatch(fetchSystemError()); + 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/System/system-constants.js b/frontend/src/System/system-constants.js new file mode 100644 index 0000000..e14527b --- /dev/null +++ b/frontend/src/System/system-constants.js @@ -0,0 +1,3 @@ +export const FETCH_SYSTEM = "FETCH_SYSTEM" +export const FETCH_SUCCESS_SYSTEM = "FETCH_SUCCESS_SYSTEM" +export const FETCH_ERROR_SYSTEM = "FETCH_ERROR_SYSTEM" diff --git a/frontend/src/System/system-reducer.js b/frontend/src/System/system-reducer.js new file mode 100644 index 0000000..e7a790b --- /dev/null +++ b/frontend/src/System/system-reducer.js @@ -0,0 +1,71 @@ +import { + CREATE_SYSTEM, + CREATE_SUCCESS_SYSTEM, + CREATE_ERROR_SYSTEM, + UPDATE_SYSTEM, + UPDATE_SUCCESS_SYSTEM, + UPDATE_ERROR_SYSTEM, + DELETE_SYSTEM, + DELETE_SUCCESS_SYSTEM, + DELETE_ERROR_SYSTEM, + FETCH_SYSTEM, + FETCH_SUCCESS_SYSTEM, + FETCH_ERROR_SYSTEM +} from "./system-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 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 system = ( + state = { + isWaiting: false, + items: []}, + action +) => { + switch (action.type) { + + case FETCH_SYSTEM: + + return Object.assign({}, state, { isWaiting: true}); + + + case FETCH_SUCCESS_SYSTEM: + const activeSystems = action.data.filter(system =>{ + if (system.active) {return true} + return false; + }); + return Object.assign({}, state, { + isWaiting: false, + items: activeSystems + }); + + case FETCH_ERROR_SYSTEM: + return Object.assign({}, state, { + isWaiting: false + }); + + default: + return state; + } +}; + +export default system; diff --git a/frontend/src/index.js b/frontend/src/index.js index 1f0dcb3..7f8c092 100644 --- a/frontend/src/index.js +++ b/frontend/src/index.js @@ -3,10 +3,14 @@ import ReactDOM from 'react-dom'; import { Provider } from 'react-redux' import { Route, Switch } from 'react-router' // react-router v4/v5 import { ConnectedRouter } from 'connected-react-router' -import configureStore, { history } from './app/configureStore' +import configureStore, { history } from './redux-router/configureStore' +import 'semantic-ui-css/semantic.min.css' -import App from './App'; +// Main +import MainContainer from "./Main/MainContainer" +// System +import ListSystemsContainer from "./System/ListSystemsContainer" const store = configureStore(/* provide initial state if any */) @@ -15,7 +19,8 @@ ReactDOM.render( { /* place ConnectedRouter under Provider */ } <> { /* your usual react-router v4/v5 routing */ } - ()} /> + + (
Miss
)} />
diff --git a/frontend/src/app/configureStore.js b/frontend/src/redux-router/configureStore.js similarity index 100% rename from frontend/src/app/configureStore.js rename to frontend/src/redux-router/configureStore.js diff --git a/frontend/src/app/reducers.js b/frontend/src/redux-router/reducers.js similarity index 76% rename from frontend/src/app/reducers.js rename to frontend/src/redux-router/reducers.js index b9a605b..7e1dd4e 100644 --- a/frontend/src/app/reducers.js +++ b/frontend/src/redux-router/reducers.js @@ -2,11 +2,11 @@ // from https://github.com/supasate/connected-react-router import { combineReducers } from 'redux' import { connectRouter } from 'connected-react-router' -import counterReducer from '../features/counter/counterSlice'; +import systemReducer from "../System/system-reducer" const createRootReducer = (history) => combineReducers({ router: connectRouter(history), - counter: counterReducer, + system: systemReducer, }) export default createRootReducer diff --git a/frontend/src/resources/DidactGothic-Regular.ttf b/frontend/src/resources/DidactGothic-Regular.ttf new file mode 100755 index 0000000000000000000000000000000000000000..62bdba3d228333644a2d184d9fe95c999bce796b GIT binary patch literal 194200 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 )YIk6$^3})KuP3_g-c9*e6~}KpSG@>=w0bq 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

G<;_`;Ae`r){3nMU(9=P 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 literal 0 HcmV?d00001 diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 1c82f07..e025828 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2,6 +2,10 @@ # yarn lockfile v1 +"@artsy/fresnel@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@artsy/fresnel/-/fresnel-1.3.1.tgz#1df2ea9bb7b6a1a4e7ae9aa837f2af1a402ee3cf" + "@babel/code-frame@7.10.4", "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.5.5": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" @@ -968,7 +972,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.4.2", "@babel/runtime@^7.5.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.5.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" dependencies: @@ -1038,6 +1042,19 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@fluentui/react-component-event-listener@~0.51.1": + version "0.51.4" + resolved "https://registry.yarnpkg.com/@fluentui/react-component-event-listener/-/react-component-event-listener-0.51.4.tgz#4d3173a947a827973ba522ef7e1d2303694d0157" + dependencies: + "@babel/runtime" "^7.10.4" + +"@fluentui/react-component-ref@~0.51.1": + version "0.51.4" + resolved "https://registry.yarnpkg.com/@fluentui/react-component-ref/-/react-component-ref-0.51.4.tgz#d538ae42642ee267c180e0a2c95ea417c1fbcbeb" + dependencies: + "@babel/runtime" "^7.10.4" + react-is "^16.6.3" + "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" @@ -1291,7 +1308,7 @@ schema-utils "^2.6.5" source-map "^0.7.3" -"@popperjs/core@^2.5.3": +"@popperjs/core@^2.5.2": version "2.6.0" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.6.0.tgz#f022195afdfc942e088ee2101285a1d31c7d727f" @@ -1304,17 +1321,6 @@ redux-thunk "^2.3.0" reselect "^4.0.0" -"@restart/context@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@restart/context/-/context-2.1.4.tgz#a99d87c299a34c28bd85bb489cb07bfd23149c02" - -"@restart/hooks@^0.3.21", "@restart/hooks@^0.3.25": - version "0.3.25" - resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.3.25.tgz#11004139ad1c70d2f5965a8939dcb5aeb96aa652" - dependencies: - lodash "^4.17.15" - lodash-es "^4.17.15" - "@rollup/plugin-node-resolve@^7.1.1": version "7.1.3" resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca" @@ -1340,6 +1346,13 @@ estree-walker "^1.0.1" picomatch "^2.2.2" +"@semantic-ui-react/event-stack@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@semantic-ui-react/event-stack/-/event-stack-3.1.1.tgz#3263d17511db81a743167fe45281a24b3eb6b3c8" + dependencies: + exenv "^1.2.2" + prop-types "^15.6.2" + "@sheerun/mutationobserver-shim@^0.3.2": version "0.3.3" resolved "https://registry.yarnpkg.com/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz#5405ee8e444ed212db44e79351f0c70a582aae25" @@ -1540,10 +1553,6 @@ dependencies: "@babel/types" "^7.3.0" -"@types/classnames@^2.2.10": - version "2.2.11" - resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.11.tgz#2521cc86f69d15c5b90664e4829d84566052c1cf" - "@types/eslint@^7.2.4": version "7.2.5" resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.5.tgz#92172ecf490c2fce4b076739693d75f30376d610" @@ -1576,10 +1585,6 @@ version "5.1.1" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" -"@types/invariant@^2.2.33": - version "2.2.34" - resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.34.tgz#05e4f79f465c2007884374d4795452f995720bbe" - "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" @@ -1631,7 +1636,7 @@ version "2.1.5" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.1.5.tgz#b6ab3bba29e16b821d84e09ecfaded462b816b00" -"@types/prop-types@*", "@types/prop-types@^15.7.3": +"@types/prop-types@*": version "15.7.3" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" @@ -1645,12 +1650,6 @@ dependencies: "@types/react" "*" -"@types/react-transition-group@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.0.tgz#882839db465df1320e4753e6e9f70ca7e9b4d46d" - dependencies: - "@types/react" "*" - "@types/react@*": version "17.0.0" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.0.tgz#5af3eb7fad2807092f0046a1302b7823e27919b8" @@ -1658,13 +1657,6 @@ "@types/prop-types" "*" csstype "^3.0.2" -"@types/react@^16.9.11", "@types/react@^16.9.35": - version "16.14.2" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.2.tgz#85dcc0947d0645349923c04ccef6018a1ab7538c" - dependencies: - "@types/prop-types" "*" - csstype "^3.0.2" - "@types/resolve@0.0.8": version "0.0.8" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" @@ -1709,10 +1701,6 @@ dependencies: source-map "^0.6.1" -"@types/warning@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/warning/-/warning-3.0.0.tgz#0d2501268ad8f9962b740d387c4654f5f8e23e52" - "@types/webpack-sources@*": version "2.0.0" resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.0.0.tgz#08216ab9be2be2e1499beaebc4d469cec81e82a7" @@ -2288,6 +2276,12 @@ axe-core@^4.0.2: version "4.1.1" resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.1.tgz#70a7855888e287f7add66002211a423937063eaf" +axios@0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + dependencies: + follow-redirects "^1.10.0" + axobject-query@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" @@ -2538,10 +2532,6 @@ boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" -bootstrap@4.5.3: - version "4.5.3" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.5.3.tgz#c6a72b355aaf323920be800246a6e4ef30997fe6" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2919,10 +2909,6 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -classnames@^2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" - clean-css@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" @@ -2957,6 +2943,10 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" +clsx@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -3702,13 +3692,6 @@ dom-converter@^0.2: dependencies: utila "~0.4" -dom-helpers@^5.0.1, dom-helpers@^5.1.2, dom-helpers@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.0.tgz#57fd054c5f8f34c52a3eeffdb7e7e93cd357d95b" - dependencies: - "@babel/runtime" "^7.8.7" - csstype "^3.0.2" - dom-serializer@0: version "0.2.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" @@ -4256,6 +4239,10 @@ execa@^4.0.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +exenv@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -4523,6 +4510,10 @@ follow-redirects@^1.0.0: version "1.13.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" +follow-redirects@^1.10.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7" + for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -5167,12 +5158,6 @@ internal-slot@^1.0.2: has "^1.0.3" side-channel "^1.0.2" -invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - dependencies: - loose-envify "^1.0.0" - ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" @@ -5941,6 +5926,10 @@ jest@26.6.0: import-local "^3.0.2" jest-cli "^26.6.0" +jquery@x.*: + version "3.5.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5" + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -6065,6 +6054,10 @@ jsprim@^1.2.2: array-includes "^3.1.1" object.assign "^4.1.1" +keyboard-key@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/keyboard-key/-/keyboard-key-1.1.0.tgz#6f2e8e37fa11475bb1f1d65d5174f1b35653f5b7" + killable@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" @@ -7836,13 +7829,6 @@ prompts@2.4.0, prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types-extra@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.1.tgz#58c3b74cbfbb95d304625975aa2f0848329a010b" - dependencies: - react-is "^16.3.2" - warning "^4.0.0" - prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" @@ -7985,29 +7971,6 @@ react-app-polyfill@^2.0.0: regenerator-runtime "^0.13.7" whatwg-fetch "^3.4.1" -react-bootstrap@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-1.4.0.tgz#806a8b48b065cedfb28c6c5c7b0c0e3c3b53445d" - dependencies: - "@babel/runtime" "^7.4.2" - "@restart/context" "^2.1.4" - "@restart/hooks" "^0.3.21" - "@types/classnames" "^2.2.10" - "@types/invariant" "^2.2.33" - "@types/prop-types" "^15.7.3" - "@types/react" "^16.9.35" - "@types/react-transition-group" "^4.4.0" - "@types/warning" "^3.0.0" - classnames "^2.2.6" - dom-helpers "^5.1.2" - invariant "^2.2.4" - prop-types "^15.7.2" - prop-types-extra "^1.1.0" - react-overlays "^4.1.0" - react-transition-group "^4.4.1" - uncontrollable "^7.0.0" - warning "^4.0.3" - react-dev-utils@^11.0.1: version "11.0.1" resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-11.0.1.tgz#30106c2055acfd6b047d2dc478a85c356e66fe45" @@ -8049,7 +8012,11 @@ react-error-overlay@^6.0.8: version "6.0.8" resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.8.tgz#474ed11d04fc6bda3af643447d85e9127ed6b5de" -react-is@^16.12.0, react-is@^16.13.1, react-is@^16.3.2, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4: +react-fast-compare@^3.0.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" + +react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.6.3, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" @@ -8057,22 +8024,12 @@ react-is@^17.0.1: version "17.0.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" -react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - -react-overlays@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-4.1.1.tgz#0060107cbe1c5171a744ccda3fbf0556d064bc5f" +react-popper@^2.2.3: + version "2.2.4" + resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.2.4.tgz#d2ad3d2474ac9f1abf93df3099d408e5aa6a2e22" dependencies: - "@babel/runtime" "^7.12.1" - "@popperjs/core" "^2.5.3" - "@restart/hooks" "^0.3.25" - "@types/warning" "^3.0.0" - dom-helpers "^5.2.0" - prop-types "^15.7.2" - uncontrollable "^7.0.0" - warning "^4.0.3" + react-fast-compare "^3.0.1" + warning "^4.0.2" react-redux@^7.1.3: version "7.2.2" @@ -8180,15 +8137,6 @@ react-scripts@4.0.1: optionalDependencies: fsevents "^2.1.3" -react-transition-group@^4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.1.tgz#63868f9325a38ea5ee9535d828327f85773345c9" - dependencies: - "@babel/runtime" "^7.5.5" - dom-helpers "^5.0.1" - loose-envify "^1.4.0" - prop-types "^15.6.2" - react@^17.0.1: version "17.0.1" resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127" @@ -8693,6 +8641,30 @@ selfsigned@^1.10.7: dependencies: node-forge "^0.10.0" +semantic-ui-css@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/semantic-ui-css/-/semantic-ui-css-2.4.1.tgz#f5aea39fafb787cbd905ec724272a3f9cba9004a" + dependencies: + jquery x.* + +semantic-ui-react@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/semantic-ui-react/-/semantic-ui-react-2.0.1.tgz#a69aa65001c437ae0b3ed747d1f43ee5b4e88407" + dependencies: + "@babel/runtime" "^7.10.5" + "@fluentui/react-component-event-listener" "~0.51.1" + "@fluentui/react-component-ref" "~0.51.1" + "@popperjs/core" "^2.5.2" + "@semantic-ui-react/event-stack" "^3.1.0" + clsx "^1.1.1" + keyboard-key "^1.1.0" + lodash "^4.17.19" + lodash-es "^4.17.15" + prop-types "^15.7.2" + react-is "^16.8.6" + react-popper "^2.2.3" + shallowequal "^1.1.0" + "semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -8798,6 +8770,10 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -9581,15 +9557,6 @@ typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -uncontrollable@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-7.1.1.tgz#f67fed3ef93637126571809746323a9db815d556" - dependencies: - "@babel/runtime" "^7.6.3" - "@types/react" "^16.9.11" - invariant "^2.2.4" - react-lifecycles-compat "^3.0.4" - unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -9828,7 +9795,7 @@ walker@^1.0.7, walker@~1.0.5: dependencies: makeerror "1.0.x" -warning@^4.0.0, warning@^4.0.3: +warning@^4.0.2: version "4.0.3" resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" dependencies: