blob: 3c3356da648b7915bd6d91fc23d1abfd83c23688 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
import React, { useEffect, useState, useContext } from 'react'
import {
// BrowserRouter as Router,
useRouteMatch
} from 'react-router-dom'
import { Card, Elevation } from '@blueprintjs/core'
import request from '@/utils/request'
import SidebarMenu from '@/components/Sidebar/SidebarMenu'
import MenuConfiguration from '@/components/Sidebar/MenuConfiguration'
import { DEVLAKE_ENDPOINT } from '@/utils/config'
import { ReactComponent as Logo } from '@/images/devlake-logo.svg'
import { ReactComponent as LogoText } from '@/images/devlake-textmark.svg'
import '@/styles/sidebar.scss'
import UIContext from '../store/UIContext'
const Sidebar = () => {
const activeRoute = useRouteMatch()
const uiContext = useContext(UIContext)
const [menu, setMenu] = useState(MenuConfiguration(activeRoute))
const [versionTag, setVersionTag] = useState('')
useEffect(() => {
setMenu(MenuConfiguration(activeRoute))
}, [activeRoute])
useEffect(() => {
const fetchVersion = async () => {
try {
const versionUrl = `${DEVLAKE_ENDPOINT}/version`
const res = await request.get(versionUrl).catch((e) => {
console.log('>>> API VERSION ERROR...', e)
setVersionTag('')
})
setVersionTag(res?.data ? res.data?.version : '')
} catch (e) {
setVersionTag('')
}
}
fetchVersion()
}, [])
return uiContext.sidebarVisible ? (
<Card
interactive={false}
elevation={Elevation.ZERO}
className='card sidebar-card'
>
<div className='devlake-logo'>
<Logo width={48} height={48} className='logo' />
<LogoText width={100} height={13} className='logo-textmark' />
</div>
{/* <a href={GRAFANA_URL} rel='noreferrer' target='_blank' className='dashboardBtnLink'>
<Button icon='grouped-bar-chart' outlined={true} className='dashboardBtn'>View Dashboards</Button>
</a> */}
{/* <h3
className='sidebar-app-heading'
style={{
marginTop: '30px',
letterSpacing: '3px',
marginBottom: 0,
fontWeight: 900,
color: '#444444',
textAlign: 'center'
}}
>
<sup style={{ fontSize: '9px', color: '#cccccc', marginLeft: '-30px' }}>DEV</sup>LAKE
</h3> */}
<SidebarMenu menu={menu} />
<span className='copyright-tag'>
{/* <span className='version-tag'>{versionTag || ''}</span><br /> */}
<strong>Apache 2.0 License</strong>
<br />
</span>
</Card>
) : (
<></>
)
}
export default Sidebar