From 84ef980c425539b0d7f0dd403288d28150193a0c Mon Sep 17 00:00:00 2001 From: James Ketrenos Date: Thu, 30 Mar 2023 11:24:27 -0700 Subject: [PATCH] Seeding with chat subsystem from peddlers of ketran Signed-off-by: James Ketrenos --- client/.babelrc | 4 + client/src/App.js | 7 +- client/src/MediaControl.css | 92 ++ client/src/MediaControl.js | 711 ++++++++++++++ client/src/PlayerColor.css | 20 + client/src/PlayerColor.js | 17 + client/src/PlayerList.css | 137 +++ client/src/PlayerList.js | 177 ++++ client/src/PlayerName.css | 17 + client/src/PlayerName.js | 37 + client/src/PlayersStatus.css | 204 ++++ client/src/PlayersStatus.js | 211 +++++ client/src/setupProxy.js | 12 + server/.gitignore | 2 + server/app.js | 120 +++ server/config/.gitignore | 1 + server/config/default.json | 19 + server/config/production.json | 1 + server/db/chat.js | 44 + server/db/users.js | 70 ++ server/lib/basepath.js | 9 + server/lib/console-line.js | 30 + server/package.json | 15 +- server/routes/basepath.js | 33 + server/routes/chat.js | 1659 +++++++++++++++++++++++++++++++++ server/routes/index.js | 66 ++ server/routes/users.js | 283 ++++++ 27 files changed, 3990 insertions(+), 8 deletions(-) create mode 100644 client/.babelrc create mode 100644 client/src/MediaControl.css create mode 100644 client/src/MediaControl.js create mode 100644 client/src/PlayerColor.css create mode 100644 client/src/PlayerColor.js create mode 100644 client/src/PlayerList.css create mode 100644 client/src/PlayerList.js create mode 100644 client/src/PlayerName.css create mode 100644 client/src/PlayerName.js create mode 100644 client/src/PlayersStatus.css create mode 100644 client/src/PlayersStatus.js create mode 100644 client/src/setupProxy.js create mode 100644 server/.gitignore mode change 100644 => 100755 server/app.js create mode 100644 server/config/.gitignore create mode 100755 server/config/default.json create mode 100644 server/config/production.json create mode 100755 server/db/chat.js create mode 100755 server/db/users.js create mode 100755 server/lib/basepath.js create mode 100755 server/lib/console-line.js create mode 100644 server/routes/basepath.js create mode 100755 server/routes/chat.js create mode 100755 server/routes/index.js create mode 100755 server/routes/users.js diff --git a/client/.babelrc b/client/.babelrc new file mode 100644 index 0000000..6e867f9 --- /dev/null +++ b/client/.babelrc @@ -0,0 +1,4 @@ +{ + "presets": [ "@babel/env", "@babel/preset-react" ], + "plugins": [ "@babel/plugin-proposal-class-properties" ] +} diff --git a/client/src/App.js b/client/src/App.js index 4de268a..b1425f5 100644 --- a/client/src/App.js +++ b/client/src/App.js @@ -1,13 +1,10 @@ import './App.css'; +import { PlayerList } from './PlayerList'; function App() { return (
-
-

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

-
+
); } diff --git a/client/src/MediaControl.css b/client/src/MediaControl.css new file mode 100644 index 0000000..8ee364a --- /dev/null +++ b/client/src/MediaControl.css @@ -0,0 +1,92 @@ +.MediaControlSpacer { + display: flex; + width: 5rem; + min-width: 5rem; + height: 3.75rem; + min-height: 3.75rem; + background-color: #444; + border-radius: 0.25rem; +} + +.MediaControlSpacer.Medium { + width: 11.5em; + height: 8.625em; + min-width: 11.5em; + min-height: 8.625em; +} + + +.MediaControl { + display: flex; + position: fixed; + flex-direction: row; + justify-content: flex-end; + align-items: center; + width: 5rem; + height: 3.75rem; + min-width: 5rem; + min-height: 3.75rem; + z-index: 50000; +} + +.MediaControl .Video { + position: relative; + width: 100%; + height: 100%; + background-color: #444; + border-radius: 0.25rem; + border: 1px solid black; +} + +.MediaControl.Medium { + width: 11.5em; + height: 8.625em; + min-width: 11.5em; + min-height: 8.625em; +} + +.MediaControl > div { + display: flex; + position: absolute; + top: 0; + left: 0; + display: flex; + flex-direction: column; + align-items: center; + margin-right: 0.25rem; +} + +.MediaControl .Controls { + display: flex; + position: absolute; + left: 0.5em; + bottom: 0.5em; + justify-content: flex-end; + z-index: 1; +} + +.MediaControl.Small .Controls { + left: 0; + bottom: unset; + justify-content: center; +} + +.MediaControl .Controls > div { + display: flex; + border-radius: 0.25em; + cursor: pointer; + padding: 0.25em; +} + +.MediaControl .Controls > div:hover { + background-color: #d0d0d0; +} + +.moveable-control-box { + border: none; + --moveable-color: unset !important; +} + +.moveable-control-box .moveable-direction { + border: none !important; +} \ No newline at end of file diff --git a/client/src/MediaControl.js b/client/src/MediaControl.js new file mode 100644 index 0000000..b2fd10a --- /dev/null +++ b/client/src/MediaControl.js @@ -0,0 +1,711 @@ +import React, { useState, useEffect, useRef, useCallback, + useContext } from "react"; +import Moveable from "react-moveable"; + +import "./MediaControl.css"; + +import VolumeOff from '@mui/icons-material/VolumeOff'; +import VolumeUp from '@mui/icons-material/VolumeUp'; +import MicOff from '@mui/icons-material/MicOff'; +import Mic from '@mui/icons-material/Mic'; +import VideocamOff from '@mui/icons-material/VideocamOff'; +import Videocam from '@mui/icons-material/Videocam'; + +import { GlobalContext } from "./GlobalContext.js"; +const debug = true; + +/* Proxy object so we can pass in srcObject to