summaryrefslogtreecommitdiff
path: root/frontend/src/components
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/components')
-rw-r--r--frontend/src/components/Logo.tsx12
-rw-r--r--frontend/src/components/ProtectedRoute.tsx18
2 files changed, 30 insertions, 0 deletions
diff --git a/frontend/src/components/Logo.tsx b/frontend/src/components/Logo.tsx
new file mode 100644
index 0000000..4488a7e
--- /dev/null
+++ b/frontend/src/components/Logo.tsx
@@ -0,0 +1,12 @@
+import logo from "../assets/robot-outline.svg";
+
+function Logo() {
+ return (
+ <div className="logo">
+ <img src={logo} alt="Robot Tracker Logo" />
+ <h1>Robot Tracker</h1>
+ </div>
+ );
+}
+
+export default Logo;
diff --git a/frontend/src/components/ProtectedRoute.tsx b/frontend/src/components/ProtectedRoute.tsx
new file mode 100644
index 0000000..a9d233c
--- /dev/null
+++ b/frontend/src/components/ProtectedRoute.tsx
@@ -0,0 +1,18 @@
+import type { ReactNode } from "react";
+import { Navigate } from "react-router-dom";
+
+type Props = {
+ children: ReactNode;
+};
+
+function ProtectedRoute({ children }: Props) {
+ const token = localStorage.getItem("token-robot-tracker");
+
+ if (!token || token === "undefined" || token === "null") {
+ return <Navigate to="/login" replace />;
+ }
+
+ return children;
+}
+
+export default ProtectedRoute;