navbar code optimization
This commit is contained in:
parent
5b2367fe73
commit
a9092e27bb
|
|
@ -0,0 +1,30 @@
|
||||||
|
import { useState } from 'react';
|
||||||
|
|
||||||
|
export const useNavbarCommon = () => {
|
||||||
|
const [isFullscreen, setIsFullscreen] = useState(false);
|
||||||
|
|
||||||
|
const handleFullscreen = async () => {
|
||||||
|
if (!isFullscreen) {
|
||||||
|
try {
|
||||||
|
await document.documentElement.requestFullscreen();
|
||||||
|
setIsFullscreen(true);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Fullscreen error:', error);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
if (document.fullscreenElement) {
|
||||||
|
await document.exitFullscreen();
|
||||||
|
}
|
||||||
|
setIsFullscreen(false);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Exit fullscreen error:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
handleFullscreen,
|
||||||
|
isFullscreen,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import React, { useCallback, useEffect, useRef, useState, lazy } from 'react';
|
import { useCallback, useEffect, useRef, useState, lazy } from 'react';
|
||||||
import { useDispatch, useSelector } from 'react-redux';
|
import { useDispatch, useSelector } from 'react-redux';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
import { Badge, Popconfirm, Popover, Tooltip } from 'antd';
|
import { Badge, Popconfirm, Popover, Tooltip } from 'antd';
|
||||||
|
|
@ -8,7 +8,6 @@ import {
|
||||||
PreferenceData,
|
PreferenceData,
|
||||||
GlobalCombosearch,
|
GlobalCombosearch,
|
||||||
getPreferenceData,
|
getPreferenceData,
|
||||||
GlobalOrderCardDetails,
|
|
||||||
changeEstimateBooking,
|
changeEstimateBooking,
|
||||||
GlobalOrderStatus,
|
GlobalOrderStatus,
|
||||||
GlobalEstimateBooking,
|
GlobalEstimateBooking,
|
||||||
|
|
@ -158,11 +157,14 @@ import { isMobile } from 'react-device-detect';
|
||||||
import { DefaultModal } from '../../../../Components/Modal/DefaultModal.jsx';
|
import { DefaultModal } from '../../../../Components/Modal/DefaultModal.jsx';
|
||||||
import '../../../../Styles/BookingScreen/Components/BSNavbar/BSNavbar1.scss';
|
import '../../../../Styles/BookingScreen/Components/BSNavbar/BSNavbar1.scss';
|
||||||
import { RiFullscreenExitFill, RiFullscreenFill } from 'react-icons/ri';
|
import { RiFullscreenExitFill, RiFullscreenFill } from 'react-icons/ri';
|
||||||
|
import { useNavbarCommon } from './BSNavBarCommon.js';
|
||||||
|
|
||||||
const subDirectory = import.meta.env.ENV_BASE_URL;
|
const subDirectory = import.meta.env.ENV_BASE_URL;
|
||||||
const commonUrl = import.meta.env.ENV_COMMON_BASE_URL;
|
const commonUrl = import.meta.env.ENV_COMMON_BASE_URL;
|
||||||
|
|
||||||
const BSNavbar1 = (props) => {
|
const BSNavbar1 = (props) => {
|
||||||
|
|
||||||
|
console.log(props?.BookingNavbar,"propspropspropspropspropspropspropsprops")
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const [Navmenu, setNavmenu] = useState(false);
|
const [Navmenu, setNavmenu] = useState(false);
|
||||||
|
|
@ -264,30 +266,14 @@ const BSNavbar1 = (props) => {
|
||||||
setAccIsOpen(false);
|
setAccIsOpen(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const [isFullscreen, setIsFullscreen] = useState(false);
|
|
||||||
|
const {
|
||||||
|
handleFullscreen,
|
||||||
|
isFullscreen,
|
||||||
|
} = useNavbarCommon();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const handleFullscreen = useCallback(async () => {
|
|
||||||
if (!isFullscreen) {
|
|
||||||
try {
|
|
||||||
await document.documentElement.requestFullscreen();
|
|
||||||
setIsFullscreen(true);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Fullscreen error:', error);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
if (document.fullscreenElement) {
|
|
||||||
await document.exitFullscreen();
|
|
||||||
}
|
|
||||||
setIsFullscreen(false);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Exit fullscreen error:', error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, [isFullscreen]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!FeatureAddonData?.FeatureDtls?.length) return;
|
if (!FeatureAddonData?.FeatureDtls?.length) return;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -130,6 +130,7 @@ const BSCustomerSelect = lazy(
|
||||||
);
|
);
|
||||||
import '../../../../Styles/BookingScreen/Components/BSNavbar/BSNavbar2.scss';
|
import '../../../../Styles/BookingScreen/Components/BSNavbar/BSNavbar2.scss';
|
||||||
import { RiFullscreenExitFill, RiFullscreenFill } from 'react-icons/ri';
|
import { RiFullscreenExitFill, RiFullscreenFill } from 'react-icons/ri';
|
||||||
|
import { useNavbarCommon } from './BSNavBarCommon.js';
|
||||||
|
|
||||||
const subDirectory = import.meta.env.ENV_BASE_URL;
|
const subDirectory = import.meta.env.ENV_BASE_URL;
|
||||||
const commonUrl = import.meta.env.ENV_COMMON_BASE_URL;
|
const commonUrl = import.meta.env.ENV_COMMON_BASE_URL;
|
||||||
|
|
@ -238,27 +239,12 @@ const BSNavbar2 = () => {
|
||||||
(item) =>
|
(item) =>
|
||||||
item.SettingIdName === 'VerifyProduct' && item?.SettingValue === 'Y'
|
item.SettingIdName === 'VerifyProduct' && item?.SettingValue === 'Y'
|
||||||
);
|
);
|
||||||
|
const {
|
||||||
|
handleFullscreen,
|
||||||
|
isFullscreen,
|
||||||
|
} = useNavbarCommon();
|
||||||
|
|
||||||
|
|
||||||
const [isFullscreen, setIsFullscreen] = useState(false);
|
|
||||||
const handleFullscreen = useCallback(async () => {
|
|
||||||
if (!isFullscreen) {
|
|
||||||
try {
|
|
||||||
await document.documentElement.requestFullscreen();
|
|
||||||
setIsFullscreen(true);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Fullscreen error:', error);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
if (document.fullscreenElement) {
|
|
||||||
await document.exitFullscreen();
|
|
||||||
}
|
|
||||||
setIsFullscreen(false);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Exit fullscreen error:', error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, [isFullscreen]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!FeatureAddonData?.FeatureDtls?.length) return;
|
if (!FeatureAddonData?.FeatureDtls?.length) return;
|
||||||
|
|
|
||||||
|
|
@ -38,14 +38,7 @@ import '../../../../Styles/BookingScreen/Components/BSNavbar/BSNavbar3.scss';
|
||||||
// UI Imports
|
// UI Imports
|
||||||
import { Badge, Popconfirm, Tooltip } from 'antd';
|
import { Badge, Popconfirm, Tooltip } from 'antd';
|
||||||
import { AiFillHome } from 'react-icons/ai';
|
import { AiFillHome } from 'react-icons/ai';
|
||||||
import {
|
import { FaPlus, FaHandPaper, FaUserAlt, FaParking } from 'react-icons/fa';
|
||||||
FaPlus,
|
|
||||||
FaHandPaper,
|
|
||||||
FaHeart,
|
|
||||||
FaUserAlt,
|
|
||||||
FaPhoneAlt,
|
|
||||||
FaParking,
|
|
||||||
} from 'react-icons/fa';
|
|
||||||
import { CiMenuBurger } from 'react-icons/ci';
|
import { CiMenuBurger } from 'react-icons/ci';
|
||||||
import { IoCloseOutline } from 'react-icons/io5';
|
import { IoCloseOutline } from 'react-icons/io5';
|
||||||
import {
|
import {
|
||||||
|
|
@ -105,6 +98,7 @@ import BSNavBarWeightScale from '../UtillComponents/BSNavBarWeightScale.jsx';
|
||||||
import { TbSettingsSearch } from 'react-icons/tb';
|
import { TbSettingsSearch } from 'react-icons/tb';
|
||||||
import { DefaultModal } from '../../../../Components/Modal/DefaultModal.jsx';
|
import { DefaultModal } from '../../../../Components/Modal/DefaultModal.jsx';
|
||||||
import MultipleSearch from '../UtillComponents/MultipleSearch.jsx';
|
import MultipleSearch from '../UtillComponents/MultipleSearch.jsx';
|
||||||
|
import { useNavbarCommon } from './BSNavBarCommon.js';
|
||||||
|
|
||||||
// Jsx Files
|
// Jsx Files
|
||||||
const BSNavBarFavItems = lazy(
|
const BSNavBarFavItems = lazy(
|
||||||
|
|
@ -180,7 +174,6 @@ const BSNavbar3 = ({ optionNames }) => {
|
||||||
const [quickAdd, setQuickAdd] = useState(false);
|
const [quickAdd, setQuickAdd] = useState(false);
|
||||||
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
|
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
|
||||||
|
|
||||||
const [isFullscreen, setIsFullscreen] = useState(false);
|
|
||||||
const [multiple, setMultiple] = useState(false);
|
const [multiple, setMultiple] = useState(false);
|
||||||
const GlobEstBooking = useSelector(GlobalEstimateBooking);
|
const GlobEstBooking = useSelector(GlobalEstimateBooking);
|
||||||
const compBranchData = useSelector(GlobalCompBranchData);
|
const compBranchData = useSelector(GlobalCompBranchData);
|
||||||
|
|
@ -408,25 +401,7 @@ const BSNavbar3 = ({ optionNames }) => {
|
||||||
const handleHomePageNavigate = () => navigate(`${subDirectory}app-page/home`);
|
const handleHomePageNavigate = () => navigate(`${subDirectory}app-page/home`);
|
||||||
const handleMobileMenuToggle = () => setIsMobileMenuOpen((prev) => !prev);
|
const handleMobileMenuToggle = () => setIsMobileMenuOpen((prev) => !prev);
|
||||||
|
|
||||||
const handleFullscreen = async () => {
|
const { handleFullscreen, isFullscreen } = useNavbarCommon();
|
||||||
if (!isFullscreen) {
|
|
||||||
try {
|
|
||||||
await document.documentElement.requestFullscreen();
|
|
||||||
setIsFullscreen(true);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Fullscreen error:', error);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
if (document.fullscreenElement) {
|
|
||||||
await document.exitFullscreen();
|
|
||||||
}
|
|
||||||
setIsFullscreen(false);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Exit fullscreen error:', error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const renderWithTooltip = (element, title, placement = 'bottom') => (
|
const renderWithTooltip = (element, title, placement = 'bottom') => (
|
||||||
<Tooltip title={title} placement={placement}>
|
<Tooltip title={title} placement={placement}>
|
||||||
|
|
|
||||||
|
|
@ -338,9 +338,8 @@ const BSLayout1 = () => {
|
||||||
style={{ height: containerHeight, overflow: 'hidden' }}
|
style={{ height: containerHeight, overflow: 'hidden' }}
|
||||||
>
|
>
|
||||||
<div className="BSLayout1-NavBar">
|
<div className="BSLayout1-NavBar">
|
||||||
{BookingNavbar == 'Navbar1' && <BSNavbar1 />}
|
<BSNavbar1 BookingNavbar={BookingNavbar}/>
|
||||||
{BookingNavbar == 'Navbar2' && <BSNavbar2 />}
|
|
||||||
{BookingNavbar == 'Navbar3' && <BSNavbar3 />}
|
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
className={
|
className={
|
||||||
|
|
|
||||||
|
|
@ -348,9 +348,7 @@ const BSLayout2 = () => {
|
||||||
style={{ height: containerHeight, overflow: 'hidden' }}
|
style={{ height: containerHeight, overflow: 'hidden' }}
|
||||||
>
|
>
|
||||||
<div className="BSLayout2-NavBar">
|
<div className="BSLayout2-NavBar">
|
||||||
{BookingNavbar == 'Navbar1' && <BSNavbar1 />}
|
<BSNavbar1 BookingNavbar={BookingNavbar}/>
|
||||||
{BookingNavbar == 'Navbar2' && <BSNavbar2 />}
|
|
||||||
{BookingNavbar == 'Navbar3' && <BSNavbar3 />}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
|
|
||||||
|
|
@ -321,9 +321,7 @@ const BSLayout3 = () => {
|
||||||
style={{ height: containerHeight, overflow: 'hidden' }}
|
style={{ height: containerHeight, overflow: 'hidden' }}
|
||||||
>
|
>
|
||||||
<div className="BSLayout3-NavBar">
|
<div className="BSLayout3-NavBar">
|
||||||
{BookingNavbar == 'Navbar1' && <BSNavbar1 />}
|
<BSNavbar1 BookingNavbar={BookingNavbar}/>
|
||||||
{BookingNavbar == 'Navbar2' && <BSNavbar2 />}
|
|
||||||
{BookingNavbar == 'Navbar3' && <BSNavbar3 />}
|
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
className={
|
className={
|
||||||
|
|
|
||||||
|
|
@ -337,9 +337,7 @@ const BSLayout4 = () => {
|
||||||
style={{ height: containerHeight, overflow: 'hidden' }}
|
style={{ height: containerHeight, overflow: 'hidden' }}
|
||||||
>
|
>
|
||||||
<div className="Bslayout4_navbar">
|
<div className="Bslayout4_navbar">
|
||||||
{BookingNavbar == 'Navbar1' && <BSNavbar1 />}
|
<BSNavbar1 BookingNavbar={BookingNavbar}/>
|
||||||
{BookingNavbar == 'Navbar2' && <BSNavbar2 />}
|
|
||||||
{BookingNavbar == 'Navbar3' && <BSNavbar3 />}
|
|
||||||
</div>
|
</div>
|
||||||
{BookingNavbar != 'Navbar3' ? (
|
{BookingNavbar != 'Navbar3' ? (
|
||||||
<div className="Layout-bill-container" style={{ margin: '0' }}>
|
<div className="Layout-bill-container" style={{ margin: '0' }}>
|
||||||
|
|
|
||||||
|
|
@ -325,9 +325,7 @@ const BSLayout5 = () => {
|
||||||
style={{ height: containerHeight, overflow: 'hidden' }}
|
style={{ height: containerHeight, overflow: 'hidden' }}
|
||||||
>
|
>
|
||||||
<div className="BSLayout5-NavBar">
|
<div className="BSLayout5-NavBar">
|
||||||
{BSLayout5Data?.BookingNavbar?.[0] == 'Navbar1' && <BSNavbar1 />}
|
<BSNavbar1 BookingNavbar={BookingNavbar}/>
|
||||||
{BSLayout5Data?.BookingNavbar?.[0] == 'Navbar2' && <BSNavbar2 />}
|
|
||||||
{BSLayout5Data?.BookingNavbar?.[0] == 'Navbar3' && <BSNavbar3 />}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
|
|
||||||
|
|
@ -336,9 +336,7 @@ const BSLayout6 = () => {
|
||||||
>
|
>
|
||||||
<div className="BSLayout6-fullnav">
|
<div className="BSLayout6-fullnav">
|
||||||
<div className="BSLayout6-Navbar">
|
<div className="BSLayout6-Navbar">
|
||||||
{BookingNavbar == 'Navbar1' && <BSNavbar1 />}
|
<BSNavbar1 BookingNavbar={BookingNavbar}/>
|
||||||
{BookingNavbar == 'Navbar2' && <BSNavbar2 />}
|
|
||||||
{BookingNavbar == 'Navbar3' && <BSNavbar3 />}
|
|
||||||
</div>
|
</div>
|
||||||
{BookingNavbar != 'Navbar3' ? (
|
{BookingNavbar != 'Navbar3' ? (
|
||||||
<div className="Layout-bill-container">
|
<div className="Layout-bill-container">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue