From 60c19b305291a6f80ed69d5ab7ac62f515ae205b Mon Sep 17 00:00:00 2001 From: Chris-1010 <122332721@umail.ucc.ie> Date: Tue, 4 Feb 2025 14:59:18 +0000 Subject: [PATCH] UPDATE: Fix to stream/userpage routing, Added UserPage and Tidy to code; Added ability to visit a user's profile page from their stream; Cleaned up code formatting, primarily changing from single quotes to double quotes; Removed unused SignupForm component; --- frontend/package-lock.json | 2 +- frontend/src/App.tsx | 34 +++-- frontend/src/components/Auth/AuthModal.tsx | 24 ++-- frontend/src/components/Auth/LoginForm.tsx | 2 +- frontend/src/components/Auth/RegisterForm.tsx | 8 +- frontend/src/components/Auth/SignupForm.tsx | 1 - .../src/components/Checkout/CheckoutForm.tsx | 10 +- frontend/src/components/Layout/ListRow.tsx | 6 +- frontend/src/components/Layout/Logo.tsx | 8 +- frontend/src/components/Layout/Navbar.tsx | 32 +++-- .../src/components/Stream/StreamerRoute.tsx | 19 ++- frontend/src/components/Stream/Thumbnail.tsx | 23 ++-- frontend/src/components/Video/ChatPanel.tsx | 14 +- frontend/src/components/Video/VideoPlayer.tsx | 4 +- frontend/src/context/AuthContext.tsx | 2 +- frontend/src/context/StreamsContext.tsx | 2 +- frontend/src/main.tsx | 14 +- frontend/src/pages/HomePage.tsx | 26 +++- frontend/src/pages/NotFoundPage.tsx | 9 +- frontend/src/pages/UserPage.tsx | 122 +++++++++++++++++- frontend/src/pages/VideoPage.tsx | 18 +-- web_server/blueprints/streams.py | 36 +++--- web_server/utils/recommendation_utils.py | 10 +- web_server/utils/stream_utils.py | 49 +++---- 24 files changed, 325 insertions(+), 150 deletions(-) delete mode 100644 frontend/src/components/Auth/SignupForm.tsx diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 1e356ee..fc9eef0 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -32,7 +32,7 @@ "tailwindcss": "^3.4.17", "typescript": "~5.6.2", "typescript-eslint": "^8.18.2", - "vite": "^6.0.5" + "vite": "latest" } }, "node_modules/@alloc/quick-lru": { diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 2cabd53..3d498ee 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -5,6 +5,7 @@ import { BrowserRouter, Routes, Route } from "react-router-dom"; import HomePage from "./pages/HomePage"; import StreamerRoute from "./components/Stream/StreamerRoute"; import NotFoundPage from "./pages/NotFoundPage"; +import UserPage from "./pages/UserPage"; function App() { const [isLoggedIn, setIsLoggedIn] = useState(false); @@ -24,19 +25,26 @@ function App() { }, []); return ( - - - - - : } - /> - } /> - } /> - - - + + + + + : + } + /> + + } /> + } /> + + } /> + + + ); } diff --git a/frontend/src/components/Auth/AuthModal.tsx b/frontend/src/components/Auth/AuthModal.tsx index ac224be..7fa8c9e 100644 --- a/frontend/src/components/Auth/AuthModal.tsx +++ b/frontend/src/components/Auth/AuthModal.tsx @@ -5,14 +5,13 @@ import LoginForm from "./LoginForm"; import RegisterForm from "./RegisterForm"; import "../../assets/styles/auth.css"; - interface AuthModalProps { onClose: () => void; } const AuthModal: React.FC = ({ onClose }) => { const [selectedTab, setSelectedTab] = useState("Login"); - const [spinDuration, setSpinDuration] = useState("7s") + const [spinDuration, setSpinDuration] = useState("7s"); const handleSubmit = () => { setSpinDuration("1s"); @@ -25,21 +24,26 @@ const AuthModal: React.FC = ({ onClose }) => { return ( <> {/*Background Blur*/} -
+
{/*Container*/}
- - {/*Border Container*/} -
+
-
- {selectedTab === "Login" ? : } + {selectedTab === "Login" ? ( + + ) : ( + + )}
diff --git a/frontend/src/components/Auth/LoginForm.tsx b/frontend/src/components/Auth/LoginForm.tsx index 84ebd8b..6e48d60 100644 --- a/frontend/src/components/Auth/LoginForm.tsx +++ b/frontend/src/components/Auth/LoginForm.tsx @@ -16,7 +16,7 @@ interface FormErrors { //Speed up border animation interface SubmitProps { - onSubmit: () => void; + onSubmit: () => void; } const LoginForm: React.FC = ({ onSubmit }) => { diff --git a/frontend/src/components/Auth/RegisterForm.tsx b/frontend/src/components/Auth/RegisterForm.tsx index 8f3e9bc..6bf6059 100644 --- a/frontend/src/components/Auth/RegisterForm.tsx +++ b/frontend/src/components/Auth/RegisterForm.tsx @@ -19,7 +19,7 @@ interface FormErrors { } interface SubmitProps { - onSubmit: () => void; + onSubmit: () => void; } const RegisterForm: React.FC = ({ onSubmit }) => { @@ -115,7 +115,7 @@ const RegisterForm: React.FC = ({ onSubmit }) => { {errors.general && (

{errors.general}

)} - + {errors.username && (

{errors.username}

)} @@ -126,6 +126,7 @@ const RegisterForm: React.FC = ({ onSubmit }) => { onChange={handleInputChange} extraClasses={`${errors.username ? "border-red-500" : ""}`} /> + {errors.email && (

{errors.email}

)} @@ -137,6 +138,7 @@ const RegisterForm: React.FC = ({ onSubmit }) => { onChange={handleInputChange} extraClasses={`${errors.email ? "border-red-500" : ""}`} /> + {errors.password && (

{errors.password}

)} @@ -148,6 +150,7 @@ const RegisterForm: React.FC = ({ onSubmit }) => { onChange={handleInputChange} extraClasses={`${errors.password ? "border-red-500" : ""}`} /> + {errors.confirmPassword && (

{errors.confirmPassword}

)} @@ -159,6 +162,7 @@ const RegisterForm: React.FC = ({ onSubmit }) => { onChange={handleInputChange} extraClasses={`${errors.confirmPassword ? "border-red-500" : ""}`} /> + ); diff --git a/frontend/src/components/Auth/SignupForm.tsx b/frontend/src/components/Auth/SignupForm.tsx deleted file mode 100644 index 6c12933..0000000 --- a/frontend/src/components/Auth/SignupForm.tsx +++ /dev/null @@ -1 +0,0 @@ -// signup.html \ No newline at end of file diff --git a/frontend/src/components/Checkout/CheckoutForm.tsx b/frontend/src/components/Checkout/CheckoutForm.tsx index e1a0914..00e4a8c 100644 --- a/frontend/src/components/Checkout/CheckoutForm.tsx +++ b/frontend/src/components/Checkout/CheckoutForm.tsx @@ -67,8 +67,14 @@ const CheckoutForm: React.FC = ({ onClose }) => { return ( <> -
-