REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 8.03 KB
Close
//proc/thread-self/root/home/byroehnu/easetack.com/resources/js/Frontend/Components/Header/Header2.jsx
Text
Base64
import React, { useEffect, useState, useRef } from "react" import { Link, router, usePage } from "@inertiajs/react" import organizeMenusIntoHierarchy from "@/utils/organizeMenusIntoHierarchy" import MenuItem from "@/Admin/Components/Header/MenuItem" import { useSelector } from "react-redux" import translate from "@/utils/translate" import SideHeader from "./SideHeader" import GlobalSearch from "./GlobalSearch" import LanguageDropdown from "./LanguageDropdown" import gravatarUrl from "gravatar-url" import { Icon } from "@iconify/react" export default function Header2() { const { currentLang } = useSelector((state) => state.pages) const { lang, auth } = usePage().props const customize = useSelector((state) => state.customize) const [sideHeaderToggle, setSideHeaderToggle] = useState(false) const [mobileToggle, setMobileToggle] = useState(false) const [isSticky, setIsSticky] = useState() const [profileDropdownOpen, setProfileDropdownOpen] = useState(false) const currentLanguage = currentLang ?? lang.default_lang const mainMenus = localStorage.getItem("main_menu") ? JSON.parse(localStorage.getItem("main_menu")) : [] const menus = mainMenus ? organizeMenusIntoHierarchy(mainMenus[currentLanguage]) : [] const handleProfileDropdownToggle = () => setProfileDropdownOpen(!profileDropdownOpen) // handle logout const handleLogout = () => { showAlert(`${translate("Are you sure")}?`, `${translate("You want to logout this session")}?`, `${translate("Logout")}!`, () => { router.post(route("logout")) }) } useEffect(() => { window.addEventListener("scroll", () => { if (window.scrollY > 0) { setIsSticky(true) } else { setIsSticky(false) } }) }, []) useEffect(() => { const handleClickOutside = (event) => { if (!event.target.closest(".cs_dropdown_wrap")) { setProfileDropdownOpen(false) } } if (profileDropdownOpen) { document.addEventListener("mousedown", handleClickOutside) } else { document.removeEventListener("mousedown", handleClickOutside) } return () => document.removeEventListener("mousedown", handleClickOutside) }, [profileDropdownOpen]) return ( <> <header className={`cs_site_header cs_style_1 cs_color_1 cs_sticky_header${isSticky ? " cs_sticky_active" : ""}`}> <div className="cs_main_header"> <div className="container"> <div className="cs_main_header_in"> <div className="cs_main_header_left"> <Link className="cs_site_branding" to="/" href="/"> <img src={customize?.general?.site_logo_light} alt={customize?.general?.site_name} /> </Link> <div className="cs_nav"> <nav className={`cs_nav_list_wrap${mobileToggle ? " cs_active" : ""}`}> <ul className="cs_nav_list"> {menus.map((menuItem) => ( <MenuItem setMobileToggle={setMobileToggle} key={menuItem.id} item={menuItem} /> ))} </ul> </nav> <span className={`cs_menu_toggle${mobileToggle ? " cs_toggle_active" : ""}`} onClick={() => setMobileToggle(!mobileToggle)} > <span></span> </span> </div> </div> <div className="cs_main_header_right"> <div className="cs_toolbox"> <GlobalSearch /> {auth?.is_loggedIn ? ( <div className="cs_dropdown_wrap"> <div onClick={handleProfileDropdownToggle} className={`cs_header_user_btn ${profileDropdownOpen ? "active" : ""}`} > <Icon icon="lucide:circle-user" width="20" height="20" /> </div> {profileDropdownOpen && ( <div className="cs_header_user_dropdown"> <div className="cs_header_user_info"> <img src={gravatarUrl(auth?.user?.email)} alt="" /> <h4 className="">{auth?.user?.name}</h4> <p className="">{auth?.user?.email}</p> </div> <ul className="cs_header_user_list cs_mp0"> <li> <Link href={route("user.dashboard")}>{translate("Dashboard")}</Link> </li> <li> <Link href={route("user.orders")}>{translate("My Orders")}</Link> </li> <li> <Link href={route("user.profile.edit")}>{translate("Profile")}</Link> </li> <li> <a href="#" onClick={handleLogout}> {translate("Log out")} </a> </li> </ul> </div> )} </div> ) : ( <div className="cs_header_user_btn active d-flex"> <Link href={route("login.create")}>{translate("Login")}</Link> </div> )} {Object.entries(lang.languages).length > 1 && <LanguageDropdown />} <button className="cs_hamburger_btn cs_hamburger_info_btn " onClick={() => setSideHeaderToggle(!sideHeaderToggle)} > <span className="cs_hamburger_btn_in"> <span /> <span /> <span /> <span /> </span> </button> </div> </div> </div> </div> </div> </header> <SideHeader sideHeaderToggle={sideHeaderToggle} setSideHeaderToggle={setSideHeaderToggle} customize={customize} /> </> ) }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 14
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
DropDown.js
490 B
lrw-rw-rw-
2025-04-08 04:12:57
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
GlobalSearch.jsx
3.15 KB
lrw-rw-rw-
2025-04-27 09:55:03
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Header2.jsx
8.03 KB
lrw-rw-rw-
2025-04-26 11:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Header3.jsx
10.80 KB
lrw-rw-rw-
2025-04-26 11:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Header4.jsx
13.22 KB
lrw-rw-rw-
2025-04-26 11:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Header5.jsx
11.64 KB
lrw-rw-rw-
2025-04-26 11:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Header6.jsx
8.18 KB
lrw-rw-rw-
2025-04-26 11:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Header7.jsx
8.15 KB
lrw-rw-rw-
2025-04-26 11:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Header8.jsx
7.79 KB
lrw-rw-rw-
2025-04-26 11:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Header9.jsx
10.26 KB
lrw-rw-rw-
2025-04-26 11:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Header10.jsx
7.77 KB
lrw-rw-rw-
2025-04-26 11:30:31
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
index.jsx
11.10 KB
lrw-rw-rw-
2025-04-27 09:55:03
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
LanguageDropdown.js
1.62 KB
lrw-rw-rw-
2025-04-24 07:51:57
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
SideHeader.js
4.71 KB
lrw-rw-rw-
2025-04-08 04:12:57
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).