diff --git a/frontend/src/container/SideNav/Slack.tsx b/frontend/src/container/SideNav/Slack.tsx new file mode 100644 index 0000000000..d0cc536e38 --- /dev/null +++ b/frontend/src/container/SideNav/Slack.tsx @@ -0,0 +1,48 @@ +import React from 'react'; + +const Slack = (): JSX.Element => { + return ( + + + + + + + + + + + ); +}; + +export default Slack; diff --git a/frontend/src/container/SideNav/index.tsx b/frontend/src/container/SideNav/index.tsx index c96e46b18d..6e203d4ab2 100644 --- a/frontend/src/container/SideNav/index.tsx +++ b/frontend/src/container/SideNav/index.tsx @@ -1,5 +1,10 @@ import { Menu, Typography } from 'antd'; -import { ToggleButton } from './styles'; +import { + MenuItem, + SlackButton, + SlackMenuItemContainer, + ToggleButton, +} from './styles'; import ROUTES from 'constants/routes'; import history from 'lib/history'; import React, { useCallback, useState } from 'react'; @@ -17,6 +22,7 @@ import setTheme from 'lib/theme/setTheme'; import menus from './menuItems'; import { Logo, Sider, ThemeSwitcherWrapper } from './styles'; +import Slack from './Slack'; const SideNav = ({ toggleDarkMode }: Props): JSX.Element => { const [collapsed, setCollapsed] = useState(false); @@ -57,10 +63,18 @@ const SideNav = ({ toggleDarkMode }: Props): JSX.Element => { [pathname], ); + const onClickSlackHandler = () => { + window.open('https://signoz.io/slack', '_blank'); + }; + return ( - + @@ -81,6 +95,12 @@ const SideNav = ({ toggleDarkMode }: Props): JSX.Element => { {name} ))} + + + }> + Support + + ); diff --git a/frontend/src/container/SideNav/styles.ts b/frontend/src/container/SideNav/styles.ts index 11583359e1..a4790e84a0 100644 --- a/frontend/src/container/SideNav/styles.ts +++ b/frontend/src/container/SideNav/styles.ts @@ -1,5 +1,5 @@ -import { Layout, Switch } from 'antd'; -import styled from 'styled-components'; +import { Layout, Menu, Switch, Typography } from 'antd'; +import styled, { css } from 'styled-components'; const { Sider: SiderComponent } = Layout; export const ThemeSwitcherWrapper = styled.div` @@ -36,3 +36,41 @@ export const ToggleButton = styled(Switch)` } `; +export const SlackButton = styled(Typography)` + &&& { + margin-left: 1rem; + } +`; + +export const MenuItem = styled(Menu.Item)` + &&& { + position: fixed; + bottom: 48px; + width: 100%; + height: 48px; + background: #262626; + } +`; + +export const SlackMenuItemContainer = styled.div` + &&& { + li { + ${({ collapsed }) => + collapsed && + css` + padding-left: 24px; + `} + } + + svg { + margin-left: ${({ collapsed }) => (collapsed ? '0' : '24px')}; + + ${({ collapsed }) => + collapsed && + css` + height: 100%; + margin: 0 auto; + `} + } + } +`;