mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-12 17:59:01 +08:00
upgraded some deprecated packages (#2424)
* fix: upgrade deprecated pkg * fix: reverted linebreak rules * chore: some of the refactoring is done regarding the performance --------- Co-authored-by: Chintan Sudani <46838508+techchintan@users.noreply.github.com> Co-authored-by: palashgdev <palashgdev@gmail.com>
This commit is contained in:
parent
da79f93495
commit
c4b052c51e
@ -1,9 +1,9 @@
|
|||||||
import { Button, Dropdown, Menu } from 'antd';
|
import { Button, Dropdown } from 'antd';
|
||||||
import TimeItems, {
|
import TimeItems, {
|
||||||
timePreferance,
|
timePreferance,
|
||||||
timePreferenceType,
|
timePreferenceType,
|
||||||
} from 'container/NewWidget/RightContainer/timeItems';
|
} from 'container/NewWidget/RightContainer/timeItems';
|
||||||
import React, { useCallback } from 'react';
|
import React, { useCallback, useMemo } from 'react';
|
||||||
|
|
||||||
import { menuItems } from './config';
|
import { menuItems } from './config';
|
||||||
import { TextContainer } from './styles';
|
import { TextContainer } from './styles';
|
||||||
@ -22,13 +22,18 @@ function TimePreference({
|
|||||||
[setSelectedTime],
|
[setSelectedTime],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const menu = useMemo(
|
||||||
|
() => ({
|
||||||
|
items: menuItems,
|
||||||
|
onClick: timeMenuItemOnChangeHandler,
|
||||||
|
}),
|
||||||
|
[timeMenuItemOnChangeHandler],
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<TextContainer noButtonMargin>
|
<TextContainer noButtonMargin>
|
||||||
<Dropdown
|
<Dropdown menu={menu} />
|
||||||
overlay={<Menu onClick={timeMenuItemOnChangeHandler} items={menuItems} />}
|
<Button>{selectedTime.name}</Button>
|
||||||
>
|
|
||||||
<Button>{selectedTime.name}</Button>
|
|
||||||
</Dropdown>
|
|
||||||
</TextContainer>
|
</TextContainer>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
import { Menu } from 'antd';
|
|
||||||
import styled from 'styled-components';
|
|
||||||
|
|
||||||
export const MenuDropdown = styled(Menu)`
|
|
||||||
&&& {
|
|
||||||
.ant-dropdown,
|
|
||||||
.ant-dropdown-menu,
|
|
||||||
.ant-dropdown-menu-item {
|
|
||||||
padding: 0px;
|
|
||||||
}
|
|
||||||
.ant-menu-item {
|
|
||||||
height: 1.75rem;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`;
|
|
@ -13,7 +13,6 @@ import { ConfigProps } from 'types/api/dynamicConfigs/getDynamicConfigs';
|
|||||||
import AppReducer from 'types/reducer/app';
|
import AppReducer from 'types/reducer/app';
|
||||||
|
|
||||||
import HelpToolTip from './Config';
|
import HelpToolTip from './Config';
|
||||||
import { MenuDropdown } from './Config/styles';
|
|
||||||
|
|
||||||
function DynamicConfigDropdown({
|
function DynamicConfigDropdown({
|
||||||
frontendId,
|
frontendId,
|
||||||
@ -34,13 +33,15 @@ function DynamicConfigDropdown({
|
|||||||
setIsHelpDropDownOpen(!isHelpDropDownOpen);
|
setIsHelpDropDownOpen(!isHelpDropDownOpen);
|
||||||
};
|
};
|
||||||
|
|
||||||
const menuItems = useMemo(
|
const menu = useMemo(
|
||||||
() => [
|
() => ({
|
||||||
{
|
items: [
|
||||||
key: '1',
|
{
|
||||||
label: <HelpToolTip config={config as ConfigProps} />,
|
key: '1',
|
||||||
},
|
label: <HelpToolTip config={config as ConfigProps} />,
|
||||||
],
|
},
|
||||||
|
],
|
||||||
|
}),
|
||||||
[config],
|
[config],
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -53,10 +54,10 @@ function DynamicConfigDropdown({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Dropdown
|
<Dropdown
|
||||||
onVisibleChange={onToggleHandler}
|
onOpenChange={onToggleHandler}
|
||||||
trigger={['click']}
|
trigger={['click']}
|
||||||
overlay={<MenuDropdown items={menuItems} />}
|
menu={menu}
|
||||||
visible={isHelpDropDownOpen}
|
open={isHelpDropDownOpen}
|
||||||
>
|
>
|
||||||
<Space align="center">
|
<Space align="center">
|
||||||
<Icon
|
<Icon
|
||||||
|
@ -1,16 +1,21 @@
|
|||||||
import { Avatar, Typography } from 'antd';
|
import { Avatar, Typography } from 'antd';
|
||||||
import ROUTES from 'constants/routes';
|
import ROUTES from 'constants/routes';
|
||||||
import history from 'lib/history';
|
import history from 'lib/history';
|
||||||
import React from 'react';
|
import React, { useCallback } from 'react';
|
||||||
import { useSelector } from 'react-redux';
|
import { useSelector } from 'react-redux';
|
||||||
import { AppState } from 'store/reducers';
|
import { AppState } from 'store/reducers';
|
||||||
import AppReducer from 'types/reducer/app';
|
import AppReducer from 'types/reducer/app';
|
||||||
|
|
||||||
import { AvatarContainer, ManageAccountLink, Wrapper } from '../styles';
|
import { AvatarContainer, ManageAccountLink, Wrapper } from '../styles';
|
||||||
|
|
||||||
function SignedInAS(): JSX.Element {
|
function SignedIn({ onToggle }: SignedInProps): JSX.Element {
|
||||||
const { user } = useSelector<AppState, AppReducer>((state) => state.app);
|
const { user } = useSelector<AppState, AppReducer>((state) => state.app);
|
||||||
|
|
||||||
|
const onManageAccountClick = useCallback(() => {
|
||||||
|
onToggle();
|
||||||
|
history.push(ROUTES.MY_SETTINGS);
|
||||||
|
}, [onToggle]);
|
||||||
|
|
||||||
if (!user) {
|
if (!user) {
|
||||||
return <div />;
|
return <div />;
|
||||||
}
|
}
|
||||||
@ -30,11 +35,7 @@ function SignedInAS(): JSX.Element {
|
|||||||
<Typography>{email}</Typography>
|
<Typography>{email}</Typography>
|
||||||
</div>
|
</div>
|
||||||
</AvatarContainer>
|
</AvatarContainer>
|
||||||
<ManageAccountLink
|
<ManageAccountLink onClick={onManageAccountClick}>
|
||||||
onClick={(): void => {
|
|
||||||
history.push(ROUTES.MY_SETTINGS);
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
Manage Account
|
Manage Account
|
||||||
</ManageAccountLink>
|
</ManageAccountLink>
|
||||||
</Wrapper>
|
</Wrapper>
|
||||||
@ -42,4 +43,8 @@ function SignedInAS(): JSX.Element {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default SignedInAS;
|
interface SignedInProps {
|
||||||
|
onToggle: VoidFunction;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default SignedIn;
|
@ -3,12 +3,19 @@ import {
|
|||||||
CaretUpFilled,
|
CaretUpFilled,
|
||||||
LogoutOutlined,
|
LogoutOutlined,
|
||||||
} from '@ant-design/icons';
|
} from '@ant-design/icons';
|
||||||
import { Divider, Dropdown, Menu, Space, Typography } from 'antd';
|
import type { MenuProps } from 'antd';
|
||||||
|
import { Divider, Dropdown, Space, Typography } from 'antd';
|
||||||
import { Logout } from 'api/utils';
|
import { Logout } from 'api/utils';
|
||||||
import ROUTES from 'constants/routes';
|
import ROUTES from 'constants/routes';
|
||||||
import Config from 'container/ConfigDropdown';
|
import Config from 'container/ConfigDropdown';
|
||||||
import { useIsDarkMode, useThemeMode } from 'hooks/useDarkMode';
|
import { useIsDarkMode, useThemeMode } from 'hooks/useDarkMode';
|
||||||
import React, { Dispatch, SetStateAction, useCallback, useState } from 'react';
|
import React, {
|
||||||
|
Dispatch,
|
||||||
|
SetStateAction,
|
||||||
|
useCallback,
|
||||||
|
useMemo,
|
||||||
|
useState,
|
||||||
|
} from 'react';
|
||||||
import { useSelector } from 'react-redux';
|
import { useSelector } from 'react-redux';
|
||||||
import { NavLink } from 'react-router-dom';
|
import { NavLink } from 'react-router-dom';
|
||||||
import { AppState } from 'store/reducers';
|
import { AppState } from 'store/reducers';
|
||||||
@ -16,7 +23,7 @@ import AppReducer from 'types/reducer/app';
|
|||||||
|
|
||||||
import CurrentOrganization from './CurrentOrganization';
|
import CurrentOrganization from './CurrentOrganization';
|
||||||
import ManageLicense from './ManageLicense';
|
import ManageLicense from './ManageLicense';
|
||||||
import SignedInAS from './SignedInAs';
|
import SignedIn from './SignedIn';
|
||||||
import {
|
import {
|
||||||
AvatarWrapper,
|
AvatarWrapper,
|
||||||
Container,
|
Container,
|
||||||
@ -43,32 +50,45 @@ function HeaderContainer(): JSX.Element {
|
|||||||
[],
|
[],
|
||||||
);
|
);
|
||||||
|
|
||||||
const menu = (
|
const onLogoutKeyDown = useCallback(
|
||||||
<Menu style={{ padding: '1rem' }}>
|
(e: React.KeyboardEvent<HTMLDivElement>) => {
|
||||||
<Menu.ItemGroup>
|
if (e.key === 'Enter' || e.key === 'Space') {
|
||||||
<SignedInAS />
|
Logout();
|
||||||
<Divider />
|
}
|
||||||
<CurrentOrganization onToggle={onToggleHandler(setIsUserDropDownOpen)} />
|
},
|
||||||
<Divider />
|
[],
|
||||||
<ManageLicense onToggle={onToggleHandler(setIsUserDropDownOpen)} />
|
);
|
||||||
<Divider />
|
|
||||||
<LogoutContainer>
|
const menu: MenuProps = useMemo(
|
||||||
<LogoutOutlined />
|
() => ({
|
||||||
<div
|
items: [
|
||||||
tabIndex={0}
|
{
|
||||||
onKeyDown={(e): void => {
|
key: 'main-menu',
|
||||||
if (e.key === 'Enter' || e.key === 'Space') {
|
label: (
|
||||||
Logout();
|
<div>
|
||||||
}
|
<SignedIn onToggle={onToggleHandler(setIsUserDropDownOpen)} />
|
||||||
}}
|
<Divider />
|
||||||
role="button"
|
<CurrentOrganization onToggle={onToggleHandler(setIsUserDropDownOpen)} />
|
||||||
onClick={Logout}
|
<Divider />
|
||||||
>
|
<ManageLicense onToggle={onToggleHandler(setIsUserDropDownOpen)} />
|
||||||
<Typography.Link>Logout</Typography.Link>
|
<Divider />
|
||||||
</div>
|
<LogoutContainer>
|
||||||
</LogoutContainer>
|
<LogoutOutlined />
|
||||||
</Menu.ItemGroup>
|
<div
|
||||||
</Menu>
|
tabIndex={0}
|
||||||
|
onKeyDown={onLogoutKeyDown}
|
||||||
|
role="button"
|
||||||
|
onClick={Logout}
|
||||||
|
>
|
||||||
|
<Typography.Link>Logout</Typography.Link>
|
||||||
|
</div>
|
||||||
|
</LogoutContainer>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
[onToggleHandler, onLogoutKeyDown],
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -98,10 +118,10 @@ function HeaderContainer(): JSX.Element {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<Dropdown
|
<Dropdown
|
||||||
onVisibleChange={onToggleHandler(setIsUserDropDownOpen)}
|
onOpenChange={onToggleHandler(setIsUserDropDownOpen)}
|
||||||
trigger={['click']}
|
trigger={['click']}
|
||||||
overlay={menu}
|
menu={menu}
|
||||||
visible={isUserDropDownOpen}
|
open={isUserDropDownOpen}
|
||||||
>
|
>
|
||||||
<Space>
|
<Space>
|
||||||
<AvatarWrapper shape="circle">{user?.name[0]}</AvatarWrapper>
|
<AvatarWrapper shape="circle">{user?.name[0]}</AvatarWrapper>
|
||||||
|
@ -1,5 +1,12 @@
|
|||||||
import { PlusOutlined } from '@ant-design/icons';
|
import { PlusOutlined } from '@ant-design/icons';
|
||||||
import { Card, Dropdown, Menu, Row, TableColumnProps, Typography } from 'antd';
|
import {
|
||||||
|
Card,
|
||||||
|
Dropdown,
|
||||||
|
MenuProps,
|
||||||
|
Row,
|
||||||
|
TableColumnProps,
|
||||||
|
Typography,
|
||||||
|
} from 'antd';
|
||||||
import { ItemType } from 'antd/es/menu/hooks/useItems';
|
import { ItemType } from 'antd/es/menu/hooks/useItems';
|
||||||
import createDashboard from 'api/dashboard/create';
|
import createDashboard from 'api/dashboard/create';
|
||||||
import { AxiosError } from 'axios';
|
import { AxiosError } from 'axios';
|
||||||
@ -47,10 +54,12 @@ function ListOfAllDashboard(): JSX.Element {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const { t } = useTranslation('dashboard');
|
const { t } = useTranslation('dashboard');
|
||||||
|
|
||||||
const [
|
const [
|
||||||
isImportJSONModalVisible,
|
isImportJSONModalVisible,
|
||||||
setIsImportJSONModalVisible,
|
setIsImportJSONModalVisible,
|
||||||
] = useState<boolean>(false);
|
] = useState<boolean>(false);
|
||||||
|
|
||||||
const [uploadedGrafana, setUploadedGrafana] = useState<boolean>(false);
|
const [uploadedGrafana, setUploadedGrafana] = useState<boolean>(false);
|
||||||
|
|
||||||
const [filteredDashboards, setFilteredDashboards] = useState<Dashboard[]>();
|
const [filteredDashboards, setFilteredDashboards] = useState<Dashboard[]>();
|
||||||
@ -58,6 +67,7 @@ function ListOfAllDashboard(): JSX.Element {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setFilteredDashboards(dashboards);
|
setFilteredDashboards(dashboards);
|
||||||
}, [dashboards]);
|
}, [dashboards]);
|
||||||
|
|
||||||
const [newDashboardState, setNewDashboardState] = useState({
|
const [newDashboardState, setNewDashboardState] = useState({
|
||||||
loading: false,
|
loading: false,
|
||||||
error: false,
|
error: false,
|
||||||
@ -215,7 +225,12 @@ function ListOfAllDashboard(): JSX.Element {
|
|||||||
return menuItems;
|
return menuItems;
|
||||||
}, [createNewDashboard, loading, onNewDashboardHandler, t]);
|
}, [createNewDashboard, loading, onNewDashboardHandler, t]);
|
||||||
|
|
||||||
const menuItems = getMenuItems();
|
const menu: MenuProps = useMemo(
|
||||||
|
() => ({
|
||||||
|
items: getMenuItems(),
|
||||||
|
}),
|
||||||
|
[getMenuItems],
|
||||||
|
);
|
||||||
|
|
||||||
const GetHeader = useMemo(
|
const GetHeader = useMemo(
|
||||||
() => (
|
() => (
|
||||||
@ -230,7 +245,7 @@ function ListOfAllDashboard(): JSX.Element {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
{newDashboard && (
|
{newDashboard && (
|
||||||
<Dropdown trigger={['click']} overlay={<Menu items={menuItems} />}>
|
<Dropdown trigger={['click']} menu={menu}>
|
||||||
<NewDashboardButton
|
<NewDashboardButton
|
||||||
icon={<PlusOutlined />}
|
icon={<PlusOutlined />}
|
||||||
type="primary"
|
type="primary"
|
||||||
@ -249,7 +264,7 @@ function ListOfAllDashboard(): JSX.Element {
|
|||||||
newDashboard,
|
newDashboard,
|
||||||
newDashboardState.error,
|
newDashboardState.error,
|
||||||
newDashboardState.loading,
|
newDashboardState.loading,
|
||||||
menuItems,
|
menu,
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -173,6 +173,13 @@ function SearchFilter({
|
|||||||
globalTime.minTime,
|
globalTime.minTime,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
const onPopOverChange = useCallback(
|
||||||
|
(isVisible: boolean) => {
|
||||||
|
onDropDownToggleHandler(isVisible)();
|
||||||
|
},
|
||||||
|
[onDropDownToggleHandler],
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container>
|
<Container>
|
||||||
<Popover
|
<Popover
|
||||||
@ -189,11 +196,9 @@ function SearchFilter({
|
|||||||
overlayInnerStyle={{
|
overlayInnerStyle={{
|
||||||
width: `${searchRef?.current?.input?.offsetWidth || 0}px`,
|
width: `${searchRef?.current?.input?.offsetWidth || 0}px`,
|
||||||
}}
|
}}
|
||||||
visible={showDropDown}
|
open={showDropDown}
|
||||||
destroyTooltipOnHide
|
destroyTooltipOnHide
|
||||||
onVisibleChange={(value): void => {
|
onOpenChange={onPopOverChange}
|
||||||
onDropDownToggleHandler(value)();
|
|
||||||
}}
|
|
||||||
>
|
>
|
||||||
<Input.Search
|
<Input.Search
|
||||||
ref={searchRef}
|
ref={searchRef}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user