Browse Source

flyTo 계정 전용 작업

master
이준희 2 months ago
parent
commit
6ba21bf69f
  1. 162
      src/@core/layouts/HorizontalLayout.js
  2. 7
      src/@core/layouts/components/menu/vertical-menu/VerticalMenuHeader.js
  3. 3
      src/@core/layouts/components/navbar/NavbarUser.js
  4. 4
      src/components/dashboard/DashboardMenu.js
  5. 26
      src/views/control/main/ControlMain.js

162
src/@core/layouts/HorizontalLayout.js

@ -1,123 +1,129 @@
// ** React Imports
import { useState, useEffect } from 'react'
import { Link } from 'react-router-dom'
import { useState, useEffect } from 'react';
import { Link } from 'react-router-dom';
// ** Store & Actions
import { useSelector, useDispatch } from 'react-redux'
import { handleMenuHidden, handleContentWidth } from '@store/actions/layout'
import { useSelector, useDispatch } from 'react-redux';
import { handleMenuHidden, handleContentWidth } from '@store/actions/layout';
// ** Third Party Components
import classnames from 'classnames'
import { ArrowUp } from 'react-feather'
import ScrollToTop from 'react-scroll-up'
import { Navbar, NavItem, Button } from 'reactstrap'
import classnames from 'classnames';
import { ArrowUp } from 'react-feather';
import ScrollToTop from 'react-scroll-up';
import { Navbar, NavItem, Button } from 'reactstrap';
// ** Configs
import themeConfig from '@configs/themeConfig'
import themeConfig from '@configs/themeConfig';
// ** Custom Components
import Customizer from '@components/customizer'
import NavbarComponent from './components/navbar'
import FooterComponent from './components/footer'
import MenuComponent from './components/menu/horizontal-menu'
import Customizer from '@components/customizer';
import NavbarComponent from './components/navbar';
import FooterComponent from './components/footer';
import MenuComponent from './components/menu/horizontal-menu';
// ** Custom Hooks
import { useRTL } from '@hooks/useRTL'
import { useSkin } from '@hooks/useSkin'
import { useNavbarType } from '@hooks/useNavbarType'
import { useFooterType } from '@hooks/useFooterType'
import { useNavbarColor } from '@hooks/useNavbarColor'
import { useRTL } from '@hooks/useRTL';
import { useSkin } from '@hooks/useSkin';
import { useNavbarType } from '@hooks/useNavbarType';
import { useFooterType } from '@hooks/useFooterType';
import { useNavbarColor } from '@hooks/useNavbarColor';
// ** Styles
import '@styles/base/core/menu/menu-types/horizontal-menu.scss'
import '@styles/base/core/menu/menu-types/horizontal-menu.scss';
const HorizontalLayout = props => {
// ** Props
const { children, navbar, footer, menu, currentActiveItem, routerProps } = props
const { children, navbar, footer, menu, currentActiveItem, routerProps } =
props;
// ** Hooks
const [skin, setSkin] = useSkin()
const [isRtl, setIsRtl] = useRTL()
const [navbarType, setNavbarType] = useNavbarType()
const [footerType, setFooterType] = useFooterType()
const [navbarColor, setNavbarColor] = useNavbarColor()
const [skin, setSkin] = useSkin();
const [isRtl, setIsRtl] = useRTL();
const [navbarType, setNavbarType] = useNavbarType();
const [footerType, setFooterType] = useFooterType();
const [navbarColor, setNavbarColor] = useNavbarColor();
// ** States
const [isMounted, setIsMounted] = useState(false)
const [navbarScrolled, setNavbarScrolled] = useState(false)
const [isMounted, setIsMounted] = useState(false);
const [navbarScrolled, setNavbarScrolled] = useState(false);
// ** Store Vars
const dispatch = useDispatch()
const layoutStore = useSelector(state => state.layout)
const dispatch = useDispatch();
const layoutStore = useSelector(state => state.layout);
const { user } = useSelector(state => state.authState);
// ** Vars
const contentWidth = layoutStore.contentWidth
const isHidden = layoutStore.menuHidden
const contentWidth = layoutStore.contentWidth;
const isHidden = layoutStore.menuHidden;
// ** Handles Content Width
const setContentWidth = val => dispatch(handleContentWidth(val))
const setContentWidth = val => dispatch(handleContentWidth(val));
// ** Handles Content Width
const setIsHidden = val => dispatch(handleMenuHidden(val))
const setIsHidden = val => dispatch(handleMenuHidden(val));
// ** UseEffect Cleanup
const cleanup = () => {
setIsMounted(false)
setNavbarScrolled(false)
}
setIsMounted(false);
setNavbarScrolled(false);
};
//** ComponentDidMount
useEffect(() => {
setIsMounted(true)
setIsMounted(true);
window.addEventListener('scroll', function () {
if (window.pageYOffset > 65 && navbarScrolled === false) {
setNavbarScrolled(true)
setNavbarScrolled(true);
}
if (window.pageYOffset < 65) {
setNavbarScrolled(false)
setNavbarScrolled(false);
}
})
return () => cleanup()
}, [])
});
return () => cleanup();
}, []);
// ** Vars
const footerClasses = {
static: 'footer-static',
sticky: 'footer-fixed',
hidden: 'footer-hidden'
}
};
const navbarWrapperClasses = {
floating: 'navbar-floating',
sticky: 'navbar-sticky',
static: 'navbar-static'
}
};
const navbarClasses = {
floating: 'floating-nav',
sticky: 'fixed-top'
}
};
const bgColorCondition = navbarColor !== '' && navbarColor !== 'light' && navbarColor !== 'white'
const bgColorCondition =
navbarColor !== '' && navbarColor !== 'light' && navbarColor !== 'white';
if (!isMounted) {
return null
return null;
}
return (
<div
className={classnames(
`wrapper horizontal-layout horizontal-menu ${navbarWrapperClasses[navbarType] || 'navbar-floating'} ${
footerClasses[footerType] || 'footer-static'
} menu-expanded`
`wrapper horizontal-layout horizontal-menu ${
navbarWrapperClasses[navbarType] || 'navbar-floating'
} ${footerClasses[footerType] || 'footer-static'} menu-expanded`
)}
{...(isHidden ? { 'data-col': '1-column' } : {})}
>
<Navbar
expand='lg'
className={classnames('header-navbar navbar-fixed align-items-center navbar-shadow navbar-brand-center', {
'navbar-scrolled': navbarScrolled
})}
className={classnames(
'header-navbar navbar-fixed align-items-center navbar-shadow navbar-brand-center',
{
'navbar-scrolled': navbarScrolled
}
)}
>
{!navbar && (
<div className='navbar-header d-xl-block d-none'>
@ -127,7 +133,9 @@ const HorizontalLayout = props => {
<span className='brand-logo'>
<img src={themeConfig.app.appLogoImage} alt='logo' />
</span>
<h2 className='brand-text mb-0'>{themeConfig.app.appName}</h2>
<h2 className='brand-text mb-0'>
{user?.cstmrSno === 27 ? 'FLYTO' : themeConfig.app.appName}
</h2>
</Link>
</NavItem>
</ul>
@ -145,12 +153,24 @@ const HorizontalLayout = props => {
expand='sm'
light={skin !== 'dark'}
dark={skin === 'dark' || bgColorCondition}
className={classnames(`header-navbar navbar-horizontal navbar-shadow menu-border`, {
[navbarClasses[navbarType]]: navbarType !== 'static',
'floating-nav': (!navbarClasses[navbarType] && navbarType !== 'static') || navbarType === 'floating'
})}
className={classnames(
`header-navbar navbar-horizontal navbar-shadow menu-border`,
{
[navbarClasses[navbarType]]: navbarType !== 'static',
'floating-nav':
(!navbarClasses[navbarType] && navbarType !== 'static') ||
navbarType === 'floating'
}
)}
>
{menu ? menu : <MenuComponent routerProps={routerProps} currentActiveItem={currentActiveItem} />}
{menu ? (
menu
) : (
<MenuComponent
routerProps={routerProps}
currentActiveItem={currentActiveItem}
/>
)}
</Navbar>
</div>
) : null}
@ -180,11 +200,21 @@ const HorizontalLayout = props => {
/>
) : null}
<footer
className={classnames(`footer footer-light ${footerClasses[footerType] || 'footer-static'}`, {
'd-none': footerType === 'hidden'
})}
className={classnames(
`footer footer-light ${footerClasses[footerType] || 'footer-static'}`,
{
'd-none': footerType === 'hidden'
}
)}
>
{footer ? footer : <FooterComponent footerType={footerType} footerClasses={footerClasses} />}
{footer ? (
footer
) : (
<FooterComponent
footerType={footerType}
footerClasses={footerClasses}
/>
)}
</footer>
{themeConfig.layout.scrollTop === true ? (
@ -197,6 +227,6 @@ const HorizontalLayout = props => {
</div>
) : null}
</div>
)
}
export default HorizontalLayout
);
};
export default HorizontalLayout;

7
src/@core/layouts/components/menu/vertical-menu/VerticalMenuHeader.js

@ -1,6 +1,7 @@
// ** React Imports
import { useEffect } from 'react';
import { NavLink } from 'react-router-dom';
import { useSelector } from 'react-redux';
// ** Third Party Components
import { Disc, X, Circle } from 'react-feather';
@ -18,6 +19,8 @@ const VerticalMenuHeader = props => {
menuHover
} = props;
const { user } = useSelector(state => state.authState);
// ** Reset open group
useEffect(() => {
if (!menuHover && menuCollapsed) setGroupOpen([]);
@ -54,7 +57,9 @@ const VerticalMenuHeader = props => {
<span className='brand-logo'>
<img src={themeConfig.app.appLogoImage} alt='logo' />
</span>
<h2 className='brand-text mb-0'>{themeConfig.app.appName}</h2>
<h2 className='brand-text mb-0'>
{user?.cstmrSno === 27 ? 'FLYTO' : themeConfig.app.appName}
</h2>
</NavLink>
</li>
<li className='nav-item nav-toggle'>

3
src/@core/layouts/components/navbar/NavbarUser.js

@ -13,6 +13,7 @@ const NavbarUser = props => {
const dispatch = useDispatch();
const { topMenuCd } = useSelector(state => state.menuState);
const { user } = useSelector(state => state.authState);
// ** Function to toggle Theme (Light/Dark)
const ThemeToggler = () => {
@ -100,7 +101,7 @@ const NavbarUser = props => {
// toggle('2')
// }}
>
드론 관제 시스템
{user?.cstmrSno === 27 ? 'UAM 관제 시스템' : '드론 관제 시스템'}
</NavLink>
</NavItem>
<NavItem>

4
src/components/dashboard/DashboardMenu.js

@ -1,12 +1,14 @@
import { Card, Col, Row } from 'reactstrap';
import { useSelector } from 'react-redux';
export const DashboardMenu = props => {
const { user } = useSelector(state => state.authState);
return (
<Row className='menu-page'>
<Col md={3}>
<Card className='menu-list01'>
<a href='#' onClick={() => window.open('/control', '_blank')}>
드론 관제 시스템
{user?.cstmrSno === 27 ? 'UAM 관제 시스템' : '드론 관제 시스템'}
</a>
</Card>
</Col>

26
src/views/control/main/ControlMain.js

@ -168,7 +168,7 @@ const ControlMain = () => {
<div className='left-menu'>
<h1 className='logo'>
<img src={logo} width='80' />
<span>PAL</span>
<span>{user?.cstmrSno === 27 ? 'FLYTO' : 'PAL'}</span>
</h1>
<ul className='left-menu-nav'>
@ -210,15 +210,21 @@ const ControlMain = () => {
<li>
<img src={tp_logo} width='50' />
</li> */}
<li>
<img src={nam_logo} width='50' />
</li>
<li>
<img src={mi_logo} width='60' />
</li>
<li>
<img src={kiast_logo} width='80' />
</li>
{user?.cstmrSno === 27 ? (
<></>
) : (
<>
<li>
<img src={nam_logo} width='50' />
</li>
<li>
<img src={mi_logo} width='60' />
</li>
<li>
<img src={kiast_logo} width='80' />
</li>
</>
)}
<li>
<AiOutlinePoweroff
size={25}

Loading…
Cancel
Save