admin/src/components/AppHeader.js
2023-02-24 18:09:23 +05:30

99 lines
2.7 KiB
JavaScript

import React from 'react'
import { NavLink } from 'react-router-dom'
import { useSelector, useDispatch } from 'react-redux'
import {
CContainer,
CHeader,
CHeaderBrand,
CHeaderDivider,
CHeaderNav,
CHeaderToggler,
CNavLink,
CNavItem,
} from '@coreui/react'
import CIcon from '@coreui/icons-react'
import { cilBell, cilEnvelopeOpen, cilList, cilMenu } from '@coreui/icons'
import { AppBreadcrumb } from './index'
import { AppHeaderDropdown } from './header/index'
import { logo } from 'src/assets/brand/logo'
import axios from 'axios'
import { useEffect } from 'react'
import { useState } from 'react'
import { isAutheticated } from 'src/auth'
const AppHeader = () => {
const dispatch = useDispatch()
const sidebarShow = useSelector((state) => state.sidebarShow)
const [AppName, setAppName] = useState('')
const token = isAutheticated()
useEffect(() => {
async function getConfiguration() {
const configDetails = await axios.get(`/api/config`, {
headers: {
Authorization: `Bearer ${token}`,
},
})
setAppName(configDetails.data.result[0]?.appName)
}
getConfiguration()
}, [])
return (
<CHeader position="sticky" className="mb-4">
<CContainer fluid>
<CHeaderToggler
className="ps-1"
onClick={() => dispatch({ type: 'set', sidebarShow: !sidebarShow })}
>
<CIcon icon={cilMenu} size="lg" />
</CHeaderToggler>
<CHeaderBrand className="mx-auto d-md-none" to="/">
<h3>{AppName}</h3>
</CHeaderBrand>
<CHeaderNav className="d-none d-md-flex me-auto">
<CNavItem>
<CNavLink to="/dashboard" component={NavLink} activeClassName="active">
<h3>{AppName}</h3>
</CNavLink>
</CNavItem>
{/* <CNavItem>
<CNavLink href="#">Users</CNavLink>
</CNavItem>
<CNavItem>
<CNavLink href="#">Settings</CNavLink>
</CNavItem> */}
</CHeaderNav>
<CHeaderNav>
{/* <CNavItem>
<CNavLink href="#">
<CIcon icon={cilBell} size="lg" />
</CNavLink>
</CNavItem>
<CNavItem>
<CNavLink href="#">
<CIcon icon={cilList} size="lg" />
</CNavLink>
</CNavItem>
<CNavItem>
<CNavLink href="#">
<CIcon icon={cilEnvelopeOpen} size="lg" />
</CNavLink>
</CNavItem> */}
</CHeaderNav>
<CHeaderNav className="ms-3">
<AppHeaderDropdown />
</CHeaderNav>
</CContainer>
<CHeaderDivider />
<CContainer fluid>
{/* <AppBreadcrumb /> */}
</CContainer>
</CHeader>
)
}
export default AppHeader