From c036c0a265b18b14ddee1abe29d92bc2e3177e33 Mon Sep 17 00:00:00 2001
From: Noel Simbolon <84700640+noelsimbolon@users.noreply.github.com>
Date: Fri, 17 Nov 2023 03:02:19 +0700
Subject: [PATCH] resolve merge conflicts

---
 src/TonalityApp.tsx           | 21 +++++------
 src/routes/ProtectedRoute.tsx | 18 +++++----
 src/routes/RenderRoutes.tsx   | 69 ++++++++++++++++++++---------------
 3 files changed, 60 insertions(+), 48 deletions(-)

diff --git a/src/TonalityApp.tsx b/src/TonalityApp.tsx
index 7a6f9b8..16bda2f 100644
--- a/src/TonalityApp.tsx
+++ b/src/TonalityApp.tsx
@@ -1,21 +1,20 @@
-import './App.css'
-import React from 'react'
+import "./App.css";
+import React from "react";
 import { RenderRoutes } from "@/routes/RenderRoutes.tsx";
-import {routes} from "@/routes/routes.ts";
+import { routes } from "@/routes/routes.ts";
 import AuthProvider from "@/context/AuthProvider.tsx";
 
-export const AuthContext = React.createContext(null)
+export const AuthContext = React.createContext(null);
 
-export const useAuth = () => React.useContext(AuthContext)
+export const useAuth = () => React.useContext(AuthContext);
 
-export const Routes = RenderRoutes(routes)
+export const Routes: React.ReactNode = RenderRoutes(routes);
 
 const TonalityApp = () => {
-
   return (
     <AuthProvider>
-      <Routes/>
+      <Routes />
     </AuthProvider>
-  )
-}
-export default TonalityApp
+  );
+};
+export default TonalityApp;
diff --git a/src/routes/ProtectedRoute.tsx b/src/routes/ProtectedRoute.tsx
index c1e81a4..e5a0107 100644
--- a/src/routes/ProtectedRoute.tsx
+++ b/src/routes/ProtectedRoute.tsx
@@ -1,9 +1,13 @@
-import {Navigate, Outlet,} from 'react-router-dom';
-import {useAuth} from "@/TonalityApp.tsx";
+import { Navigate, Outlet } from "react-router-dom";
+import { useAuth } from "@/TonalityApp.tsx";
 
-const ProtectedRoute = ({isPublic}) => {
-  const isValidUser : boolean = useAuth().token === null;
-  return (isValidUser || isPublic) ? <Outlet/> : <Navigate to='/login'/>
-}
+const ProtectedRoute = ({ isPublic }) => {
+  const isValidUser: boolean = useAuth().token === null;
+  return isValidUser || isPublic ? <Outlet /> : <Navigate to="/login" />;
+};
 
-export default ProtectedRoute;
\ No newline at end of file
+const ProtectedRoute = ({ isPublic, isAuthorized }) => {
+  return isPublic || isAuthorized ? <Outlet /> : <Navigate to="/login" />;
+};
+
+export default ProtectedRoute;
diff --git a/src/routes/RenderRoutes.tsx b/src/routes/RenderRoutes.tsx
index 5e4cf51..2c275da 100644
--- a/src/routes/RenderRoutes.tsx
+++ b/src/routes/RenderRoutes.tsx
@@ -1,43 +1,52 @@
-import React from 'react';
-import {Route, Routes} from 'react-router-dom';
+import React from "react";
+import { Route, Routes } from "react-router-dom";
 import ProtectedRoute from "@/routes/ProtectedRoute.tsx";
-import {generateFlattenRoutes} from "@/lib/utils.ts";
-export const RenderRoutes  : React.FC = (mainRoutes) => {
-  return ({isAuthorized}) => {
-    const layouts = mainRoutes.map(({layout: Layout, routes}, index) => {
+import { generateFlattenRoutes } from "@/lib/utils.ts";
+
+export const RenderRoutes: React.FC = (mainRoutes) => {
+  return ({ isAuthorized }) => {
+    const layouts = mainRoutes.map(({ layout: Layout, routes }, index) => {
       const subRoutes = generateFlattenRoutes(routes);
 
-      subRoutes.map(({component: Component, path, name}) => {
-        console.log('component', Component)
-        console.log('path', path)
-        console.log('name', name)
-      })
+      subRoutes.map(({ component: Component, path, name }) => {
+        console.log("component", Component);
+        console.log("path", path);
+        console.log("name", name);
+      });
 
       return (
-        <Route key={index} element={<Layout/>}>
-          {subRoutes.map(({component: Component, path, name, isPublic}, index) => {
-            const isPublics : boolean = typeof isPublic === 'boolean' ? isPublic : false;
-            const componentFound = Component !== undefined;
-            if (!componentFound) return null;
+        <Route key={index} element={<Layout />}>
+          {subRoutes.map(
+            ({ component: Component, path, name, isPublic }, index) => {
+              const isPublics: boolean =
+                typeof isPublic === "boolean" ? isPublic : false;
+              const componentFound = Component !== undefined;
+              if (!componentFound) return null;
 
-            return (
-              (<Route key={index} element={<ProtectedRoute isPublic={isPublics} isAuthorized={isAuthorized}/>}>)
-                && Component
-                && path
-                && (<Route key={name} element={<Component/>} path={path}/>)
-                && (</Route>)
-            )
-          })}
+              return (
+                <Route
+                  key={index}
+                  element={
+                    <ProtectedRoute
+                      isPublic={isPublics}
+                      isAuthorized={isAuthorized}
+                    />
+                  }
+                >
+                  ) && Component && path && (
+                  <Route key={name} element={<Component />} path={path} />) && (
+                </Route>
+              );
+            },
+          )}
         </Route>
-      )
+      );
     });
-    console.log('layouts', layouts)
+    console.log("layouts", layouts);
     return (
       <Routes>
-        <>
-          {layouts}
-        </>
+        <>{layouts}</>
       </Routes>
     );
   };
-}
+};
-- 
GitLab