From e7681ed8c7c82c01c36ce81d6e0100b8244ad5bd Mon Sep 17 00:00:00 2001 From: Alaguraj0361 Date: Thu, 18 Sep 2025 18:13:09 +0530 Subject: [PATCH] logo and change password updated --- app/(auth)/change-password/page.tsx | 60 +++++++++ app/(auth)/login/page.tsx | 2 +- app/(auth)/register/page.tsx | 4 +- app/icon.png | Bin 3275 -> 4232 bytes .../auth/components-auth-unlock-form.tsx | 118 ++++++++++++++++++ components/layouts/footer.tsx | 2 +- components/layouts/header.tsx | 33 +++-- components/layouts/loading.tsx | 5 +- components/layouts/sidebar.tsx | 4 +- public/assets/images/black-logo.png | Bin 0 -> 3789 bytes public/assets/images/favicon.png | Bin 0 -> 4232 bytes public/assets/images/white-logo.png | Bin 0 -> 7018 bytes 12 files changed, 209 insertions(+), 19 deletions(-) create mode 100644 app/(auth)/change-password/page.tsx create mode 100644 components/auth/components-auth-unlock-form.tsx create mode 100644 public/assets/images/black-logo.png create mode 100644 public/assets/images/favicon.png create mode 100644 public/assets/images/white-logo.png diff --git a/app/(auth)/change-password/page.tsx b/app/(auth)/change-password/page.tsx new file mode 100644 index 0000000..3d08d6b --- /dev/null +++ b/app/(auth)/change-password/page.tsx @@ -0,0 +1,60 @@ +import ComponentsAuthUnlockForm from '@/components/auth/components-auth-unlock-form'; +import { Metadata } from 'next'; +import Link from 'next/link'; +import React from 'react'; + +export const metadata: Metadata = { + title: 'Unlock Cover', +}; + +const CoverLockScreen = () => { + return ( +
+
+ image +
+
+ image + image + image + image +
+
+
+
+ + Logo + +
+ Cover Image +
+
+
+
+ {/*
+ + Logo + + +
*/} +
+
+
+ images +
+
+

Shaun Park

+

Enter your password to unlock your ID

+
+
+ +
+

© {new Date().getFullYear()}.VRISTO All Rights Reserved.

+
+
+
+
+ ); +}; + +export default CoverLockScreen; diff --git a/app/(auth)/login/page.tsx b/app/(auth)/login/page.tsx index c8b06c7..c60c7c8 100644 --- a/app/(auth)/login/page.tsx +++ b/app/(auth)/login/page.tsx @@ -29,7 +29,7 @@ const CoverLogin = () => {
- Logo + Logo
Cover Image diff --git a/app/(auth)/register/page.tsx b/app/(auth)/register/page.tsx index ba6f192..083d17d 100644 --- a/app/(auth)/register/page.tsx +++ b/app/(auth)/register/page.tsx @@ -29,7 +29,7 @@ const CoverRegister = () => {
- Logo + Logo
Cover Image @@ -101,7 +101,7 @@ const CoverRegister = () => {
-

© {new Date().getFullYear()}.CrawlerX All Rights Reserved.

+

© {new Date().getFullYear()}.Metatroncube All Rights Reserved.

diff --git a/app/icon.png b/app/icon.png index 9ee75c535232cc957bcb7bd63c81a2bd099b8a12..40658d6007d458eed4f347dbc86ed7d6ae04cfe7 100644 GIT binary patch literal 4232 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 e9;E-T<9`7R3EC4#vV>Cr0000f4 literal 3275 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 JPDHLkV1hS#EfxR( diff --git a/components/auth/components-auth-unlock-form.tsx b/components/auth/components-auth-unlock-form.tsx new file mode 100644 index 0000000..487aed3 --- /dev/null +++ b/components/auth/components-auth-unlock-form.tsx @@ -0,0 +1,118 @@ +'use client'; + +import IconLockDots from '@/components/icon/icon-lock-dots'; +import { useRouter } from 'next/navigation'; +import React, { useState } from 'react'; +import axios from 'axios'; + +const ComponentsAuthChangePasswordForm = () => { + const router = useRouter(); + + const [currentPassword, setCurrentPassword] = useState(''); + const [newPassword, setNewPassword] = useState(''); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(''); + const [success, setSuccess] = useState(''); + + const submitForm = async (e: React.FormEvent) => { + e.preventDefault(); + setError(''); + setSuccess(''); + setLoading(true); + + try { + const token = localStorage.getItem('token'); + if (!token) { + setError('You are not logged in.'); + setLoading(false); + return; + } + + // 👉 Create FormData and append fields + const formData = new FormData(); + formData.append('currentPassword', currentPassword); + formData.append('newPassword', newPassword); + + // 👉 Axios call with Bearer token + const res = await axios.post( + `http://localhost:3020/api/auth/change-password`, + formData, + { + headers: { + Authorization: `Bearer ${token}`, + "Content-Type": "application/json", // axios will set correct multipart/form-data boundary automatically + }, + } + ); + + setSuccess(res.data.message || 'Password updated successfully!'); + // Optional: force user to re-login after password change + localStorage.removeItem('token'); + router.push('/login'); + } catch (err: any) { + const msg = err.response?.data?.error || err.message; + setError(msg); + } finally { + setLoading(false); + } + }; + + return ( +
+ {/* Current password */} +
+ +
+ setCurrentPassword(e.target.value)} + required + /> + + + +
+
+ + {/* New password */} +
+ +
+ setNewPassword(e.target.value)} + required + /> + + + +
+
+ + {error &&

{error}

} + {success &&

{success}

} + + +
+ ); +}; + +export default ComponentsAuthChangePasswordForm; diff --git a/components/layouts/footer.tsx b/components/layouts/footer.tsx index 9dd3d06..9bd39fd 100644 --- a/components/layouts/footer.tsx +++ b/components/layouts/footer.tsx @@ -1,6 +1,6 @@ const Footer = () => { return ( -
© {new Date().getFullYear()}. CrawlerX All rights reserved.
+
© {new Date().getFullYear()}.Metatroncube All rights reserved.
); }; diff --git a/components/layouts/header.tsx b/components/layouts/header.tsx index ee1353d..805b7c3 100644 --- a/components/layouts/header.tsx +++ b/components/layouts/header.tsx @@ -162,8 +162,8 @@ const Header = () => {
- logo - CrawlerX + logo + {/* CrawlerX */}
-
+ {/*
  • @@ -192,9 +192,9 @@ const Header = () => {
-
-
-
+
*/} +
+ {/*
+
*/}
{themeConfig.theme === 'light' ? ( )}
-
+ {/*
{ )} -
+
*/}
{ Profile -
  • + {/*
  • Inbox @@ -451,7 +451,18 @@ const Header = () => { Lock Screen -
  • + */} + { + token && ( +
  • + + + Change Password + +
  • + ) + } +
  • {token ? ( diff --git a/components/layouts/loading.tsx b/components/layouts/loading.tsx index eb42fc0..c9d8f09 100644 --- a/components/layouts/loading.tsx +++ b/components/layouts/loading.tsx @@ -3,14 +3,15 @@ import React from 'react'; const Loading = () => { return (
    - + {/* - + */} + logo
    ); }; diff --git a/components/layouts/sidebar.tsx b/components/layouts/sidebar.tsx index 104142a..cd06507 100644 --- a/components/layouts/sidebar.tsx +++ b/components/layouts/sidebar.tsx @@ -90,8 +90,8 @@ const Sidebar = () => {
    - logo - CrawlerX + logo + {/* CrawlerX */}