9 Commits

27 changed files with 121 additions and 107 deletions
@@ -1,7 +1,10 @@
.favicon {
position: relative;
top: 5px;
margin-left: 10px;
max-width: 250px;
max-height: 250px;
width: 100%;
height: 100%;
}
/* googleBtn */
@@ -104,7 +104,7 @@ const ForgotPasswordForm = () => {
<Box as="div" textAlign="center" mt="20px">
<Link
href="/authentication/sign-in/"
href="/auth/sign-in/"
className="primaryColor text-decoration-none"
>
<i className="ri-arrow-left-s-line"></i> Back to Sign in
+13 -38
View File
@@ -8,6 +8,7 @@ import Button from "@mui/material/Button";
import FormControlLabel from "@mui/material/FormControlLabel";
import Checkbox from "@mui/material/Checkbox";
import styles from "@/components/Authentication/Authentication.module.css";
import WrenchBoardLogo from "@/public/images/logos/wrenchboard-logo.png";
const SignInForm = () => {
const handleSubmit = (event) => {
@@ -33,47 +34,21 @@ const SignInForm = () => {
>
<Grid item xs={12} md={12} lg={12} xl={12}>
<Box>
<Typography as="h1" fontSize="28px" fontWeight="700" mb="65px">
Sign In{" "}
<Box
display="flex"
alignItems="center"
justifyContent="center"
mb="60px"
>
<img
src="/images/favicon.png"
alt="favicon"
src="/images/logos/wrenchboard-logo.png"
alt="logo"
className={styles.favicon}
/>
</Typography>
{/* <Typography fontSize="15px" mb="30px">
Already have an account?{" "}
<Link
href="/authentication/sign-up"
className="primaryColor text-decoration-none"
>
Sign up
</Link>
</Typography>
<Box
sx={{
display: "flex",
justifyContent: "space-between",
alignItems: "center",
mb: "30px",
}}
>
<Link href="#" className={styles.googleBtn}>
<img src="/images/google-icon.png" />
Sign in with Google
</Link>
<Link href="#" className={styles.fbBtn}>
<img src="/images/fb-icon.png" />
Sign in with Facebook
</Link>
</Box>
<div className={styles.or}>
<span>or</span>
</div> */}
<Typography as="h1" fontSize="28px" fontWeight="700" mb="5px">
Sign In{" "}
</Typography>
<Box component="form" noValidate onSubmit={handleSubmit}>
<Box
@@ -153,7 +128,7 @@ const SignInForm = () => {
<Grid item xs={6} sm={6} textAlign="end">
<Link
href="/authentication/forgot-password"
href="/auth/forgot-password"
className="primaryColor text-decoration-none"
>
Forgot your password?
+2 -2
View File
@@ -45,7 +45,7 @@ const SignUpForm = () => {
<Typography fontSize="15px" mb="30px">
Already have an account?{" "}
<Link
href="/authentication/sign-in/"
href="/auth/sign-in/"
className="primaryColor text-decoration-none"
>
Sign in
@@ -204,7 +204,7 @@ const SignUpForm = () => {
<Grid item xs={6} sm={6} textAlign="end">
<Link
href="/authentication/forgot-password"
href="/auth/forgot-password"
className="primaryColor text-decoration-none"
>
Forgot your password?
+34 -27
View File
@@ -1,4 +1,4 @@
import React, { useState } from "react";
import React, { useEffect, useState } from "react";
import Head from "next/head";
import { useRouter } from "next/router";
import LeftSidebar from "@/components/_App/LeftSidebar";
@@ -11,48 +11,55 @@ import AuthRoute from "middlewares/AuthRoute";
const Layout = ({ children }) => {
const router = useRouter();
const [active, setActive] = useState(false);
const isAuthenticated = false; // Replace with your authentication logic
const [isAuthenticationPage, setIsAuthenticationPage] = useState(false);
const toggleActive = () => {
setActive(!active);
};
const isAuthenticationPage = [
"/authentication/sign-in",
"/authentication/sign-up",
"/authentication/forgot-password",
"/authentication/lock-screen",
"/authentication/confirm-mail",
"/authentication/logout",
].includes(router.pathname);
useEffect(() => {
const authenticationPages = [
"/auth",
"/auth/sign-in",
"/auth/sign-up",
"/auth/forgot-password",
"/auth/lock-screen",
"/auth/confirm-mail",
"/auth/logout",
];
setIsAuthenticationPage(authenticationPages.includes(router.pathname));
}, [router.pathname]);
// Debugging: Log the value of isAuthenticationPage
console.log("isAuthenticationPage:", isAuthenticationPage, router.pathname);
const title = isAuthenticationPage ? "CMC - auth" : "CMC - dashboard";
return (
<>
<Head>
<title>
{isAuthenticated ? "CMC - Client" : "CMC - Authentication"}
</title>
<title>{title}</title>
<meta name="viewport" content="initial-scale=1.0, width=device-width" />
</Head>
<AuthRoute>
<div className={`main-wrapper-content ${active ? "active" : ""}`}>
{!isAuthenticationPage && (
<>
<TopNavbar toggleActive={toggleActive} />
<LeftSidebar toggleActive={toggleActive} />
</>
)}
<div className={`main-wrapper-content ${active ? "active" : ""}`}>
{!isAuthenticationPage && (
<>
<TopNavbar toggleActive={toggleActive} />
<LeftSidebar toggleActive={toggleActive} />
</>
)}
<div className="main-content">{children}</div>
<div className="main-content">{children}</div>
{!isAuthenticationPage && <Footer />}
</div>
{!isAuthenticationPage && <Footer />}
</div>
<ScrollToTop />
<ScrollToTop />
{!isAuthenticationPage && <ControlPanelModal />}
</AuthRoute>
{!isAuthenticationPage && <ControlPanelModal />}
</>
);
};
+6 -6
View File
@@ -450,7 +450,7 @@ export const SidebarData = [
},
{
title: "Authentication",
path: "/authentication/sign-in/",
path: "/auth/sign-in/",
icon: <LockIcon />,
iconClosed: <KeyboardArrowRightIcon />,
iconOpened: <KeyboardArrowDownIcon />,
@@ -458,23 +458,23 @@ export const SidebarData = [
subNav: [
{
title: "Sign Up",
path: "/authentication/sign-up/",
path: "/auth/sign-up/",
},
{
title: "Forgot Password",
path: "/authentication/forgot-password/",
path: "/auth/forgot-password/",
},
{
title: "Lock Screen",
path: "/authentication/lock-screen/",
path: "/auth/lock-screen/",
},
{
title: "Confirm Mail",
path: "/authentication/confirm-mail/",
path: "/auth/confirm-mail/",
},
{
title: "Logout",
path: "/authentication/logout/",
path: "/auth/logout/",
},
],
},
+6 -5
View File
@@ -29,7 +29,7 @@ const SidebarWrap = styled("div")(({ theme }) => ({
width: '100%'
}));
const Sidebar = ({ toogleActive }) => {
const Sidebar = ({ toggleActive }) => {
return (
<>
<div className='leftSidebarDark'>
@@ -46,23 +46,24 @@ const Sidebar = ({ toogleActive }) => {
>
<Link href='/'>
<img
src="/images/logo.png" alt="Logo"
src="/images/logos/wrenchboard-logo.png" alt="Logo"
className='black-logo'
/>
{/* For Dark Variation */}
<img
src="/images/logo-white.png" alt="Logo"
src="/images/logos/wrenchboard-logo.png" alt="Logo"
className='white-logo'
/>
</Link>
<IconButton
onClick={toogleActive}
onClick={toggleActive}
size="small"
sx={{
background: 'rgb(253, 237, 237)',
display: { lg: 'none' }
display: { lg: 'none' },
marginLeft: "1rem"
}}
>
<ClearIcon />
+1 -1
View File
@@ -183,7 +183,7 @@ const Profile = () => {
</ListItemIcon>
<Link
href="/authentication/logout/"
href="/auth/logout/"
fontSize="13px"
color="inherit"
underline="none"
+2 -2
View File
@@ -7,7 +7,7 @@ import Profile from "./Profile";
import Tooltip from "@mui/material/Tooltip";
import CurrentDate from "./CurrentDate";
const TopNavbar = ({ toogleActive }) => {
const TopNavbar = ({ toggleActive }) => {
return (
<>
<div className="topNavbarDark">
@@ -28,7 +28,7 @@ const TopNavbar = ({ toogleActive }) => {
size="sm"
edge="start"
color="inherit"
onClick={toogleActive}
onClick={toggleActive}
>
<i className="ri-align-left"></i>
</IconButton>
+1 -1
View File
@@ -96,7 +96,7 @@ RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \
&& yarn --version
COPY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
# ENTRYPOINT ["docker-entrypoint.sh"]
# COPY docker-entrypoint.sh /usr/local/bin/
# ENTRYPOINT ["docker-entrypoint.sh"]
+6 -5
View File
@@ -1,20 +1,21 @@
"use client"
"use client";
import { useEffect } from "react";
import { useRouter } from "next/router";
/**
* This is used to protect routes in a web application.
* This function is used to protect routes in a web application.
* It checks if the user is authenticated and redirects them to the sign-in page if they are not.
*/
const AuthRoute = ({ children }) => {
const router = useRouter();
useEffect(() => {
const isAuthenticated = false; // In a real application, this would be determined based on the user's authentication status.
const isAuthenticated = true; // In a real application, this would be determined based on the user's authentication status.
if (!isAuthenticated) {
router.push("/authentication/sign-in/");
}
router.push("/auth/");
}
}, [router]);
return <>{children}</>;
+15 -13
View File
@@ -1,34 +1,36 @@
import React from 'react';
import '../styles/remixicon.css'
import 'react-tabs/style/react-tabs.css';
import React from "react";
import "../styles/remixicon.css";
import "react-tabs/style/react-tabs.css";
import "swiper/css";
import "swiper/css/bundle";
// Chat Styles
import '../styles/chat.css'
import "../styles/chat.css";
// Globals Styles
import '../styles/globals.css'
import "../styles/globals.css";
// Rtl Styles
import '../styles/rtl.css'
import "../styles/rtl.css";
// Dark Mode Styles
import '../styles/dark.css'
import "../styles/dark.css";
// Theme Styles
import theme from '../styles/theme'
import theme from "../styles/theme";
import { ThemeProvider, CssBaseline } from "@mui/material";
import Layout from "@/components/_App/Layout";
import AuthRoute from "middlewares/AuthRoute";
function MyApp({ Component, pageProps }) {
return (
<>
<ThemeProvider theme={theme}>
<CssBaseline />
<Layout>
<Component {...pageProps} />
</Layout>
<AuthRoute>
<Layout>
<Component {...pageProps} />
</Layout>
</AuthRoute>
</ThemeProvider>
</>
);
}
export default MyApp
export default MyApp;
+24 -3
View File
@@ -7,11 +7,32 @@ class MyDocument extends Document {
return (
<Html dir={dir} lang={locale}>
<Head>
<link rel="icon" href="/images/favicon.png" />
<link
href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap"
<link
href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap"
rel="stylesheet"
/>
{/* Icons */}
<link rel="icon" href="/images/icons/favicon.ico" />
<link
rel="icon"
href="/images/icons/favicon-16x16.png"
sizes="16x16"
type="image/png"
/>
<link
rel="icon"
href="/images/icons/android-chrome-192x192.png"
sizes="192x192"
type="image/png"
/>
<link rel="apple-touch-icon" href="/icons/apple-touch-icon.png" />
<link
rel="icon"
href="/images/icons/android-chrome-512x512.png"
sizes="512x512"
type="image/png"
/>
</Head>
<body>
<Main />
+5
View File
@@ -0,0 +1,5 @@
import SignInForm from "@/components/Authentication/SignInForm";
export default function Index() {
return <SignInForm />;
}
@@ -51,7 +51,7 @@ export default function Logout() {
</Typography>
<Button
href="/authentication/sign-in/"
href="/auth/sign-in/"
fullWidth
variant="contained"
sx={{
-1
View File
@@ -15,7 +15,6 @@ import RecentOrders from "@/components/Dashboard/eCommerce/RecentOrders";
import TeamMembersList from "@/components/Dashboard/eCommerce/TeamMembersList";
import BestSellingProducts from "@/components/Dashboard/eCommerce/BestSellingProducts";
import LiveVisitsOnOurSite from "@/components/Dashboard/eCommerce/LiveVisitsOnOurSite";
import AuthRoute from "middlewares/AuthRoute";
function MainPage() {
return (
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB