mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-23 18:36:16 +00:00
* feat: sidebar revamp - initial commit * feat: move billinga and other isolated routes to settings * feat: handle channel related routes * feat: update account settings page * feat: show dropdown for secondary items * feat: handle reordering of pinned nav items * feat: improve font load performance * feat: update font reference * feat: update page content styles * feat: handle external links in sidebar * feat: handle secondary nav item clicks * feat: handle pinned nav items reordering * feat: handle sidenav pinned state using preference, handle light mode * feat: show sidenav items conditionally * feat: show version diff indicator only to self hosted users * feat: show billing to admins only and integrations to cloud and enterprise users * feat: update fallback link * feat: handle settings menu items * fix: settings page reload on nav chnage * feat: intercom to pylon * feat: show invite user to admin only * feat: handle review comments * chore: remove react query dev tools * feat: minor ui updates * feat: update changes based on preference store changes * feat: handle sidenav shortcut state * feat: handle scroll for more * feat: maintain shortcuts order * feat: manage license ui updates * feat: manage settings options based on license and roles * feat: update types * chore: add logEvents * feat: update types * chore: fix type errors * chore: remove unused variable * feat: update my settings page test cases --------- Co-authored-by: makeavish <makeavish786@gmail.com>
83 lines
2.1 KiB
TypeScript
83 lines
2.1 KiB
TypeScript
import './AlertList.styles.scss';
|
|
|
|
import { Tabs } from 'antd';
|
|
import { TabsProps } from 'antd/lib';
|
|
import ConfigureIcon from 'assets/AlertHistory/ConfigureIcon';
|
|
import ROUTES from 'constants/routes';
|
|
import AllAlertRules from 'container/ListAlertRules';
|
|
import { PlannedDowntime } from 'container/PlannedDowntime/PlannedDowntime';
|
|
import TriggeredAlerts from 'container/TriggeredAlerts';
|
|
import { useSafeNavigate } from 'hooks/useSafeNavigate';
|
|
import useUrlQuery from 'hooks/useUrlQuery';
|
|
import { GalleryVerticalEnd, Pyramid } from 'lucide-react';
|
|
import AlertDetails from 'pages/AlertDetails';
|
|
import { useLocation } from 'react-router-dom';
|
|
|
|
function AllAlertList(): JSX.Element {
|
|
const urlQuery = useUrlQuery();
|
|
const location = useLocation();
|
|
const { safeNavigate } = useSafeNavigate();
|
|
|
|
const tab = urlQuery.get('tab');
|
|
const isAlertHistory = location.pathname === ROUTES.ALERT_HISTORY;
|
|
const isAlertOverview = location.pathname === ROUTES.ALERT_OVERVIEW;
|
|
|
|
const search = urlQuery.get('search');
|
|
|
|
const items: TabsProps['items'] = [
|
|
{
|
|
label: (
|
|
<div className="periscope-tab top-level-tab">
|
|
<GalleryVerticalEnd size={16} />
|
|
Triggered Alerts
|
|
</div>
|
|
),
|
|
key: 'TriggeredAlerts',
|
|
children: <TriggeredAlerts />,
|
|
},
|
|
{
|
|
label: (
|
|
<div className="periscope-tab top-level-tab">
|
|
<Pyramid size={16} />
|
|
Alert Rules
|
|
</div>
|
|
),
|
|
key: 'AlertRules',
|
|
children:
|
|
isAlertHistory || isAlertOverview ? <AlertDetails /> : <AllAlertRules />,
|
|
},
|
|
{
|
|
label: (
|
|
<div className="periscope-tab top-level-tab">
|
|
<ConfigureIcon />
|
|
Configuration
|
|
</div>
|
|
),
|
|
key: 'Configuration',
|
|
children: <PlannedDowntime />,
|
|
},
|
|
];
|
|
|
|
return (
|
|
<Tabs
|
|
destroyInactiveTabPane
|
|
items={items}
|
|
activeKey={tab || 'AlertRules'}
|
|
onChange={(tab): void => {
|
|
urlQuery.set('tab', tab);
|
|
let params = `tab=${tab}`;
|
|
|
|
if (search) {
|
|
params += `&search=${search}`;
|
|
}
|
|
safeNavigate(`/alerts?${params}`);
|
|
}}
|
|
className={`alerts-container ${
|
|
isAlertHistory || isAlertOverview ? 'alert-details-tabs' : ''
|
|
}`}
|
|
/>
|
|
);
|
|
}
|
|
|
|
export default AllAlertList;
|